|
@@ -188,7 +188,7 @@ public class ChuanyunProjectScheduledTask {
|
|
/**
|
|
/**
|
|
* 项目核算登记
|
|
* 项目核算登记
|
|
*/
|
|
*/
|
|
- @Scheduled(fixedDelay = 3600000L)
|
|
|
|
|
|
+// @Scheduled(fixedDelay = 3600000L)
|
|
private void saveAdjustAccount() {
|
|
private void saveAdjustAccount() {
|
|
var objectMapper=new ObjectMapper();
|
|
var objectMapper=new ObjectMapper();
|
|
var flag = true;
|
|
var flag = true;
|
|
@@ -315,6 +315,7 @@ public class ChuanyunProjectScheduledTask {
|
|
*/
|
|
*/
|
|
@Scheduled(fixedDelay = 3600000L)
|
|
@Scheduled(fixedDelay = 3600000L)
|
|
private void laborcost() {
|
|
private void laborcost() {
|
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
var flag = true;
|
|
var flag = true;
|
|
var pageSize = 20;
|
|
var pageSize = 20;
|
|
var page = 0;
|
|
var page = 0;
|
|
@@ -330,9 +331,9 @@ public class ChuanyunProjectScheduledTask {
|
|
List<ChuanyunUserCompanyDO> userCompanyDOList = chuanyunUserCompanyDOS.getContent();
|
|
List<ChuanyunUserCompanyDO> userCompanyDOList = chuanyunUserCompanyDOS.getContent();
|
|
userCompanyDOList.forEach(chuanyunUserCompanyDO -> {
|
|
userCompanyDOList.forEach(chuanyunUserCompanyDO -> {
|
|
//工时标准化
|
|
//工时标准化
|
|
- standardHour(chuanyunUserCompanyDO);
|
|
|
|
|
|
+// standardHour(chuanyunUserCompanyDO);
|
|
//单项目单人单月成本
|
|
//单项目单人单月成本
|
|
- selfCost(chuanyunUserCompanyDO);
|
|
|
|
|
|
+// selfCost(chuanyunUserCompanyDO);
|
|
});
|
|
});
|
|
//每人月度汇总
|
|
//每人月度汇总
|
|
List<ChuanyunMemberCostDO> list = chuanyunMemberCostDao.getMemberCost();
|
|
List<ChuanyunMemberCostDO> list = chuanyunMemberCostDao.getMemberCost();
|
|
@@ -347,6 +348,36 @@ public class ChuanyunProjectScheduledTask {
|
|
chuanyunMemberCostDao.delete(oldCostDO);
|
|
chuanyunMemberCostDao.delete(oldCostDO);
|
|
}
|
|
}
|
|
chuanyunMemberCostDao.save(memberCostDO);
|
|
chuanyunMemberCostDao.save(memberCostDO);
|
|
|
|
+ //更新氚云数据
|
|
|
|
+ try {
|
|
|
|
+ ChuanyunProjectMemberCostDO chuanyunProjectMemberCostDO = new ChuanyunProjectMemberCostDO();
|
|
|
|
+ chuanyunProjectMemberCostDO.setProjectId(chuanyunMemberCostDO.getProjectId());
|
|
|
|
+ chuanyunProjectMemberCostDO.setUserId(chuanyunMemberCostDO.getUserId());
|
|
|
|
+ chuanyunProjectMemberCostDO.setCost(chuanyunMemberCostDO.getCost());
|
|
|
|
+ chuanyunProjectMemberCostDO.setWorkHour(chuanyunMemberCostDO.getTotalHour());
|
|
|
|
+ List<String> macthers = new ArrayList<>();
|
|
|
|
+ macthers.add("F0000001_2,"+chuanyunMemberCostDO.getProjectId());
|
|
|
|
+ macthers.add("F0000002_2,"+chuanyunMemberCostDO.getUserId());
|
|
|
|
+ var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectMemberCostDO.SCHEMA_CODE,filter);
|
|
|
|
+ var projectmemberString=objectMapper.writeValueAsString(chuanyunProjectMemberCostDO);
|
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
|
+ if (chuanyunFindAllResponse.getReturnData()!=null) {
|
|
|
|
+ List<ChuanyunProjectMemberCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
|
+ ChuanyunProjectMemberCostDO oldProjectMemberCostDO = result.get(0);
|
|
|
|
+ chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectMemberCostDO.SCHEMA_CODE,oldProjectMemberCostDO.getObjectId(),projectmemberString);
|
|
|
|
+ }else {
|
|
|
|
+ chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectMemberCostDO.SCHEMA_CODE,projectmemberString,true);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
|
+ log.info("新增项目成员成本汇总成功");
|
|
|
|
+ }else{
|
|
|
|
+ log.warn("新增项目成员成本汇总失败");
|
|
|
|
+ }
|
|
|
|
+ } catch (JsonProcessingException | BigSizeException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
});
|
|
});
|
|
//项目汇总
|
|
//项目汇总
|
|
List<ChuanyunProjectCostDO> list1 = chuanyunProjectCostDao.getProjectCost();
|
|
List<ChuanyunProjectCostDO> list1 = chuanyunProjectCostDao.getProjectCost();
|
|
@@ -360,6 +391,33 @@ public class ChuanyunProjectScheduledTask {
|
|
chuanyunProjectCostDao.delete(oldPeojectDO);
|
|
chuanyunProjectCostDao.delete(oldPeojectDO);
|
|
}
|
|
}
|
|
chuanyunProjectCostDao.save(projectCostDO);
|
|
chuanyunProjectCostDao.save(projectCostDO);
|
|
|
|
+ try {
|
|
|
|
+ ChuanyunProjectTotalCostDO chuanyunProjectTotalCostDO = new ChuanyunProjectTotalCostDO();
|
|
|
|
+ chuanyunProjectTotalCostDO.setProjectId(chuanyunProjectCostDO.getProjectId());
|
|
|
|
+ chuanyunProjectTotalCostDO.setCost(chuanyunProjectCostDO.getCost());
|
|
|
|
+ chuanyunProjectTotalCostDO.setWorkHour(chuanyunProjectCostDO.getTotalHour());
|
|
|
|
+ List<String> macthers = new ArrayList<>();
|
|
|
|
+ macthers.add("F0000001_2,"+chuanyunProjectCostDO.getProjectId());
|
|
|
|
+ var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectTotalCostDO.SCHEMA_CODE,filter);
|
|
|
|
+ var projecttotalString=objectMapper.writeValueAsString(chuanyunProjectTotalCostDO);
|
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
|
+ if (chuanyunFindAllResponse.getReturnData()!=null) {
|
|
|
|
+ List<ChuanyunProjectTotalCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
|
+ ChuanyunProjectTotalCostDO chuanyunProjectTotalCostDO1 = result.get(0);
|
|
|
|
+ chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectTotalCostDO.SCHEMA_CODE,chuanyunProjectTotalCostDO1.getObjectId(),projecttotalString);
|
|
|
|
+ }else {
|
|
|
|
+ chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectTotalCostDO.SCHEMA_CODE,projecttotalString,true);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
|
+ log.info("新增项目成本汇总成功");
|
|
|
|
+ }else{
|
|
|
|
+ log.warn("新增项目成本汇总失败");
|
|
|
|
+ }
|
|
|
|
+ } catch (JsonProcessingException | BigSizeException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -402,6 +460,7 @@ public class ChuanyunProjectScheduledTask {
|
|
* @param chuanyunUserCompanyDO
|
|
* @param chuanyunUserCompanyDO
|
|
*/
|
|
*/
|
|
private void selfCost(ChuanyunUserCompanyDO chuanyunUserCompanyDO) {
|
|
private void selfCost(ChuanyunUserCompanyDO chuanyunUserCompanyDO) {
|
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
//每月每项目工时
|
|
//每月每项目工时
|
|
List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.getMonthProjectHour(chuanyunUserCompanyDO.getUserId());
|
|
List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.getMonthProjectHour(chuanyunUserCompanyDO.getUserId());
|
|
list.forEach(projectMonth->{
|
|
list.forEach(projectMonth->{
|
|
@@ -409,9 +468,11 @@ public class ChuanyunProjectScheduledTask {
|
|
ChuanyunSelfWorkHourDO monthHour = chuanyunSelfWorkHourDao.getMonthHour(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()));
|
|
ChuanyunSelfWorkHourDO monthHour = chuanyunSelfWorkHourDao.getMonthHour(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()));
|
|
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();
|
|
|
|
+ ChuanyunMemberMonthCostDO chuanyunMemberMonthCostDO = new ChuanyunMemberMonthCostDO();
|
|
if (chuanyunPayrollDO != null) {
|
|
if (chuanyunPayrollDO != null) {
|
|
BigDecimal cost = (projectMonth.getStandardWorkHour().divide(monthHour.getStandardWorkHour(), 2, RoundingMode.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);
|
|
|
|
+ chuanyunMemberMonthCostDO.setCost(cost);
|
|
}
|
|
}
|
|
chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());
|
|
chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());
|
|
chuanyunSelfCostDO.setUserId(projectMonth.getUserId());
|
|
chuanyunSelfCostDO.setUserId(projectMonth.getUserId());
|
|
@@ -425,7 +486,35 @@ public class ChuanyunProjectScheduledTask {
|
|
chuanyunSelfCostDao.delete(oldSelfDO);
|
|
chuanyunSelfCostDao.delete(oldSelfDO);
|
|
}
|
|
}
|
|
chuanyunSelfCostDao.save(chuanyunSelfCostDO);
|
|
chuanyunSelfCostDao.save(chuanyunSelfCostDO);
|
|
- log.info("人力成本计算");
|
|
|
|
|
|
+ //更新氚云数据
|
|
|
|
+ chuanyunMemberMonthCostDO.setProjectId(projectMonth.getProjectId());
|
|
|
|
+ chuanyunMemberMonthCostDO.setUserId(projectMonth.getUserId());
|
|
|
|
+ chuanyunMemberMonthCostDO.setDayLogDate(dt);
|
|
|
|
+ chuanyunMemberMonthCostDO.setWorkHour(monthHour.getStandardWorkHour());
|
|
|
|
+ try {
|
|
|
|
+ List<String> macthers = new ArrayList<>();
|
|
|
|
+ macthers.add("F0000003_2,"+projectMonth.getProjectId());
|
|
|
|
+ macthers.add("F0000002_2,"+projectMonth.getUserId());
|
|
|
|
+ macthers.add("F0000004_2,"+dt);
|
|
|
|
+ var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunMemberMonthCostDO.SCHEMA_CODE,filter);
|
|
|
|
+ var membermonthString=objectMapper.writeValueAsString(chuanyunMemberMonthCostDO);
|
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
|
+ if (chuanyunFindAllResponse.getReturnData()!=null){
|
|
|
|
+ List<ChuanyunMemberMonthCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
|
+ ChuanyunMemberMonthCostDO chuanyunMemberMonthCostDO1 = result.get(0);
|
|
|
|
+ chuanyunSaveDTO =chuanYunManager.update(ChuanyunMemberMonthCostDO.SCHEMA_CODE,chuanyunMemberMonthCostDO1.getObjectId(),membermonthString);
|
|
|
|
+ }else {
|
|
|
|
+ chuanyunSaveDTO =chuanYunManager.save(ChuanyunMemberMonthCostDO.SCHEMA_CODE,membermonthString,true);
|
|
|
|
+ }
|
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
|
+ log.info("新增项目成员月度成本汇总成功");
|
|
|
|
+ }else{
|
|
|
|
+ log.warn("新增项目成员月度成本汇总失败");
|
|
|
|
+ }
|
|
|
|
+ } catch (JsonProcessingException | BigSizeException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|