禅道68405 问题修改。
This commit is contained in:
+172
-5
@@ -211,20 +211,20 @@ public class CertificationInventoryJob implements Job {
|
|||||||
* @param projectLibraryBase
|
* @param projectLibraryBase
|
||||||
*/
|
*/
|
||||||
private void remindDutyPerson(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOS,ProjectLibraryBase 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 = (
|
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())
|
|| StringUtils.equals(data.getFlowStatus(), CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue())
|
||||||
);
|
);
|
||||||
return flag;
|
return flag;
|
||||||
}).collect(Collectors.groupingBy(ProjectCertificationInventoryEO::getDutyPerson));
|
}).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<String> dutyPersonIdList = projectCertificationInventoryEOS.stream().map(ProjectCertificationInventoryEO::getDutyPerson).distinct().collect(Collectors.toList());
|
||||||
List<SysUser> dutyPersonList = this.sysUserService.querySysUserListByIdList(dutyPersonIdList);
|
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();
|
String dutyPersonUserId = dataByDutyPersonMap.getKey();
|
||||||
List<ProjectCertificationInventoryEO> dutyPersonDataList = dataByDutyPersonMap.getValue();
|
List<ProjectCertificationInventoryEO> dutyPersonDataList = dataByDutyPersonMap.getValue();
|
||||||
if(CollectionUtils.isEmpty(dutyPersonDataList)){
|
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;
|
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
|
* @param projectLibraryBase
|
||||||
|
|||||||
Reference in New Issue
Block a user