Explorar o código

1.修改人力成本

WoNiu %!s(int64=4) %!d(string=hai) anos
pai
achega
c9abd737c9

+ 40 - 53
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

@@ -300,10 +300,10 @@ public class ChuanyunProjectScheduledTask {
     }
 
     /**
-     * 工时标准化
+     * 人力成本
      */
 //    @Scheduled(fixedDelay = 3600000L)
-    private void stardandHour() {
+    private void laborcost() {
         var flag = true;
         var pageSize = 20;
         var page = 0;
@@ -318,62 +318,49 @@ public class ChuanyunProjectScheduledTask {
             }
             List<ChuanyunUserCompanyDO> userCompanyDOList = chuanyunUserCompanyDOS.getContent();
             userCompanyDOList.forEach(chuanyunUserCompanyDO -> {
-                BigDecimal standard = new BigDecimal(8);
-                //每人每个项目每天工时
-                List<ChuanyunWorkHourDO> selfList = chuanyunWorkHourDao.getSelfWorkHour(chuanyunUserCompanyDO.getUserId());
-                selfList.forEach(self->{
-                    ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = new ChuanyunSelfWorkHourDO();
-                    chuanyunSelfWorkHourDO.setUserId(chuanyunUserCompanyDO.getUserId());
-                    chuanyunSelfWorkHourDO.setProjectId(self.getProjectId());
-                    chuanyunSelfWorkHourDO.setDayLogDate(self.getDayLogDate());
-                    //每人每天工时
-                   ChuanyunWorkHourDO chuanyunWorkHourDO = chuanyunWorkHourDao.getDayWorkHour(chuanyunUserCompanyDO.getUserId(),self.getDayLogDate());
-                   //工时标准化
-                    if (chuanyunWorkHourDO != null) {
-                        if (chuanyunWorkHourDO.getHoursWorked().intValue()<8) {
-                            chuanyunSelfWorkHourDO.setStandardWorkHour(self.getHoursWorked());
-                        }else {
-                            BigDecimal personDays = (self.getHoursWorked().divide(chuanyunWorkHourDO.getHoursWorked(), 2, BigDecimal.ROUND_HALF_UP)).multiply(standard);
-                            chuanyunSelfWorkHourDO.setStandardWorkHour(personDays);
-                        }
-                        ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO1 = chuanyunSelfWorkHourDao.findByUserIdAndAndProjectIdAndAndDayLogDate(chuanyunUserCompanyDO.getUserId(),self.getProjectId(),self.getDayLogDate());
-                        if (chuanyunSelfWorkHourDO1!=null) {
-                            chuanyunSelfWorkHourDao.delete(chuanyunSelfWorkHourDO1);
-                        }
-                        chuanyunSelfWorkHourDao.save(chuanyunSelfWorkHourDO);
-                        log.info("工时标准化新增成功");
-                    }
-                });
+                //工时标准化
+                standardHour(chuanyunUserCompanyDO);
+                //单项目单人单月成本
+                selfCost(chuanyunUserCompanyDO);
             });
         }
     }
 
-    /**
-     * 每人每项目成本
-     */
-//    @Scheduled(fixedDelay = 3600000L)
-    private void selfCost() {
-        var flag = true;
-        var pageSize = 20;
-        var page = 0;
-        while(flag) {
-            var pageable = PageRequest.of(page, pageSize);
-            var chuanyunUserCompanyDOS = chuanyunUserCompanyDao.findAllByStatus(1, pageable);
-            if (page <= chuanyunUserCompanyDOS.getTotalPages()) {
-                page += 1;
-            } else {
-                flag = false;
-                break;
+    private void standardHour(ChuanyunUserCompanyDO chuanyunUserCompanyDO) {
+        BigDecimal standard = new BigDecimal(8);
+        //每人每个项目每天工时
+        List<ChuanyunWorkHourDO> selfList = chuanyunWorkHourDao.getSelfWorkHour(chuanyunUserCompanyDO.getUserId());
+        selfList.forEach(self->{
+            ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = new ChuanyunSelfWorkHourDO();
+            chuanyunSelfWorkHourDO.setUserId(chuanyunUserCompanyDO.getUserId());
+            chuanyunSelfWorkHourDO.setProjectId(self.getProjectId());
+            chuanyunSelfWorkHourDO.setDayLogDate(self.getDayLogDate());
+            //每人每天工时
+            ChuanyunWorkHourDO chuanyunWorkHourDO = chuanyunWorkHourDao.getDayWorkHour(chuanyunUserCompanyDO.getUserId(),self.getDayLogDate());
+            //工时标准化
+            if (chuanyunWorkHourDO != null) {
+                if (chuanyunWorkHourDO.getHoursWorked().intValue()<8) {
+                    chuanyunSelfWorkHourDO.setStandardWorkHour(self.getHoursWorked());
+                }else {
+                    BigDecimal personDays = (self.getHoursWorked().divide(chuanyunWorkHourDO.getHoursWorked(), 2, BigDecimal.ROUND_HALF_UP)).multiply(standard);
+                    chuanyunSelfWorkHourDO.setStandardWorkHour(personDays);
+                }
+                ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO1 = chuanyunSelfWorkHourDao.findByUserIdAndAndProjectIdAndAndDayLogDate(chuanyunUserCompanyDO.getUserId(),self.getProjectId(),self.getDayLogDate());
+                if (chuanyunSelfWorkHourDO1!=null) {
+                    chuanyunSelfWorkHourDao.delete(chuanyunSelfWorkHourDO1);
+                }
+                chuanyunSelfWorkHourDao.save(chuanyunSelfWorkHourDO);
+                log.info("工时标准化新增成功");
             }
-            List<ChuanyunUserCompanyDO> userCompanyDOList = chuanyunUserCompanyDOS.getContent();
-            userCompanyDOList.forEach(chuanyunUserCompanyDO -> {
-                //每月每项目工时
-                List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.getMonthProjectHour(chuanyunUserCompanyDO.getUserId());
-                list.forEach(projectMonth->{
-                    ChuanyunSelfWorkHourDO monthHour = chuanyunSelfWorkHourDao.getMonthHour(chuanyunUserCompanyDO.getUserId(),projectMonth.getDayLogDate());
+        });
+    }
 
-                });
-            });
-        }
+    private void selfCost(ChuanyunUserCompanyDO chuanyunUserCompanyDO) {
+        //每月每项目工时
+        List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.getMonthProjectHour(chuanyunUserCompanyDO.getUserId());
+        list.forEach(projectMonth->{
+            ChuanyunSelfWorkHourDO monthHour = chuanyunSelfWorkHourDao.getMonthHour(chuanyunUserCompanyDO.getUserId(),projectMonth.getDayLogDate());
+
+        });
     }
 }