禅道68405 问题修改。
This commit is contained in:
+172
-5
@@ -211,20 +211,20 @@ public class CertificationInventoryJob implements Job {
|
||||
* @param projectLibraryBase
|
||||
*/
|
||||
private void remindDutyPerson(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOS,ProjectLibraryBase projectLibraryBase) {
|
||||
Map<String, List<ProjectCertificationInventoryEO>> certifycationInventoryListByDutyPersonMap = projectCertificationInventoryEOS.stream().filter(data -> {
|
||||
// 结果待提交 、审查退回
|
||||
Map<String, List<ProjectCertificationInventoryEO>> toBeSubmittedCiEoListByDutyPersonMap = projectCertificationInventoryEOS.stream().filter(data -> {
|
||||
boolean flag = (
|
||||
StringUtils.equals(data.getFlowStatus(), CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue())
|
||||
|| StringUtils.equals(data.getFlowStatus(), CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|
||||
StringUtils.equals(data.getFlowStatus(), CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue())
|
||||
|| StringUtils.equals(data.getFlowStatus(), CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue())
|
||||
);
|
||||
return flag;
|
||||
}).collect(Collectors.groupingBy(ProjectCertificationInventoryEO::getDutyPerson));
|
||||
|
||||
if(ObjectUtils.isNotEmpty(certifycationInventoryListByDutyPersonMap)){
|
||||
if(ObjectUtils.isNotEmpty(toBeSubmittedCiEoListByDutyPersonMap)){
|
||||
List<String> dutyPersonIdList = projectCertificationInventoryEOS.stream().map(ProjectCertificationInventoryEO::getDutyPerson).distinct().collect(Collectors.toList());
|
||||
List<SysUser> dutyPersonList = this.sysUserService.querySysUserListByIdList(dutyPersonIdList);
|
||||
|
||||
for (Map.Entry<String, List<ProjectCertificationInventoryEO>> dataByDutyPersonMap : certifycationInventoryListByDutyPersonMap.entrySet()) {
|
||||
for (Map.Entry<String, List<ProjectCertificationInventoryEO>> dataByDutyPersonMap : toBeSubmittedCiEoListByDutyPersonMap.entrySet()) {
|
||||
String dutyPersonUserId = dataByDutyPersonMap.getKey();
|
||||
List<ProjectCertificationInventoryEO> dutyPersonDataList = dataByDutyPersonMap.getValue();
|
||||
if(CollectionUtils.isEmpty(dutyPersonDataList)){
|
||||
@@ -296,6 +296,78 @@ public class CertificationInventoryJob implements Job {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 任务待确认
|
||||
Map<String, List<ProjectCertificationInventoryEO>> toBeConfirmedCiEoListByDutyPersonMap = projectCertificationInventoryEOS.stream().filter(data -> {
|
||||
boolean flag = (StringUtils.equals(data.getFlowStatus(), CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()));
|
||||
return flag;
|
||||
}).collect(Collectors.groupingBy(ProjectCertificationInventoryEO::getDutyPerson));
|
||||
|
||||
if(ObjectUtils.isNotEmpty(toBeConfirmedCiEoListByDutyPersonMap)){
|
||||
List<String> dutyPersonIdList = projectCertificationInventoryEOS.stream().map(ProjectCertificationInventoryEO::getDutyPerson).distinct().collect(Collectors.toList());
|
||||
List<SysUser> dutyPersonList = this.sysUserService.querySysUserListByIdList(dutyPersonIdList);
|
||||
|
||||
for (Map.Entry<String, List<ProjectCertificationInventoryEO>> dataByDutyPersonMap : toBeConfirmedCiEoListByDutyPersonMap.entrySet()) {
|
||||
String dutyPersonUserId = dataByDutyPersonMap.getKey();
|
||||
List<ProjectCertificationInventoryEO> dutyPersonDataList = dataByDutyPersonMap.getValue();
|
||||
if(CollectionUtils.isEmpty(dutyPersonDataList)){
|
||||
continue;
|
||||
}
|
||||
|
||||
Map<String, Object> sendMsgDataListMap = this.disposeSendMsgDataListByTaskConfirmEndTime(dutyPersonDataList);
|
||||
|
||||
// 十四天后结束的
|
||||
List<ProjectCertificationInventoryEO> fourteenDaysList = (List<ProjectCertificationInventoryEO>) sendMsgDataListMap.get("fourteenDaysList");
|
||||
if(CollectionUtils.isNotEmpty(fourteenDaysList)){
|
||||
this.sendLarkCardMsgByTemplate(
|
||||
projectLibraryBase,
|
||||
dutyPersonList,
|
||||
dutyPersonUserId,
|
||||
fourteenDaysList,
|
||||
TemplateInfoEnum2.CERTIFICATION_MESSAGE19.getValue(),
|
||||
fourteenDaysList.get(0).getTaskConfirmEndTime()
|
||||
);
|
||||
}
|
||||
|
||||
// 七天后结束的
|
||||
List<ProjectCertificationInventoryEO> sevenDaysList = (List<ProjectCertificationInventoryEO>) sendMsgDataListMap.get("sevenDaysList");
|
||||
if(CollectionUtils.isNotEmpty(sevenDaysList)){
|
||||
this.sendLarkCardMsgByTemplate(
|
||||
projectLibraryBase,
|
||||
dutyPersonList,
|
||||
dutyPersonUserId,
|
||||
sevenDaysList,
|
||||
TemplateInfoEnum2.CERTIFICATION_MESSAGE20.getValue(),
|
||||
sevenDaysList.get(0).getTaskConfirmEndTime()
|
||||
);
|
||||
}
|
||||
|
||||
// 当天结束的
|
||||
List<ProjectCertificationInventoryEO> currentDaysList = (List<ProjectCertificationInventoryEO>) sendMsgDataListMap.get("currentDaysList");
|
||||
if(CollectionUtils.isNotEmpty(currentDaysList)){
|
||||
this.sendLarkCardMsgByTemplate(
|
||||
projectLibraryBase,
|
||||
dutyPersonList,
|
||||
dutyPersonUserId,
|
||||
currentDaysList,
|
||||
TemplateInfoEnum2.CERTIFICATION_MESSAGE21.getValue(),
|
||||
currentDaysList.get(0).getTaskConfirmEndTime()
|
||||
);
|
||||
}
|
||||
// 逾期的
|
||||
List<ProjectCertificationInventoryEO> overdueList = (List<ProjectCertificationInventoryEO>) sendMsgDataListMap.get("overdueList");
|
||||
if(CollectionUtils.isNotEmpty(overdueList)){
|
||||
this.sendLarkCardMsgByTemplate(
|
||||
projectLibraryBase,
|
||||
dutyPersonList,
|
||||
dutyPersonUserId,
|
||||
overdueList,
|
||||
TemplateInfoEnum2.CERTIFICATION_MESSAGE22.getValue(),
|
||||
overdueList.get(0).getTaskConfirmEndTime()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -509,6 +581,101 @@ public class CertificationInventoryJob implements Job {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理需要发送消息的数据
|
||||
* @param pciEoList
|
||||
* @return
|
||||
*/
|
||||
private Map<String,Object> disposeSendMsgDataListByTaskConfirmEndTime(List<ProjectCertificationInventoryEO> pciEoList) {
|
||||
Map<String,Object> result = new HashMap<>();
|
||||
Date currentDate = new Date();
|
||||
|
||||
//获取后三天前的时间
|
||||
Calendar calendar=new GregorianCalendar();
|
||||
calendar.setTime(new Date());
|
||||
calendar.add(Calendar.DATE,3);
|
||||
Date threeDays = calendar.getTime();
|
||||
|
||||
//获取后七天后的时间
|
||||
Calendar sevenCalendar=new GregorianCalendar();
|
||||
sevenCalendar.setTime(new Date());
|
||||
sevenCalendar.add(Calendar.DATE,7);
|
||||
Date sevenDays = sevenCalendar.getTime();
|
||||
|
||||
//获取后十四天后的时间
|
||||
Calendar fourteenCalendar=new GregorianCalendar();
|
||||
fourteenCalendar.setTime(new Date());
|
||||
fourteenCalendar.add(Calendar.DATE,14);
|
||||
Date fourteenDays = fourteenCalendar.getTime();
|
||||
|
||||
String threeDaysStr = sdf.format(threeDays);
|
||||
String sevenDaysStr = sdf.format(sevenDays);
|
||||
String fourteenDaysStr = sdf.format(fourteenDays);
|
||||
String currentDateStr = sdf.format(currentDate);
|
||||
|
||||
// 当天结束的
|
||||
List<ProjectCertificationInventoryEO> currentDaysList = pciEoList.stream().filter(data -> {
|
||||
boolean flag = false;
|
||||
//结束日期是当前日期
|
||||
if(data.getTaskConfirmEndTime() != null){
|
||||
if (StringUtils.equals(currentDateStr, sdf.format(data.getTaskConfirmEndTime()))) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
// 三天后结束的
|
||||
List<ProjectCertificationInventoryEO> threeDaysList = pciEoList.stream().filter(data -> {
|
||||
boolean flag = false;
|
||||
if(data.getTaskConfirmEndTime() != null){
|
||||
if (StringUtils.equals(threeDaysStr, sdf.format(data.getTaskConfirmEndTime()))) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
// 七天后结束的
|
||||
List<ProjectCertificationInventoryEO> sevenDaysList = pciEoList.stream().filter(data -> {
|
||||
boolean flag = false;
|
||||
if(data.getTaskConfirmEndTime()!=null){
|
||||
if (StringUtils.equals(sevenDaysStr, sdf.format(data.getTaskConfirmEndTime()))) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
// 十四天后结束的
|
||||
List<ProjectCertificationInventoryEO> fourteenDaysList = pciEoList.stream().filter(data -> {
|
||||
boolean flag = false;
|
||||
if(data.getTaskConfirmEndTime() != null){
|
||||
if (StringUtils.equals(fourteenDaysStr, sdf.format(data.getTaskConfirmEndTime()))) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
// 逾期的
|
||||
List<ProjectCertificationInventoryEO> overdueList = pciEoList.stream().filter(data -> {
|
||||
// 只要早于当前日期都算逾期
|
||||
boolean flag = false;
|
||||
if(data.getTaskConfirmEndTime() != null){
|
||||
flag = (data.getTaskConfirmEndTime().before(currentDate) && !StringUtils.equals(currentDateStr, sdf.format(data.getTaskConfirmEndTime())));
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
result.put("currentDaysList",currentDaysList);
|
||||
result.put("threeDaysList",threeDaysList);
|
||||
result.put("overdueList",overdueList);
|
||||
result.put("sevenDaysList",sevenDaysList);
|
||||
result.put("fourteenDaysList",fourteenDaysList);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据模板 发送飞书消息
|
||||
* @param projectLibraryBase
|
||||
|
||||
Reference in New Issue
Block a user