feat: 立项变更流程发消息

This commit is contained in:
2024-01-29 09:04:30 +08:00
parent c23a703f3d
commit d31e354cdd
4 changed files with 167 additions and 2 deletions
@@ -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<ProcessEsInitChange> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId);
List<ProcessEsInitChange> 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<String, String> sendMap = new HashMap<>();
sendMap.put("standardNumber", esInitChange.getOriginEnStandardNo());
sendMap.put("prcName", prcName);
sendMessageDTO.setMap(sendMap);
return sendMessageDTO;
}
}
@@ -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<ProcessEsInitChange> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId);
List<ProcessEsInitChange> esInitChanges = initChangeService.list(wrapper);
if (esInitChanges.isEmpty()) {
return;
}
ProcessEsInitChange esInitChange = esInitChanges.get(0);
// 获取流程变量
List<String> relatedUserList = (List<String>) 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<String, String> sendMap = new HashMap<>();
sendMap.put("standardNumber", esInitChange.getOriginEnStandardNo());
sendMap.put("prcName", prcName);
sendMessageDTO.setMap(sendMap);
return sendMessageDTO;
}
}
@@ -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
@@ -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"; // 【企标立项变更】抄送主起草人
}