|
|
@ -954,58 +954,60 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit |
|
|
|
} |
|
|
|
//获取工作人员未处理的节点
|
|
|
|
List<StaffUnHandledDTO> unHandledList = projectStaffService.getStaffUnHandledList(customerId); |
|
|
|
List<CostDayFormDTO> form = unHandledList.stream().map(item -> { |
|
|
|
CostDayFormDTO dto = new CostDayFormDTO(); |
|
|
|
dto.setId(item.getId()); |
|
|
|
dto.setStaffId(item.getStaffId()); |
|
|
|
if (null != item.getUpdatedTime()) { |
|
|
|
dto.setStartDate(item.getUpdatedTime()); |
|
|
|
if (CollectionUtils.isNotEmpty(unHandledList)) { |
|
|
|
List<CostDayFormDTO> form = unHandledList.stream().map(item -> { |
|
|
|
CostDayFormDTO dto = new CostDayFormDTO(); |
|
|
|
dto.setId(item.getId()); |
|
|
|
dto.setStaffId(item.getStaffId()); |
|
|
|
if (null != item.getUpdatedTime()) { |
|
|
|
dto.setStartDate(item.getUpdatedTime()); |
|
|
|
} else { |
|
|
|
dto.setStartDate(item.getCreatedTime()); |
|
|
|
} |
|
|
|
dto.setEndDate(new Date()); |
|
|
|
return dto; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
List<CostDayResultDTO> costDayList; |
|
|
|
if (ParameterKeyConstant.WORK.equals(calculation)) { |
|
|
|
//工作日计算
|
|
|
|
Result<List<CostDayResultDTO>> result = epmetCommonServiceOpenFeignClient.costWorkDays(form); |
|
|
|
if (!result.success()) { |
|
|
|
throw new RenException(result.getCode(), result.getMsg()); |
|
|
|
} |
|
|
|
costDayList = result.getData(); |
|
|
|
} else { |
|
|
|
dto.setStartDate(item.getCreatedTime()); |
|
|
|
} |
|
|
|
dto.setEndDate(new Date()); |
|
|
|
return dto; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
List<CostDayResultDTO> costDayList; |
|
|
|
if (ParameterKeyConstant.WORK.equals(calculation)) { |
|
|
|
//工作日计算
|
|
|
|
Result<List<CostDayResultDTO>> result = epmetCommonServiceOpenFeignClient.costWorkDays(form); |
|
|
|
if (!result.success()) { |
|
|
|
throw new RenException(result.getCode(), result.getMsg()); |
|
|
|
//日历日计算
|
|
|
|
Result<List<CostDayResultDTO>> result = epmetCommonServiceOpenFeignClient.costCalendarDays(form); |
|
|
|
if (!result.success()) { |
|
|
|
throw new RenException(result.getCode(), result.getMsg()); |
|
|
|
} |
|
|
|
costDayList = result.getData(); |
|
|
|
} |
|
|
|
costDayList = result.getData(); |
|
|
|
} else { |
|
|
|
//日历日计算
|
|
|
|
Result<List<CostDayResultDTO>> result = epmetCommonServiceOpenFeignClient.costCalendarDays(form); |
|
|
|
if (!result.success()) { |
|
|
|
throw new RenException(result.getCode(), result.getMsg()); |
|
|
|
//即将超期项目
|
|
|
|
List<StaffUnHandledDTO> overdueList = new ArrayList<>(); |
|
|
|
//滞留项目
|
|
|
|
List<StaffUnHandledDTO> delayList = new ArrayList<>(); |
|
|
|
List<CostDayResultDTO> finalCostDayList = costDayList; |
|
|
|
List<OverdueAndDelayDTO> list = new ArrayList<>(); |
|
|
|
int finalDetentionDays = detentionDays; |
|
|
|
int finalRemindTime = remindTime; |
|
|
|
unHandledList.forEach(unHandle -> finalCostDayList.stream().filter(cost -> |
|
|
|
unHandle.getId().equals(cost.getId())).forEach(item -> { |
|
|
|
int diff = finalDetentionDays - item.getDetentionDays(); |
|
|
|
OverdueAndDelayDTO dto = new OverdueAndDelayDTO(); |
|
|
|
if (diff < 0) { |
|
|
|
dto.setStaffId(unHandle.getStaffId()); |
|
|
|
list.add(dto); |
|
|
|
delayList.add(unHandle); |
|
|
|
} else if (diff <= finalRemindTime) { |
|
|
|
dto.setStaffId(unHandle.getStaffId()); |
|
|
|
overdueList.add(unHandle); |
|
|
|
list.add(dto); |
|
|
|
} |
|
|
|
})); |
|
|
|
if (CollectionUtils.isNotEmpty(list)) { |
|
|
|
setMessage(customerId, overdueList, delayList, list); |
|
|
|
} |
|
|
|
costDayList = result.getData(); |
|
|
|
} |
|
|
|
//即将超期项目
|
|
|
|
List<StaffUnHandledDTO> overdueList = new ArrayList<>(); |
|
|
|
//滞留项目
|
|
|
|
List<StaffUnHandledDTO> delayList = new ArrayList<>(); |
|
|
|
List<CostDayResultDTO> finalCostDayList = costDayList; |
|
|
|
List<OverdueAndDelayDTO> list = new ArrayList<>(); |
|
|
|
int finalDetentionDays = detentionDays; |
|
|
|
int finalRemindTime = remindTime; |
|
|
|
unHandledList.forEach(unHandle -> finalCostDayList.stream().filter(cost -> |
|
|
|
unHandle.getId().equals(cost.getId())).forEach(item -> { |
|
|
|
int diff = finalDetentionDays - item.getDetentionDays(); |
|
|
|
OverdueAndDelayDTO dto = new OverdueAndDelayDTO(); |
|
|
|
if (diff < 0) { |
|
|
|
dto.setStaffId(unHandle.getStaffId()); |
|
|
|
list.add(dto); |
|
|
|
delayList.add(unHandle); |
|
|
|
} else if (diff <= finalRemindTime) { |
|
|
|
dto.setStaffId(unHandle.getStaffId()); |
|
|
|
overdueList.add(unHandle); |
|
|
|
list.add(dto); |
|
|
|
} |
|
|
|
})); |
|
|
|
if (CollectionUtils.isNotEmpty(list)) { |
|
|
|
setMessage(customerId, overdueList, delayList, list); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|