|
@@ -63,7 +63,6 @@ public class WorkHourStatisticsRecently {
|
|
|
standardWorkHour();
|
|
|
standardWeeklyWorkHour();
|
|
|
standardMonthlyWorkHour();
|
|
|
- projectHour();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -267,9 +266,10 @@ public class WorkHourStatisticsRecently {
|
|
|
chuanyunSelfWorkHourDTO.setDepartmentId(chuanyunUserCompanyDO.getDepartmentId());
|
|
|
}
|
|
|
chuanyunSelfWorkHourDTO.setDepartmentName(chuanyunSelfWorkHourDO.getDepartmentName());
|
|
|
- if (!StringUtils.isEmpty(chuanyunSelfWorkHourDO.getProjectId())&&!chuanyunSelfWorkHourDO.getProjectId().equals("production_project")){
|
|
|
List<String> matchers = new ArrayList<>();
|
|
|
- matchers.add("F0000001_2,"+chuanyunSelfWorkHourDO.getProjectId());
|
|
|
+ if (!StringUtils.isEmpty(chuanyunSelfWorkHourDO.getProjectId())&&!chuanyunSelfWorkHourDO.getProjectId().equals(ChuanYunConstant.PRODUCTION_PROJECT_ID)){
|
|
|
+ matchers.add("F0000001_2,"+chuanyunSelfWorkHourDO.getProjectId());
|
|
|
+ }
|
|
|
matchers.add("F0000002_2,"+chuanyunSelfWorkHourDO.getUserId());
|
|
|
matchers.add("F0000003_2,"+chuanyunSelfWorkHourDO.getDayLogDate());
|
|
|
matchers.add("F0000005_2,"+chuanyunSelfWorkHourDO.getProjectType());
|
|
@@ -288,7 +288,7 @@ public class WorkHourStatisticsRecently {
|
|
|
if(!chuanyunSaveDTO.getSuccessful()){
|
|
|
log.warn("新增工时标准化失败");
|
|
|
}
|
|
|
- }
|
|
|
+
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
log.warn("更新标准工时异常");
|
|
@@ -505,64 +505,7 @@ public class WorkHourStatisticsRecently {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private void projectHour() {
|
|
|
- List<ChuanyunProjectCostDO> list1 = chuanyunProjectCostDao.getProjectCost();
|
|
|
- log.info("开始更新项目汇总工时");
|
|
|
- list1.forEach(chuanyunProjectCostDO -> {
|
|
|
- //更新数据库
|
|
|
- BigDecimal standard = new BigDecimal(8);
|
|
|
- if (chuanyunProjectCostDO.getTotalHour()!=null){
|
|
|
- chuanyunProjectCostDO.setPersonDays(chuanyunProjectCostDO.getTotalHour().divide(standard,2,RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- ChuanyunProjectCostDO oldProjectDO = chuanyunProjectCostDao.findByProjectIdAndProjectTypeAndStatus(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType(),chuanyunProjectCostDO.getStatus());
|
|
|
- if (oldProjectDO !=null) {
|
|
|
- chuanyunProjectCostDao.delete(oldProjectDO);
|
|
|
- }
|
|
|
- chuanyunProjectCostDao.save(chuanyunProjectCostDO);
|
|
|
- //搜索是否有审批中的数据
|
|
|
- ChuanyunProjectCostDO processDO = chuanyunProjectCostDao.getProcessProjectCost(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType());
|
|
|
- if (processDO==null){
|
|
|
- chuanyunProjectCostDao.deleteByProjectIdAndProjectTypeAndStatus(chuanyunProjectCostDO.getProjectId(),chuanyunProjectCostDO.getProjectType(),"2");
|
|
|
- deleteExamineStatus(ChuanyunProjectTotalCostDO.SCHEMA_CODE,"F0000006","F0000001",chuanyunProjectCostDO.getProjectId(),"","","","","","","","","F0000004",chuanyunProjectCostDO.getProjectType());
|
|
|
- }
|
|
|
-
|
|
|
- try {
|
|
|
- ChuanyunProjectScheduledTask.ProjectTotalCostDTO chuanyunProjectTotalCostDTO = new ChuanyunProjectScheduledTask.ProjectTotalCostDTO();
|
|
|
- chuanyunProjectTotalCostDTO.setProjectType(chuanyunProjectCostDO.getProjectType());
|
|
|
- chuanyunProjectTotalCostDTO.setProjectId(chuanyunProjectCostDO.getProjectId());
|
|
|
- chuanyunProjectTotalCostDTO.setStatus(chuanyunProjectCostDO.getStatus());
|
|
|
- chuanyunProjectTotalCostDTO.setWorkHour(chuanyunProjectCostDO.getTotalHour());
|
|
|
- chuanyunProjectTotalCostDTO.setPersonDays(chuanyunProjectCostDO.getPersonDays());
|
|
|
- chuanyunProjectTotalCostDTO.setProjectCode(chuanyunGroupProjectDao.getOne(chuanyunProjectCostDO.getProjectId()).getProjectCode());
|
|
|
- if (!StringUtils.isEmpty(chuanyunProjectCostDO.getProjectId()) && !StringUtils.isEmpty(chuanyunProjectCostDO.getProjectType())){
|
|
|
- List<String> matchers = new ArrayList<>();
|
|
|
- matchers.add("F0000001_2,"+chuanyunProjectCostDO.getProjectId());
|
|
|
- matchers.add("F0000004_2,"+chuanyunProjectCostDO.getProjectType());
|
|
|
- matchers.add("F0000006_2,"+chuanyunProjectCostDO.getStatus());
|
|
|
- var filter= Filter.instance(0,1,true,"And",matchers);
|
|
|
- var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectTotalCostDO.SCHEMA_CODE,filter);
|
|
|
- var projectTotalString=objectMapper.writeValueAsString(chuanyunProjectTotalCostDTO);
|
|
|
- ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
- if (chuanyunFindAllResponse.getReturnData()!=null) {
|
|
|
- List<ChuanyunProjectTotalCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
- ChuanyunProjectTotalCostDO firstResult = result.get(0);
|
|
|
- chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectTotalCostDO.SCHEMA_CODE,firstResult.getObjectId(),projectTotalString);
|
|
|
- }else {
|
|
|
- chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectTotalCostDO.SCHEMA_CODE,projectTotalString,true);
|
|
|
|
|
|
- }
|
|
|
- if(!chuanyunSaveDTO.getSuccessful()){
|
|
|
- log.warn("新增项目成本汇总失败");
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (JsonProcessingException | BigSizeException e) {
|
|
|
- log.error(e.getMessage());
|
|
|
- log.error(""+chuanyunProjectCostDO);
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- });
|
|
|
- log.info("项目工时汇总更新完成"+list1.size());
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* 人员-项目-月度工时汇总,更新氚云数据
|