Browse Source

1.更新项目工时统计

WoNiu 4 years ago
parent
commit
5fd020a221

+ 0 - 57
src/main/java/com/galaxis/manatee/task/WorkHourStatistics.java

@@ -67,7 +67,6 @@ public class WorkHourStatistics {
 //        standardWorkHour();
         standardWeeklyWorkHour();
         standardMonthlyWorkHour();
-        projectHour();
         projectMemberHour();
         quitStandradHour();
     }
@@ -542,63 +541,7 @@ public class WorkHourStatistics {
     /**
      * 项目工时汇总
      */
-    private void projectHour() {
-        List<ChuanyunProjectCostDO> list1 = chuanyunProjectCostDao.getProjectCost();
-        log.info("开始更新项目汇总工时");
-        list1.forEach(chuanyunProjectCostDO -> {
-            //更新数据库
-            BigDecimal standard = new BigDecimal(8);
-            if (chuanyunProjectCostDO.getTotalHour()!=null){
-                chuanyunProjectCostDO.setPersonDays(chuanyunProjectCostDO.getTotalHour().divide(standard,2,RoundingMode.HALF_UP));
-            }
-            ChuanyunProjectCostDO oldProjectDO = chuanyunProjectCostDao.findByProjectIdAndProjectTypeAndStatus(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType(),chuanyunProjectCostDO.getStatus());
-            if (oldProjectDO !=null) {
-                chuanyunProjectCostDao.delete(oldProjectDO);
-            }
-            chuanyunProjectCostDao.save(chuanyunProjectCostDO);
-            //搜索是否有审批中的数据
-            ChuanyunProjectCostDO processDO = chuanyunProjectCostDao.getProcessProjectCost(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType());
-            if (processDO==null){
-                chuanyunProjectCostDao.deleteByProjectIdAndProjectTypeAndStatus(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType(),"2");
-                deleteExamineStatus(ChuanyunProjectTotalCostDO.SCHEMA_CODE,"F0000006","F0000001",chuanyunProjectCostDO.getProjectId(),"","","","","","","","","F0000004",chuanyunProjectCostDO.getProjectType());
-            }
 
-            try {
-                ChuanyunProjectScheduledTask.ProjectTotalCostDTO chuanyunProjectTotalCostDTO = new ChuanyunProjectScheduledTask.ProjectTotalCostDTO();
-                chuanyunProjectTotalCostDTO.setProjectType(chuanyunProjectCostDO.getProjectType());
-                chuanyunProjectTotalCostDTO.setProjectId(chuanyunProjectCostDO.getProjectId());
-                chuanyunProjectTotalCostDTO.setStatus(chuanyunProjectCostDO.getStatus());
-                chuanyunProjectTotalCostDTO.setWorkHour(chuanyunProjectCostDO.getTotalHour());
-                chuanyunProjectTotalCostDTO.setPersonDays(chuanyunProjectCostDO.getPersonDays());
-                if (!StringUtils.isEmpty(chuanyunProjectCostDO.getProjectId()) && !StringUtils.isEmpty(chuanyunProjectCostDO.getProjectType())){
-                    List<String> matchers = new ArrayList<>();
-                    matchers.add("F0000001_2,"+chuanyunProjectCostDO.getProjectId());
-                    matchers.add("F0000004_2,"+chuanyunProjectCostDO.getProjectType());
-                    matchers.add("F0000006_2,"+chuanyunProjectCostDO.getStatus());
-                    var filter= Filter.instance(0,1,true,"And",matchers);
-                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectTotalCostDO.SCHEMA_CODE,filter);
-                    var projectTotalString=objectMapper.writeValueAsString(chuanyunProjectTotalCostDTO);
-                    ChuanyunSaveDTO chuanyunSaveDTO;
-                    if (chuanyunFindAllResponse.getReturnData()!=null) {
-                        List<ChuanyunProjectTotalCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                        ChuanyunProjectTotalCostDO firstResult = result.get(0);
-                        chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectTotalCostDO.SCHEMA_CODE,firstResult.getObjectId(),projectTotalString);
-                    }else {
-                        chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectTotalCostDO.SCHEMA_CODE,projectTotalString,true);
-
-                    }
-                    if(!chuanyunSaveDTO.getSuccessful()){
-                        log.warn("新增项目成本汇总失败");
-                    }
-                }
-            } catch (JsonProcessingException | BigSizeException e) {
-                log.error(e.getMessage());
-                log.error(""+chuanyunProjectCostDO);
-                e.printStackTrace();
-            }
-        });
-        log.info("项目工时汇总更新完成"+list1.size());
-    }
 
     /**
      * 离职人员工时标准化

+ 62 - 1
src/main/java/com/galaxis/manatee/task/WorkHourStatisticsRecently.java

@@ -41,8 +41,9 @@ public class WorkHourStatisticsRecently {
     private final ObjectMapper objectMapper=new ObjectMapper();
     private final ChuanyunWeekMemberHourDao chuanyunWeekMemberHourDao;
     private final ChuanyunSelfCostDao chuanyunSelfCostDao;
+    private final ChuanyunProjectCostDao chuanyunProjectCostDao;
 
-    public WorkHourStatisticsRecently(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunWorkHourDao chuanyunWorkHourDao, ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao, ChuanyunWeekMemberHourDao chuanyunWeekMemberHourDao, ChuanyunSelfCostDao chuanyunSelfCostDao) {
+    public WorkHourStatisticsRecently(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunWorkHourDao chuanyunWorkHourDao, ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao, ChuanyunWeekMemberHourDao chuanyunWeekMemberHourDao, ChuanyunSelfCostDao chuanyunSelfCostDao, ChuanyunProjectCostDao chuanyunProjectCostDao) {
         this.chuanYunManager = chuanYunManager;
         this.chuanyunLogDao = chuanyunLogDao;
         this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
@@ -51,6 +52,7 @@ public class WorkHourStatisticsRecently {
         this.chuanyunSelfWorkHourDao = chuanyunSelfWorkHourDao;
         this.chuanyunWeekMemberHourDao = chuanyunWeekMemberHourDao;
         this.chuanyunSelfCostDao = chuanyunSelfCostDao;
+        this.chuanyunProjectCostDao = chuanyunProjectCostDao;
     }
 
     @Scheduled(fixedDelay = 3600000L)
@@ -59,6 +61,7 @@ public class WorkHourStatisticsRecently {
         standardWorkHour();
         standardWeeklyWorkHour();
         standardMonthlyWorkHour();
+        projectHour();
     }
 
     /**
@@ -474,6 +477,64 @@ public class WorkHourStatisticsRecently {
         });
     }
 
+    private void projectHour() {
+        List<ChuanyunProjectCostDO> list1 = chuanyunProjectCostDao.getProjectCost();
+        log.info("开始更新项目汇总工时");
+        list1.forEach(chuanyunProjectCostDO -> {
+            //更新数据库
+            BigDecimal standard = new BigDecimal(8);
+            if (chuanyunProjectCostDO.getTotalHour()!=null){
+                chuanyunProjectCostDO.setPersonDays(chuanyunProjectCostDO.getTotalHour().divide(standard,2,RoundingMode.HALF_UP));
+            }
+            ChuanyunProjectCostDO oldProjectDO = chuanyunProjectCostDao.findByProjectIdAndProjectTypeAndStatus(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType(),chuanyunProjectCostDO.getStatus());
+            if (oldProjectDO !=null) {
+                chuanyunProjectCostDao.delete(oldProjectDO);
+            }
+            chuanyunProjectCostDao.save(chuanyunProjectCostDO);
+            //搜索是否有审批中的数据
+            ChuanyunProjectCostDO processDO = chuanyunProjectCostDao.getProcessProjectCost(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType());
+            if (processDO==null){
+                chuanyunProjectCostDao.deleteByProjectIdAndProjectTypeAndStatus(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType(),"2");
+                deleteExamineStatus(ChuanyunProjectTotalCostDO.SCHEMA_CODE,"F0000006","F0000001",chuanyunProjectCostDO.getProjectId(),"","","","","","","","","F0000004",chuanyunProjectCostDO.getProjectType());
+            }
+
+            try {
+                ChuanyunProjectScheduledTask.ProjectTotalCostDTO chuanyunProjectTotalCostDTO = new ChuanyunProjectScheduledTask.ProjectTotalCostDTO();
+                chuanyunProjectTotalCostDTO.setProjectType(chuanyunProjectCostDO.getProjectType());
+                chuanyunProjectTotalCostDTO.setProjectId(chuanyunProjectCostDO.getProjectId());
+                chuanyunProjectTotalCostDTO.setStatus(chuanyunProjectCostDO.getStatus());
+                chuanyunProjectTotalCostDTO.setWorkHour(chuanyunProjectCostDO.getTotalHour());
+                chuanyunProjectTotalCostDTO.setPersonDays(chuanyunProjectCostDO.getPersonDays());
+                if (!StringUtils.isEmpty(chuanyunProjectCostDO.getProjectId()) && !StringUtils.isEmpty(chuanyunProjectCostDO.getProjectType())){
+                    List<String> matchers = new ArrayList<>();
+                    matchers.add("F0000001_2,"+chuanyunProjectCostDO.getProjectId());
+                    matchers.add("F0000004_2,"+chuanyunProjectCostDO.getProjectType());
+                    matchers.add("F0000006_2,"+chuanyunProjectCostDO.getStatus());
+                    var filter= Filter.instance(0,1,true,"And",matchers);
+                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectTotalCostDO.SCHEMA_CODE,filter);
+                    var projectTotalString=objectMapper.writeValueAsString(chuanyunProjectTotalCostDTO);
+                    ChuanyunSaveDTO chuanyunSaveDTO;
+                    if (chuanyunFindAllResponse.getReturnData()!=null) {
+                        List<ChuanyunProjectTotalCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                        ChuanyunProjectTotalCostDO firstResult = result.get(0);
+                        chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectTotalCostDO.SCHEMA_CODE,firstResult.getObjectId(),projectTotalString);
+                    }else {
+                        chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectTotalCostDO.SCHEMA_CODE,projectTotalString,true);
+
+                    }
+                    if(!chuanyunSaveDTO.getSuccessful()){
+                        log.warn("新增项目成本汇总失败");
+                    }
+                }
+            } catch (JsonProcessingException | BigSizeException e) {
+                log.error(e.getMessage());
+                log.error(""+chuanyunProjectCostDO);
+                e.printStackTrace();
+            }
+        });
+        log.info("项目工时汇总更新完成"+list1.size());
+    }
+
     /**
      * 人员-项目-月度工时汇总,更新氚云数据
      */