瀏覽代碼

修改依斯倍分组耗用进度表部门:添加外协,运维部门

yusm 6 天之前
父節點
當前提交
88f098ec23

+ 73 - 169
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -15720,9 +15720,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         //需要统计的部门
         List<Integer> targetDeptIds=new ArrayList<>();
-        targetDeptIds.add(7458);
-        targetDeptIds.add(7459);
-        targetDeptIds.add(7460);//工程本部
+        targetDeptIds.add(7458);//研发部
+        targetDeptIds.add(7459);//生产部
+        targetDeptIds.add(7460);//工程部
+        targetDeptIds.add(9661);//运维
+        targetDeptIds.add(9665);//外协
         //需要统计的分组名称
         List<String> targetGroupNameList=new ArrayList<>();
         targetGroupNameList.add("生产部电气");
@@ -15774,176 +15776,24 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 String departmentName = department.get().getDepartmentName();
                 switch (deptId){
                     case 7459:
-                        groupNames=new ArrayList<>();
-                        groupNames.add("生产部电气");
-                        groupNames.add("生产部车间");
-                        for (String groupName : groupNames) {
-                            Optional<TaskGroup> taskGroup = taskGroupList.stream().filter(f -> f.getName().equals(groupName) && f.getProjectId().equals(project.getId())).findFirst();
-                            Map<String,Object> item=new HashMap<>();
-                            item.put("projectId",project.getId());
-                            item.put("projectName",project.getProjectName());
-                            item.put("projectCode",project.getProjectCode());
-                            item.put("currentStageName", project.getCurrentStageName());
-                            item.put("groupName",groupName);
-                            item.put("corpwxDeptId",corpwxDeptid);
-                            item.put("department_name",departmentName);
-                            if(taskGroup.isPresent()){
-                                List<Map<String, Object>> mapList = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
-                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId())).collect(Collectors.toList());
-                                if(mapList!=null&&mapList.size()>0){
-                                    item.put("planHour",mapList.get(0).get("planHour"));
-                                    item.put("realHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("realHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("realCost",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("realCost")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("overHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("overHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("normalHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("normalHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("afterSetPlanHour",mapList.get(0).get("afterSetPlanHour"));
-                                    double afterSetPlanHour = Double.valueOf(String.valueOf(mapList.get(0).get("afterSetPlanHour"))).doubleValue();
-                                    double realHour = mapList.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
-                                    double planHour =  Double.valueOf(String.valueOf( mapList.get(0).get("planHour"))).doubleValue();
-                                    if(afterSetPlanHour>0){
-                                        planHour=planHour-afterSetPlanHour;
-                                    }
-                                    if (planHour == 0) {
-                                        item.put("process", "0.00%");
-                                    } else {
-                                        item.put("process", percentFormat.format(realHour / planHour));
-                                    }
-                                }else {
-                                    item.put("planHour",0);
-                                    item.put("realHour",0);
-                                    item.put("realCost",0);
-                                    item.put("overHour",0);
-                                    item.put("normalHour",0);
-                                    item.put("afterSetPlanHour",0);
-                                    item.put("process","0.00%");
-                                }
-                            }else {
-                                item.put("planHour",0);
-                                item.put("realHour",0);
-                                item.put("realCost",0);
-                                item.put("overHour",0);
-                                item.put("normalHour",0);
-                                item.put("afterSetPlanHour",0);
-                                item.put("process","0.00%");
-                            }
-                            itemList.add(item);
-                        }
+                        groupNames=targetGroupNameList;
+                        extracted(project, groupNames, taskGroupList, corpwxDeptid, departmentName, resultList, percentFormat, itemList);
                         break;
                     case 7460:
-                        groupNames=new ArrayList<>();
-                        groupNames.add("工程部现场安装施工");
-                        groupNames.add("工程部配合调试");
-                        for (String groupName : groupNames) {
-                            Optional<TaskGroup> taskGroup = taskGroupList.stream().filter(f -> f.getName().equals(groupName) && f.getProjectId().equals(project.getId())).findFirst();
-                            Map<String,Object> item=new HashMap<>();
-                            item.put("projectId",project.getId());
-                            item.put("projectName",project.getProjectName());
-                            item.put("projectCode",project.getProjectCode());
-                            item.put("currentStageName", project.getCurrentStageName());
-                            item.put("groupName",groupName);
-                            item.put("corpwxDeptId",corpwxDeptid);
-                            item.put("department_name",departmentName);
-                            if(taskGroup.isPresent()){
-                                List<Map<String, Object>> mapList = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
-                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId())).collect(Collectors.toList());
-                                if(mapList!=null&&mapList.size()>0){
-                                    item.put("planHour",mapList.get(0).get("planHour"));
-                                    item.put("realHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("realHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("realCost",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("realCost")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("overHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("overHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("normalHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("normalHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("afterSetPlanHour",mapList.get(0).get("afterSetPlanHour"));
-                                    double afterSetPlanHour = Double.valueOf(String.valueOf(mapList.get(0).get("afterSetPlanHour"))).doubleValue();
-                                    double realHour = mapList.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
-                                    double planHour =  Double.valueOf(String.valueOf( mapList.get(0).get("planHour"))).doubleValue();
-                                    if(afterSetPlanHour>0){
-                                        planHour=planHour-afterSetPlanHour;
-                                    }
-                                    if (planHour == 0) {
-                                        item.put("process", "0.00%");
-                                    } else {
-                                        item.put("process", percentFormat.format(realHour / planHour));
-                                    }
-                                }else {
-                                    item.put("planHour",0);
-                                    item.put("realHour",0);
-                                    item.put("realCost",0);
-                                    item.put("overHour",0);
-                                    item.put("normalHour",0);
-                                    item.put("afterSetPlanHour",0);
-                                    item.put("process","0.00%");
-                                }
-                            }else {
-                                item.put("planHour",0);
-                                item.put("realHour",0);
-                                item.put("realCost",0);
-                                item.put("overHour",0);
-                                item.put("normalHour",0);
-                                item.put("afterSetPlanHour",0);
-                                item.put("process","0.00%");
-                            }
-                            itemList.add(item);
-                        }
+                        groupNames=targetGroupNameList;
+                        extracted(project, groupNames, taskGroupList, corpwxDeptid, departmentName, resultList, percentFormat, itemList);
                         break;
                     case 7458:
-                        groupNames=new ArrayList<>();
-                        groupNames.add("研发部工艺设计");
-                        groupNames.add("研发部结构设计");
-                        groupNames.add("研发部BIM设计");
-                        groupNames.add("研发部电气设计");
-                        groupNames.add("研发部工艺调试验收");
-                        groupNames.add("研发部电气调试验收");
-                        for (String groupName : groupNames) {
-                            Optional<TaskGroup> taskGroup = taskGroupList.stream().filter(f -> f.getName().equals(groupName) && f.getProjectId().equals(project.getId())).findFirst();
-                            Map<String,Object> item=new HashMap<>();
-                            item.put("projectId",project.getId());
-                            item.put("projectName",project.getProjectName());
-                            item.put("projectCode",project.getProjectCode());
-                            item.put("currentStageName", project.getCurrentStageName());
-                            item.put("groupName",groupName);
-                            item.put("corpwxDeptId",corpwxDeptid);
-                            item.put("department_name",departmentName);
-                            if(taskGroup.isPresent()){
-                                List<Map<String, Object>> mapList = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
-                                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId())).collect(Collectors.toList());
-                                if(mapList!=null&&mapList.size()>0){
-                                    item.put("planHour",mapList.get(0).get("planHour"));
-                                    item.put("realHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("realHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("realCost",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("realCost")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("overHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("overHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("normalHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("normalHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
-                                    item.put("afterSetPlanHour",mapList.get(0).get("afterSetPlanHour"));
-                                    double afterSetPlanHour = Double.valueOf(String.valueOf(mapList.get(0).get("afterSetPlanHour"))).doubleValue();
-                                    double realHour = mapList.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
-                                    double planHour =  Double.valueOf(String.valueOf( mapList.get(0).get("planHour"))).doubleValue();
-                                    if(afterSetPlanHour>0){
-                                        planHour=planHour-afterSetPlanHour;
-                                    }
-                                    if (planHour == 0) {
-                                        item.put("process", "0.00%");
-                                    } else {
-                                        item.put("process", percentFormat.format(realHour / planHour));
-                                    }
-                                }else {
-                                    item.put("planHour",0);
-                                    item.put("realHour",0);
-                                    item.put("realCost",0);
-                                    item.put("overHour",0);
-                                    item.put("normalHour",0);
-                                    item.put("afterSetPlanHour",0);
-                                    item.put("process","0.00%");
-                                }
-                            }else {
-                                item.put("planHour",0);
-                                item.put("realHour",0);
-                                item.put("realCost",0);
-                                item.put("overHour",0);
-                                item.put("normalHour",0);
-                                item.put("afterSetPlanHour",0);
-                                item.put("process","0.00%");
-                            }
-                            itemList.add(item);
-                        }
+                        groupNames=targetGroupNameList;
+                        extracted(project, groupNames, taskGroupList, corpwxDeptid, departmentName, resultList, percentFormat, itemList);
+                        break;
+                    case 9661:
+                        groupNames=targetGroupNameList;
+                        extracted(project, groupNames, taskGroupList, corpwxDeptid, departmentName, resultList, percentFormat, itemList);
+                        break;
+                    case 9665:
+                        groupNames=targetGroupNameList;
+                        extracted(project, groupNames, taskGroupList, corpwxDeptid, departmentName, resultList, percentFormat, itemList);
                         break;
                 }
             }
@@ -15955,6 +15805,60 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return msg;
     }
 
+    private static void extracted(Project project, List<String> groupNames, List<TaskGroup> taskGroupList, Integer corpwxDeptid, String departmentName, List<Map<String, Object>> resultList, NumberFormat percentFormat, List<Map<String, Object>> itemList) {
+        for (String groupName : groupNames) {
+            Optional<TaskGroup> taskGroup = taskGroupList.stream().filter(f -> f.getName().equals(groupName) && f.getProjectId().equals(project.getId())).findFirst();
+            Map<String,Object> item=new HashMap<>();
+            item.put("projectId", project.getId());
+            item.put("projectName", project.getProjectName());
+            item.put("projectCode", project.getProjectCode());
+            item.put("currentStageName", project.getCurrentStageName());
+            item.put("groupName",groupName);
+            item.put("corpwxDeptId", corpwxDeptid);
+            item.put("department_name", departmentName);
+            if(taskGroup.isPresent()){
+                List<Map<String, Object>> mapList = resultList.stream().filter(r -> Integer.valueOf(String.valueOf(r.get("projectId"))).equals(project.getId())
+                        && Integer.valueOf(String.valueOf(r.get("groupId"))).equals(taskGroup.get().getId())).collect(Collectors.toList());
+                if(mapList!=null&&mapList.size()>0){
+                    item.put("planHour",mapList.get(0).get("planHour"));
+                    item.put("realHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("realHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
+                    item.put("realCost",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("realCost")))).sum()).setScale(2,RoundingMode.HALF_UP));
+                    item.put("overHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("overHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
+                    item.put("normalHour",new BigDecimal(mapList.stream().mapToDouble(m-> Double.valueOf(String.valueOf(m.get("normalHour")))).sum()).setScale(2,RoundingMode.HALF_UP));
+                    item.put("afterSetPlanHour",mapList.get(0).get("afterSetPlanHour"));
+                    double afterSetPlanHour = Double.valueOf(String.valueOf(mapList.get(0).get("afterSetPlanHour"))).doubleValue();
+                    double realHour = mapList.stream().mapToDouble(m -> Double.valueOf(String.valueOf(m.get("realHour")))).sum();
+                    double planHour =  Double.valueOf(String.valueOf( mapList.get(0).get("planHour"))).doubleValue();
+                    if(afterSetPlanHour>0){
+                        planHour=planHour-afterSetPlanHour;
+                    }
+                    if (planHour == 0) {
+                        item.put("process", "0.00%");
+                    } else {
+                        item.put("process", percentFormat.format(realHour / planHour));
+                    }
+                }else {
+                    item.put("planHour",0);
+                    item.put("realHour",0);
+                    item.put("realCost",0);
+                    item.put("overHour",0);
+                    item.put("normalHour",0);
+                    item.put("afterSetPlanHour",0);
+                    item.put("process","0.00%");
+                }
+            }else {
+                item.put("planHour",0);
+                item.put("realHour",0);
+                item.put("realCost",0);
+                item.put("overHour",0);
+                item.put("normalHour",0);
+                item.put("afterSetPlanHour",0);
+                item.put("process","0.00%");
+            }
+            itemList.add(item);
+        }
+    }
+
     @Override
     public HttpRespMsg exportGroupExpendProcessList(String stageName, String startDate, String endDate,Integer projectId) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();