禅道68405 问题修改。

This commit is contained in:
wangzhijiang
2023-04-18 17:55:22 +08:00
parent dcf6125adb
commit b41b2e356e
@@ -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