瀏覽代碼

拆分了工时更新的频率

verguenza 4 年之前
父節點
當前提交
30b8b96419
共有 1 個文件被更改,包括 28 次插入10 次删除
  1. 28 10
      src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

+ 28 - 10
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

@@ -269,13 +269,11 @@ public class ChuanyunProjectScheduledTask {
         log.info("项目销售合同回款信息保存保存"+totalCount);
     }
 
-
     /**
      * 人力成本
      */
     @Scheduled(fixedDelay = 3600000L)
-    private void laborCost() {
-        var objectMapper=new ObjectMapper();
+    private void standardWorkHour() {
         var flag = true;
         var pageSize = 20;
         var page = 0;
@@ -293,21 +291,40 @@ public class ChuanyunProjectScheduledTask {
             userCompanyDOList.forEach(chuanyunUserCompanyDO -> {
                 //工时标准化
                 standardHour(chuanyunUserCompanyDO);
+            });
+        }
+    }
+
+    /**
+     * 人力成本
+     */
+    @Scheduled(fixedDelay = 3600000L)
+    private void standardMonthlyWorkHour() {
+        var flag = true;
+        var pageSize = 20;
+        var page = 0;
+        while(flag) {
+            var pageable= PageRequest.of(page,pageSize);
+            var chuanyunUserCompanyList = chuanyunUserCompanyDao.findAllByStatus(1,pageable);
+            if (page<=chuanyunUserCompanyList.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            //逐个将员工每天工时进行统计汇总
+            List<ChuanyunUserCompanyDO> userCompanyDOList = chuanyunUserCompanyList.getContent();
+            userCompanyDOList.forEach(chuanyunUserCompanyDO -> {
                 //单项目单人单月成本
                 standardMonthlyHour(chuanyunUserCompanyDO);
             });
         }
-        //人员项目周工时汇总
-        weekhour();
-        //按项目汇总用户工时
-        monthhour();
-        //项目汇总
-        projecthour();
     }
 
     /**
      * 人员-项目-周度工时汇总
      */
+    @Scheduled(fixedDelay = 3600000L)
     private void weekhour() {
         //更新数据库
        List<ChuanyunWeekMemberHourDO> list = chuanyunWeekMemberHourDao.getWeekMemberHour();
@@ -368,6 +385,7 @@ public class ChuanyunProjectScheduledTask {
     /**
      * 项目工时汇总
      */
+    @Scheduled(fixedDelay = 3600000L)
     private void projecthour() {
         List<ChuanyunProjectCostDO> list1 = chuanyunProjectCostDao.getProjectCost();
         list1.forEach(chuanyunProjectCostDO -> {
@@ -431,6 +449,7 @@ public class ChuanyunProjectScheduledTask {
     /**
      * 人员项目工时汇总
      */
+    @Scheduled(fixedDelay = 3600000L)
     private void monthhour() {
         List<ChuanyunMemberCostDO> list = chuanyunMemberCostDao.getMemberCost();
         list.forEach(chuanyunMemberCostDO -> {
@@ -612,7 +631,6 @@ public class ChuanyunProjectScheduledTask {
             }
             chuanyunSelfCostDao.save(chuanyunSelfCostDO);
 
-
             //更新氚云数据
             chuanyunMemberMonthCostDTO.setProjectId(projectMonth.getProjectId());
             chuanyunMemberMonthCostDTO.setProjectType(projectMonth.getProjectType());