|
@@ -5049,6 +5049,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
Map<Object, List<Map<String, Object>>> listMapGroupByDept = maps.stream().collect(Collectors.groupingBy(m -> Integer.valueOf(String.valueOf(m.get("deptId")))));
|
|
|
BigDecimal planNum=new BigDecimal(0);
|
|
|
BigDecimal nowNum=new BigDecimal(0);
|
|
|
+ BigDecimal planCost=new BigDecimal(0);
|
|
|
+ BigDecimal nowCost=new BigDecimal(0);
|
|
|
+ BigDecimal planHour=new BigDecimal(0);
|
|
|
+ BigDecimal nowHour=new BigDecimal(0);
|
|
|
for (Integer dept : deptIdList) {
|
|
|
Map<String,Object> item=new HashMap<>();
|
|
|
item.put("startDate",date.replaceAll("-",""));
|
|
@@ -5058,10 +5062,24 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
for (Map<String, Object> map : list) {
|
|
|
planNum=planNum.add(new BigDecimal((String.valueOf(map.get("planNum")))));
|
|
|
nowNum=nowNum.add(new BigDecimal((String.valueOf(map.get("nowNum")))));
|
|
|
+ planCost=planCost.add(new BigDecimal((String.valueOf(map.get("planCost")))));
|
|
|
+ nowCost=nowCost.add(new BigDecimal((String.valueOf(map.get("nowCost")))));
|
|
|
+ planHour=planHour.add(new BigDecimal((String.valueOf(map.get("planHour")))));
|
|
|
+ nowHour=nowHour.add(new BigDecimal((String.valueOf(map.get("nowHour")))));
|
|
|
}
|
|
|
+ planNum=planNum.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ nowNum=nowNum.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ planCost=planCost.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ nowCost=nowCost.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ planHour=planHour.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ nowHour=nowHour.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
item.put("planNum",planNum.doubleValue());
|
|
|
item.put("nowNum",nowNum.doubleValue());
|
|
|
- BigDecimal progress = nowNum.divide(planNum, RoundingMode.HALF_UP);
|
|
|
+ item.put("planCost",planCost.doubleValue());
|
|
|
+ item.put("nowCost",nowCost.doubleValue());
|
|
|
+ item.put("planHour",planHour.doubleValue());
|
|
|
+ item.put("nowHour",nowHour.doubleValue());
|
|
|
+ BigDecimal progress = nowNum.divide(planNum,2, BigDecimal.ROUND_HALF_UP);
|
|
|
item.put("progress",format.format(progress.doubleValue()));
|
|
|
resultList.add(item);
|
|
|
}
|
|
@@ -5071,7 +5089,37 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
for (String dept : deptIdList) {
|
|
|
Map<String,Object> map=new HashMap<>();
|
|
|
map.put("departmentCascade",convertDepartmentIdToCascade(Integer.valueOf(dept),departmentList));
|
|
|
- map.put("deptList",resultList.stream().filter(r->String.valueOf(r.get("deptId")).equals(dept)).collect(Collectors.toList()));
|
|
|
+ List<Map<String, Object>> maps = resultList.stream().filter(r -> String.valueOf(r.get("deptId")).equals(dept)).collect(Collectors.toList());
|
|
|
+ map.put("deptList",maps);
|
|
|
+ map.put("deptId",dept);
|
|
|
+ BigDecimal totalPlanNum = new BigDecimal(0);
|
|
|
+ BigDecimal totalNowNum = new BigDecimal(0);
|
|
|
+ BigDecimal totalPlanHour = new BigDecimal(0);
|
|
|
+ BigDecimal totalNowHour = new BigDecimal(0);
|
|
|
+ BigDecimal totalPlanCost = new BigDecimal(0);
|
|
|
+ BigDecimal totalNowCost= new BigDecimal(0);
|
|
|
+ for (Map<String, Object> stringObjectMap : maps) {
|
|
|
+ totalPlanNum=totalPlanNum.add(new BigDecimal((String.valueOf(stringObjectMap.get("planNum")))));
|
|
|
+ totalNowNum=totalNowNum.add(new BigDecimal((String.valueOf(stringObjectMap.get("nowNum")))));
|
|
|
+ totalPlanHour=totalPlanHour.add(new BigDecimal((String.valueOf(stringObjectMap.get("planHour")))));
|
|
|
+ totalNowHour=totalNowHour.add(new BigDecimal((String.valueOf(stringObjectMap.get("nowHour")))));
|
|
|
+ totalPlanCost=totalPlanCost.add(new BigDecimal((String.valueOf(stringObjectMap.get("planCost")))));
|
|
|
+ totalNowCost=totalNowCost.add(new BigDecimal((String.valueOf(stringObjectMap.get("nowCost")))));
|
|
|
+ }
|
|
|
+ totalPlanNum=totalPlanNum.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ totalNowNum=totalNowNum.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ totalPlanHour=totalPlanHour.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ totalNowHour=totalNowHour.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ totalPlanCost=totalPlanCost.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ totalNowCost=totalNowCost.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ map.put("totalPlanNum",totalPlanNum.doubleValue());
|
|
|
+ map.put("totalNowNum",totalNowNum.doubleValue());
|
|
|
+ map.put("totalPlanHour",totalPlanHour.doubleValue());
|
|
|
+ map.put("totalNowHour",totalNowHour.doubleValue());
|
|
|
+ map.put("totalPlanCost",totalPlanCost.doubleValue());
|
|
|
+ map.put("totalNowCost",totalNowCost.doubleValue());
|
|
|
+ BigDecimal totalProgress = totalNowNum.divide(totalPlanNum, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ map.put("totalProgress",format.format(totalProgress.doubleValue()));
|
|
|
lastList.add(map);
|
|
|
}
|
|
|
//得到的数据再根据部门过滤一下
|