思路
首先讲讲编程思路的一个问题,导致走了一天的弯路,业务是要把提交表单的多条数据求和取上限,因为之前react写多了,顺手就在前端代码发请求写校验了,但,一是要把限制条件写在前台代码里,二是即使现从后台取上限,我也要在系统中用到此功能的地方都写校验,虽然是复制粘贴,但改的时候也不好改,可能有遗漏,所以后来还是写到数据库中以便于以后的修改,不用每次发版。
新的知识
首先吧,我的多条表单数据格式是`[
{name:xxx,date:xxx,remark:xxx}{name:xxx,date:xxx,remark:xxx}]
日期有相同的,也有不同的,我要根据日期相同的去求另一个字段的和;
用map集合对list进行接收,key为日期,因为map.put如果key存在则覆盖,不存在则更新,利用这一特性可以对相同日期迭代求和覆盖,更新增加,(网上还有一个collector的相关方法,java8的特性但是BigDecimal类型要自定义扩展源码,没有搞成功就放弃了)
Map<String, BigDecimal> group = new HashMap<String, BigDecimal>();
Date estDate1 = new Date();
BigDecimal hourTotal = new BigDecimal(0.0);
for(PmEstimate pmEstimatest1 : list){
estDate1 = pmEstimatest1.ge