diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/InitChangeMainDraftUserCopyStartListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/InitChangeMainDraftUserCopyStartListener.java new file mode 100644 index 00000000..c5e3662d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/InitChangeMainDraftUserCopyStartListener.java @@ -0,0 +1,82 @@ +package com.jero.modules.activiti.process.esInitChange.listener; + +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.process.esInitChange.entity.ProcessEsInitChange; +import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType; +import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author: Mzaxd + * @Date: 2024/1/26 15:58 + */ +@Slf4j +@Component("InitChangeMainDraftUserCopyStartListener") +public class InitChangeMainDraftUserCopyStartListener implements TaskListener { + + @Resource + private SendMessageAPI sendMessageAPI; + + @Resource + private ProcessEsInitChangeService initChangeService; + + @Resource + private ProcessAllService processAllService; + + /** + * 责任部门变更,抄送主起草人节点开始监听器 + * + * @param delegateExecution + */ + @Override + public void notify(DelegateTask delegateTask) { + log.info("抄送主起草人节点开始监听器开始执行"); + // 判断当前变更流程是否是责任部门变更流程 + String processInstanceId = delegateTask.getProcessInstanceId(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId); + List esInitChanges = initChangeService.list(wrapper); + if (esInitChanges.isEmpty()) { + log.error("抄送主起草人节点开始监听器执行错误,未找到相关流程数据"); + return; + } + ProcessEsInitChange esInitChange = esInitChanges.get(0); + if (esInitChange.getProjectType().equals(ESPProjectType.RESPONSIBLE_DEPT_CHANGE.getValue())) { + // 获取流程变量 + String mainDraftUser = (String) delegateTask.getVariable("createUser"); + // 获取流程名称 + ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); + SendMessageDTO sendMessageDTO = getSendMessageDTO(processAll, mainDraftUser, esInitChange); + sendMessageAPI.sendMessage(sendMessageDTO); + } + log.info("抄送主起草人节点开始监听器执行结束"); + } + + @NotNull + private static SendMessageDTO getSendMessageDTO(ProcessAll processAll, String mainDraftUser, ProcessEsInitChange esInitChange) { + String prcName = processAll.getPrcName(); + // 发送消息 + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.ES_INIT_CHANGE_MAIN_DRAFT_USER_COPY); + sendMessageDTO.setToUserId(mainDraftUser); + Map sendMap = new HashMap<>(); + sendMap.put("standardNumber", esInitChange.getOriginEnStandardNo()); + sendMap.put("prcName", prcName); + sendMessageDTO.setMap(sendMap); + return sendMessageDTO; + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/InitChangeNewMainDraftLeaderEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/InitChangeNewMainDraftLeaderEndListener.java new file mode 100644 index 00000000..f192c288 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/InitChangeNewMainDraftLeaderEndListener.java @@ -0,0 +1,81 @@ +package com.jero.modules.activiti.process.esInitChange.listener; + +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.process.esInitChange.entity.ProcessEsInitChange; +import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.validation.constraints.NotNull; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * @author: Mzaxd + * @Date: 2023/10/10 14:14 + */ +@Slf4j +@Component("InitChangeNewMainDraftLeaderEndListener") +public class InitChangeNewMainDraftLeaderEndListener implements TaskListener { + + @Resource + private SendMessageAPI sendMessageAPI; + + @Resource + private ProcessEsInitChangeService initChangeService; + + @Resource + private ProcessAllService processAllService; + + /** + * 责任部门变更,新起草部门主管级领导确认选择会签人员 + * + * @param delegateExecution + */ + @Override + public void notify(DelegateTask delegateTask) { + log.info("新起草部门主管级领导结束监听器开始执行"); + // 发送消息 + String processInstanceId = delegateTask.getProcessInstanceId(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId); + List esInitChanges = initChangeService.list(wrapper); + if (esInitChanges.isEmpty()) { + return; + } + ProcessEsInitChange esInitChange = esInitChanges.get(0); + // 获取流程变量 + List relatedUserList = (List) delegateTask.getVariable("relatedUserList"); + // 发送消息 + String relatedUsers = String.join(",", relatedUserList); + // 获取流程名称 + ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); + SendMessageDTO sendMessageDTO = getSendMessageDTO(processAll, relatedUsers, esInitChange); + sendMessageAPI.sendMessage(sendMessageDTO); + } + + @NotNull + private static SendMessageDTO getSendMessageDTO(ProcessAll processAll, String relatedUsers, ProcessEsInitChange esInitChange) { + String prcName = processAll.getPrcName(); + // 发送消息 + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.ES_INIT_CHANGE_NEW_MAIN_DRAFT_LEADER_END); + sendMessageDTO.setToUserId(relatedUsers); + Map sendMap = new HashMap<>(); + sendMap.put("standardNumber", esInitChange.getOriginEnStandardNo()); + sendMap.put("prcName", prcName); + sendMessageDTO.setMap(sendMap); + return sendMessageDTO; + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java index 1a9e5697..75f86552 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java @@ -21,9 +21,7 @@ import org.activiti.engine.delegate.ExecutionListener; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author: Mzaxd diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/MessageTemplateCodeCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/MessageTemplateCodeCommon.java index 9d3e7096..e0f81c61 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/MessageTemplateCodeCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/MessageTemplateCodeCommon.java @@ -23,4 +23,8 @@ public class MessageTemplateCodeCommon { public static final String PROJECT_ASSESS_COMPLETE = "project_assess_complete"; // 【项目合规评估完成提醒】 public static final String PROJECT_STANDARD_COMPLETE = "project_standard_complete"; // 【法规合规评估完成提醒】 public static final String URGING = "urging"; // 催办 + public static final String ES_INIT_CHANGE_NEW_MAIN_DRAFT_LEADER_END = "es_init_change_new_main_draft_leader_end"; // 【企标立项变更】新起草部门主管级领导确认选择会签人员 + public static final String ES_INIT_CHANGE_MAIN_DRAFT_USER_COPY = "es_init_change_main_draft_user_copy"; // 【企标立项变更】抄送主起草人 + + }