fix 80807 未符合项跟踪流程-设计工程师超期未上传整改材料,没有发消息

This commit is contained in:
lijiarao
2024-02-01 19:55:03 +08:00
parent a22fbfb1ad
commit 4947083454
5 changed files with 103 additions and 6 deletions
@@ -20,6 +20,7 @@ import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.activiti.util.SpringContextUtil;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener;
@@ -0,0 +1,85 @@
package com.jero.modules.activiti.process.projectnotmet.job;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.dto.message.SendMessageDTO;
import com.jero.common.api.vo.SendMessageAPI;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.process.projectnotmet.entity.ProcessProjectNotMet;
import com.jero.modules.activiti.process.projectnotmet.service.ProcessProjectNotMetService;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.projectLibrary.entity.LawsEvaluationNotMet;
import com.jero.modules.projectLibrary.service.ILawsEvaluationNotMetService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author liJiaRao
* @date 2024-02-01 18:40
*/
public class NotMetWarningJob implements Job {
@Resource
private SendMessageAPI sendMessageAPI;
@Resource
private ILawsEvaluationNotMetService lawsEvaluationNotMetService;
@Resource
private ProcessAllService processAllService;
@Resource
private ProcessProjectNotMetService processProjectNotMetService;
@Resource
private ProcessApprovalRecordService processApprovalRecordService;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
DateTime date = DateUtil.parseDateTime(DateUtil.formatDateTime(new Date()));
date = date
.setField(DateField.HOUR_OF_DAY,0)
.setField(DateField.MINUTE,0)
.setField(DateField.SECOND,0);
//预计整改完成日期前一天
DateTime theDayBefore = DateUtil.offsetDay(date, -1);
LambdaQueryWrapper<LawsEvaluationNotMet> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(LawsEvaluationNotMet::getExpectedTime,theDayBefore);
wrapper.eq(LawsEvaluationNotMet::getState,AssessCommon.RECTIFICATION);
List<LawsEvaluationNotMet> notMetList = lawsEvaluationNotMetService.list(wrapper);
for (LawsEvaluationNotMet notMet : notMetList) {
String processInstanceId = notMet.getProcessInstanceId();
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
if (processAll == null){
continue;
}
String projectId = processAll.getProjectId();
ProcessProjectNotMet processProjectNotMet = processProjectNotMetService.getById(projectId);
List<String> userIdList = new ArrayList<>();
userIdList.add(processProjectNotMet.getManagerLeaderId());
LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
wrapper1.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue());
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getOne(wrapper1);
userIdList.add(approvalRecord.getUserId());
//发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.NOT_MET_WARNING);
String userIds = userIdList.stream().distinct().collect(Collectors.joining(","));
sendMessageDTO.setToUserId(userIds);
Map<String, String> sendMap = new HashMap<>();
sendMap.put("prcName", processAll.getPrcName());
sendMap.put("prcNum", processAll.getPrcNum());
sendMessageDTO.setMap(sendMap);
sendMessageAPI.sendMessage(sendMessageDTO);
}
}
}
@@ -129,12 +129,15 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
}
public void startProcess(ProcessInfoVO<ProcessProjectNotMetVO> processInfoVO) {
//保存标准分发的设计工程师
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
ProcessProjectNotMetVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
ProcessProjectNotMet processProjectNotMet = businessInfoDTO.getProcessProjectNotMet();
if (processProjectNotMet == null){
processProjectNotMet = new ProcessProjectNotMet();
}
String managerLeader = (String) userInfoMap.get(ProcessProjectNotMetCommon.MANAGER_LEADER);
processProjectNotMet.setManagerLeaderId(managerLeader);
this.save(processProjectNotMet);
String processProjectNotMetId = processProjectNotMet.getId();
processInfoVO.setBusinessId(processProjectNotMetId);
@@ -153,8 +156,7 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
String standardNumber = processProjectNotMetLink.getStandardNumber();
String standardName = processProjectNotMetLink.getStandardName();
//保存标准分发的设计工程师
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
//启动流程
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
//改为手动流程名称
@@ -163,7 +165,6 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.PROJECT_NOT_MET.getValue()); // 流程类型
userInfoMap.put(ProcessProjectNotMetCommon.STANDARDS_ENGINEER, CurrentUserUtil.getId());
userInfoMap.put(ProcessProjectNotMetCommon.DESIGN_ENGINEER, processProjectNotMetLink.getEngineerId());
//userInfoMap.put(ProcessProjectNotMetCommon.MANAGER_LEADER, distinctAllResponsibleUnitLeaderListJoin);
//processInfoVO.setUserInfoMap(userInfoMap);
processHandleService.startProcess(processInfoVO);
//更新未符合项列表状态
@@ -172,6 +173,7 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
LambdaUpdateWrapper<LawsEvaluationNotMet> wrapper = new LambdaUpdateWrapper<>();
wrapper.set(LawsEvaluationNotMet::getState, RECTIFICATION);
wrapper.set(LawsEvaluationNotMet::getPrcNum, processAll.getPrcNum());
wrapper.set(LawsEvaluationNotMet::getProcessInstanceId, processAll.getProcessInstanceId());
wrapper.in(LawsEvaluationNotMet::getId,projectNotMetIdList);
lawsEvaluationNotMetService.update(wrapper);
//start 先保存一份初始草稿
@@ -210,10 +212,10 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
String originUserId = processApprovalRecord.getOriginUserId();
String userId = CurrentUserUtil.getId();
String businessId = processInfoVO.getBusinessId();
// 完成任务
Map<String, Object> variables = new HashMap<>();
if (!pass){
String businessId = processInfoVO.getBusinessId();
LambdaQueryWrapper<ProcessProjectNotMetLink> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessProjectNotMetLink::getProcessId,businessId);
wrapper.last("limit 1");
@@ -238,6 +240,10 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
List<String> userIdList = new ArrayList<>();
userIdList.add(userId);
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectNotMetCommon.ZGJLDSP, userIdList);
LambdaUpdateWrapper<ProcessProjectNotMet> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessProjectNotMet::getId,businessId);
updateWrapper.set(ProcessProjectNotMet::getManagerLeaderId,userId);
update(updateWrapper);
}
}
@@ -271,6 +277,7 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
for (ProcessProjectNotMetLink processProjectNotMetLink : processProjectNotMetLinks) {
LambdaUpdateWrapper<LawsEvaluationNotMet> wrapper1 = new LambdaUpdateWrapper<>();
wrapper1.set(LawsEvaluationNotMet::getPrcNum, processAll.getPrcNum());
wrapper1.set(LawsEvaluationNotMet::getProcessInstanceId, processAll.getProcessInstanceId());
wrapper1.set(LawsEvaluationNotMet::getFileId, processProjectNotMetLink.getFileId());
wrapper1.set(LawsEvaluationNotMet::getDescription, processProjectNotMetLink.getDescription());
wrapper1.in(LawsEvaluationNotMet::getId,processProjectNotMetLink.getProjectNotMetId());
@@ -29,5 +29,6 @@ public class MessageTemplateCodeCommon {
public static final String ES_REVISION_ADVICE = "es_revision_advice"; // 【企标修订】征求意见
public static final String ES_ANNUAL_REPORT_CONTACT_USER = "es_annual_report_contact_user"; // 【企标年度制修订-各部门主动上报】部门联络人下发
public static final String FB_STANDARD_PURCHASE = "fb_standard_purchase"; // 【法规采购】流程结束
public static final String NOT_MET_WARNING = "not_met_warning"; // 【未符合项跟踪流程】超期预警
}
@@ -136,10 +136,13 @@ public class LawsEvaluationNotMet implements Serializable {
private String orgCode;
/**所属流程*/
@Dict(dictTable = "process_all", dicText = "process_instance_id", dicCode = "prc_num")
@ApiModelProperty(value = "所属流程")
private String prcNum;
/**流程实例id*/
@ApiModelProperty(value = "流程实例id")
private String processInstanceId;
/**
* 依据描述
*/