|
@@ -206,16 +206,7 @@ public class ChuanyunProjectScheduledTask {
|
|
|
}
|
|
|
}
|
|
|
chuanyunAdjustAccountDO.setImplementationCosts(money);
|
|
|
- //人力成本
|
|
|
- BigDecimal laborCost = new BigDecimal(0);
|
|
|
- List<ChuanyunLaborCostDO> recordlist = chuanyunLaborCostDao.findLaborCost(chuanyunProjectDO.getObjectId());
|
|
|
- //单个项目每人每月累计和
|
|
|
- for (ChuanyunLaborCostDO chuanyunLaborCostDO : recordlist) {
|
|
|
- if (chuanyunLaborCostDO.getOwnerPayroll()!=null) {
|
|
|
- laborCost = laborCost.add(chuanyunLaborCostDO.getOwnerPayroll());
|
|
|
- }
|
|
|
- }
|
|
|
- chuanyunAdjustAccountDO.setLaborCost(laborCost);
|
|
|
+
|
|
|
//核算人天
|
|
|
chuanyunAdjustAccountDO.setPersonDays(personDays(chuanyunProjectDO.getObjectId()));
|
|
|
//新增
|
|
@@ -299,16 +290,20 @@ public class ChuanyunProjectScheduledTask {
|
|
|
List<ChuanyunPersonDaysDO> selfWorkHourList = chuanyunPersonDaysDao.getSelfWorkHour(projectId);
|
|
|
for (ChuanyunPersonDaysDO chuanyunPersonDaysDO : selfWorkHourList) {
|
|
|
//项目总工时
|
|
|
- ChuanyunPersonDaysDO totalWorkHour = chuanyunPersonDaysDao.getTotalWorkHour(projectId);
|
|
|
- BigDecimal totalDays = (chuanyunPersonDaysDO.getHoursWorked().divide(totalWorkHour.getHoursWorked(), 2, BigDecimal.ROUND_HALF_UP)).multiply(standard);
|
|
|
- personDays= personDays.add(totalDays);
|
|
|
+ ChuanyunPersonDaysDO totalWorkHour = chuanyunPersonDaysDao.getTotalWorkHour(projectId,chuanyunPersonDaysDO.getUserId());
|
|
|
+ if (totalWorkHour != null){
|
|
|
+ BigDecimal totalDays = (chuanyunPersonDaysDO.getHoursWorked().divide(totalWorkHour.getHoursWorked(), 2, BigDecimal.ROUND_HALF_UP)).multiply(standard);
|
|
|
+ personDays= personDays.add(totalDays);
|
|
|
+ }
|
|
|
}
|
|
|
- return personDays.divide(standard);
|
|
|
-
|
|
|
+ return personDays;
|
|
|
}
|
|
|
|
|
|
- @Scheduled(fixedDelay = 3600000L)
|
|
|
- private void laborcost() {
|
|
|
+ /**
|
|
|
+ * 工时标准化
|
|
|
+ */
|
|
|
+// @Scheduled(fixedDelay = 3600000L)
|
|
|
+ private void stardandHour() {
|
|
|
var flag = true;
|
|
|
var pageSize = 20;
|
|
|
var page = 0;
|
|
@@ -352,4 +347,33 @@ public class ChuanyunProjectScheduledTask {
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 每人每项目成本
|
|
|
+ */
|
|
|
+// @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;
|
|
|
+ }
|
|
|
+ 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());
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|