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