|
@@ -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();
|