|
@@ -15,6 +15,7 @@ import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
+import java.math.RoundingMode;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
@@ -195,14 +196,14 @@ public class ChuanyunProjectScheduledTask {
|
|
var page = 0;
|
|
var page = 0;
|
|
while (flag) {
|
|
while (flag) {
|
|
var pageable= PageRequest.of(page,pageSize);
|
|
var pageable= PageRequest.of(page,pageSize);
|
|
- var chuanyunGroupProjectDOS = chuanyunProjectDao.findAllByIsCreate(null,pageable);
|
|
|
|
- if (page<=chuanyunGroupProjectDOS.getTotalPages()){
|
|
|
|
|
|
+ var chuanyunProjectDOS = chuanyunProjectDao.findAllByIsCreate(null,pageable);
|
|
|
|
+ if (page<=chuanyunProjectDOS.getTotalPages()){
|
|
page += 1;
|
|
page += 1;
|
|
}else {
|
|
}else {
|
|
flag = false;
|
|
flag = false;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- List<ChuanyunProjectDO> list = chuanyunGroupProjectDOS.getContent();
|
|
|
|
|
|
+ List<ChuanyunProjectDO> list = chuanyunProjectDOS.getContent();
|
|
list.forEach(chuanyunProjectDO -> {
|
|
list.forEach(chuanyunProjectDO -> {
|
|
ChuanyunAdjustAccountDO chuanyunAdjustAccountDO = new ChuanyunAdjustAccountDO();
|
|
ChuanyunAdjustAccountDO chuanyunAdjustAccountDO = new ChuanyunAdjustAccountDO();
|
|
//项目号
|
|
//项目号
|
|
@@ -220,7 +221,7 @@ public class ChuanyunProjectScheduledTask {
|
|
//核算人天
|
|
//核算人天
|
|
chuanyunAdjustAccountDO.setPersonDays(personDays(chuanyunProjectDO.getObjectId()));
|
|
chuanyunAdjustAccountDO.setPersonDays(personDays(chuanyunProjectDO.getObjectId()));
|
|
//新增
|
|
//新增
|
|
- if (!chuanyunAdjustAccountDO.getPersonDays().toString().equals("0")){
|
|
|
|
|
|
+ if (chuanyunAdjustAccountDO.getPersonDays().intValue()>0){
|
|
try {
|
|
try {
|
|
List<String> macthers = new ArrayList<>();
|
|
List<String> macthers = new ArrayList<>();
|
|
macthers.add("F0000002_2,"+chuanyunProjectDO.getProjectCode());
|
|
macthers.add("F0000002_2,"+chuanyunProjectDO.getProjectCode());
|
|
@@ -302,7 +303,7 @@ public class ChuanyunProjectScheduledTask {
|
|
//项目总工时
|
|
//项目总工时
|
|
ChuanyunPersonDaysDO totalWorkHour = chuanyunPersonDaysDao.getTotalWorkHour(chuanyunPersonDaysDO.getUserId(),projectId);
|
|
ChuanyunPersonDaysDO totalWorkHour = chuanyunPersonDaysDao.getTotalWorkHour(chuanyunPersonDaysDO.getUserId(),projectId);
|
|
if (totalWorkHour != null && totalWorkHour.getHoursWorked().intValue()>0){
|
|
if (totalWorkHour != null && totalWorkHour.getHoursWorked().intValue()>0){
|
|
- BigDecimal totalDays = (chuanyunPersonDaysDO.getHoursWorked().divide(totalWorkHour.getHoursWorked(), 2, BigDecimal.ROUND_HALF_UP)).multiply(standard);
|
|
|
|
|
|
+ BigDecimal totalDays = (chuanyunPersonDaysDO.getHoursWorked().divide(totalWorkHour.getHoursWorked(), 2, RoundingMode.HALF_UP)).multiply(standard);
|
|
personDays= personDays.add(totalDays);
|
|
personDays= personDays.add(totalDays);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -312,7 +313,7 @@ public class ChuanyunProjectScheduledTask {
|
|
/**
|
|
/**
|
|
* 人力成本
|
|
* 人力成本
|
|
*/
|
|
*/
|
|
-// @Scheduled(fixedDelay = 3600000L)
|
|
|
|
|
|
+ @Scheduled(fixedDelay = 3600000L)
|
|
private void laborcost() {
|
|
private void laborcost() {
|
|
var flag = true;
|
|
var flag = true;
|
|
var pageSize = 20;
|
|
var pageSize = 20;
|
|
@@ -383,7 +384,7 @@ public class ChuanyunProjectScheduledTask {
|
|
if (chuanyunWorkHourDO.getHoursWorked().intValue()<8) {
|
|
if (chuanyunWorkHourDO.getHoursWorked().intValue()<8) {
|
|
chuanyunSelfWorkHourDO.setStandardWorkHour(self.getHoursWorked());
|
|
chuanyunSelfWorkHourDO.setStandardWorkHour(self.getHoursWorked());
|
|
}else {
|
|
}else {
|
|
- BigDecimal personDays = (self.getHoursWorked().divide(chuanyunWorkHourDO.getHoursWorked(), 2, BigDecimal.ROUND_HALF_UP)).multiply(standard);
|
|
|
|
|
|
+ BigDecimal personDays = (self.getHoursWorked().divide(chuanyunWorkHourDO.getHoursWorked(), 2, RoundingMode.HALF_UP)).multiply(standard);
|
|
chuanyunSelfWorkHourDO.setStandardWorkHour(personDays);
|
|
chuanyunSelfWorkHourDO.setStandardWorkHour(personDays);
|
|
}
|
|
}
|
|
ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO1 = chuanyunSelfWorkHourDao.findByUserIdAndAndProjectIdAndAndDayLogDate(chuanyunUserCompanyDO.getUserId(),self.getProjectId(),self.getDayLogDate());
|
|
ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO1 = chuanyunSelfWorkHourDao.findByUserIdAndAndProjectIdAndAndDayLogDate(chuanyunUserCompanyDO.getUserId(),self.getProjectId(),self.getDayLogDate());
|
|
@@ -409,7 +410,7 @@ public class ChuanyunProjectScheduledTask {
|
|
ChuanyunPayrollDO chuanyunPayrollDO = chuanyunPayrollDao.getPayroll(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()));
|
|
ChuanyunPayrollDO chuanyunPayrollDO = chuanyunPayrollDao.getPayroll(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()));
|
|
ChuanyunSelfCostDO chuanyunSelfCostDO = new ChuanyunSelfCostDO();
|
|
ChuanyunSelfCostDO chuanyunSelfCostDO = new ChuanyunSelfCostDO();
|
|
if (chuanyunPayrollDO != null) {
|
|
if (chuanyunPayrollDO != null) {
|
|
- BigDecimal cost = (projectMonth.getStandardWorkHour().divide(monthHour.getStandardWorkHour(), 2, BigDecimal.ROUND_HALF_UP)).multiply(chuanyunPayrollDO.getWagesPayable());
|
|
|
|
|
|
+ BigDecimal cost = (projectMonth.getStandardWorkHour().divide(monthHour.getStandardWorkHour(), 2, RoundingMode.HALF_UP)).multiply(chuanyunPayrollDO.getWagesPayable());
|
|
chuanyunSelfCostDO.setCost(cost);
|
|
chuanyunSelfCostDO.setCost(cost);
|
|
}
|
|
}
|
|
chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());
|
|
chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());
|