fix 80807 未符合项跟踪流程-设计工程师超期未上传整改材料,没有发消息
This commit is contained in:
+1
@@ -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;
|
||||
|
||||
+85
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+12
-5
@@ -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());
|
||||
|
||||
+1
@@ -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"; // 【未符合项跟踪流程】超期预警
|
||||
|
||||
}
|
||||
|
||||
+4
-1
@@ -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;
|
||||
|
||||
/**
|
||||
* 依据描述
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user