完善新法规导入流程

This commit is contained in:
梁琦涛
2024-07-11 11:23:00 +08:00
parent 5140d20afb
commit 428a2b0c2d
8 changed files with 59 additions and 16 deletions
@@ -11,7 +11,7 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
public enum ProcessTypeEnum { public enum ProcessTypeEnum {
DEMO("测试流程", 0, "com.jero.modules.activiti.process.demo.service.ProcessDemoService", "/workCenter/StandardEntryOrChangeProcess", "/workCenter/StandardEntryOrChangeProcess"), DEMO("测试流程", 0, "com.jero.modules.activiti.process.demo.service.ProcessDemoService", "/workCenter/StandardEntryOrChangeProcess", "/workCenter/StandardEntryOrChangeProcess"),
NEW_STANDARD_IMPORT("新法规导入流程", 1, "com.jero.modules.activiti.process.ni.service.ProcessNewStandardImportService", "/workCenter/ProcessNewStandardImportProcess", "/workCenter/StandardComplianceCheckProcess"), NEW_STANDARD_IMPORT("新法规导入流程", 1, "com.jero.modules.activiti.process.ni.service.impl.ProcessNewStandardImportServiceImpl", "/workCenter/ProcessNewStandardImportProcess", "/workCenter/StandardComplianceCheckProcess"),
STANDARD_INTERPRET("标准解读流程", 2, "com.jero.modules.activiti.process.standardinterpret.service.impl.StandardInterpretFlow", "", ""), STANDARD_INTERPRET("标准解读流程", 2, "com.jero.modules.activiti.process.standardinterpret.service.impl.StandardInterpretFlow", "", ""),
STANDARD_COMPLIANCE_CHECK("法规符合性排查流程", 3, "com.jero.modules.activiti.process.standardComplianceCheck.service.ProcessStandardComplianceCheckService", "/workCenter/StandardComplianceCheckProcess", "/workCenter/StandardComplianceCheckProcess"), STANDARD_COMPLIANCE_CHECK("法规符合性排查流程", 3, "com.jero.modules.activiti.process.standardComplianceCheck.service.ProcessStandardComplianceCheckService", "/workCenter/StandardComplianceCheckProcess", "/workCenter/StandardComplianceCheckProcess"),
MARKET_STANDARD_PUBLISH("市场清单发布流程", 4, "com.jero.modules.activiti.process.ni.service.ProcessNewStandardImportService", "/workCenter/ProcessNewStandardImportProcess", "/workCenter/StandardComplianceCheckProcess"), MARKET_STANDARD_PUBLISH("市场清单发布流程", 4, "com.jero.modules.activiti.process.ni.service.ProcessNewStandardImportService", "/workCenter/ProcessNewStandardImportProcess", "/workCenter/StandardComplianceCheckProcess"),
@@ -188,7 +188,6 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
* @Description: 转办 * @Description: 转办
**/ **/
@Override @Override
@Transactional(rollbackFor = JeroBootException.class)
public void transfer(String taskId, String toUserId) { public void transfer(String taskId, String toUserId) {
isMyTask(taskId); // 判断是否拥有任务处理权限 isMyTask(taskId); // 判断是否拥有任务处理权限
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getToDoByTaskId(taskId); ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getToDoByTaskId(taskId);
@@ -12,6 +12,7 @@ import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport;
import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService; import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService;
import com.jero.modules.activiti.vo.DelegateTaskParam;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -95,8 +96,8 @@ public class ProcessNewStandardImportController extends JeroController<ProcessNe
@AutoLog(value = "新法规导入流程-转办") @AutoLog(value = "新法规导入流程-转办")
@ApiOperation(value="新法规导入流程-转办", notes="新法规导入流程-转办") @ApiOperation(value="新法规导入流程-转办", notes="新法规导入流程-转办")
@PostMapping(value = "/transfer") @PostMapping(value = "/transfer")
public Result<?> transfer(@RequestBody TransferVO transferVO) { public Result<?> transfer(@RequestBody DelegateTaskParam param) {
processHandleService.transfer(transferVO.getTaskId(), transferVO.getUserId()); processHandleService.transfer(param.getTaskId(), param.getUserId());
return Result.OK(); return Result.OK();
} }
@@ -87,6 +87,10 @@ public class ProcessNewStandardImport implements Serializable {
@ApiModelProperty(value = "标准类型") @ApiModelProperty(value = "标准类型")
@Dict(dicCode = "standard_type") @Dict(dicCode = "standard_type")
private String standardCategory; private String standardCategory;
/**实施日期*/
@ApiModelProperty(value = "实施日期")
@TableField(exist = false)
private String implementationDate;
/**标准名称*/ /**标准名称*/
@ApiModelProperty(value = "标准名称") @ApiModelProperty(value = "标准名称")
@TableField(exist = false) @TableField(exist = false)
@@ -1,10 +1,16 @@
package com.jero.modules.activiti.process.ni.listener; package com.jero.modules.activiti.process.ni.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.util.SpringContextUtils; import com.jero.common.util.SpringContextUtils;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService; import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService;
import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService; import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.ExecutionListener;
import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.delegate.TaskListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -16,13 +22,13 @@ import javax.annotation.Resource;
*/ */
@Slf4j @Slf4j
@Component @Component
public class ProcessNewStandardImportFlowListener implements TaskListener { public class ProcessNewStandardImportEndListener implements ExecutionListener {
@Resource @Resource
private IProcessNewStandardImportService processNewStandardImportService; private IProcessNewStandardImportService processNewStandardImportService;
@Override @Override
public void notify(DelegateTask delegateTask) { public void notify(DelegateExecution delegateExecution) {
processNewStandardImportService.flowListener(delegateTask); processNewStandardImportService.flowListener(delegateExecution);
} }
} }
@@ -5,12 +5,12 @@
<mapper namespace="com.jero.modules.activiti.process.ni.mapper.ProcessNewStandardImportMapper"> <mapper namespace="com.jero.modules.activiti.process.ni.mapper.ProcessNewStandardImportMapper">
<select id="getStandardNameById" resultType="com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport"> <select id="getStandardNameById" resultType="com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport">
select standard_number,standard_name,substitute_standard_number from select standard_number,standard_name,substitute_standard_number,implementation_date from
(select id, standard_number,standard_name,substitute_standard_number (select id, standard_number,standard_name,substitute_standard_number,implementation_date
from laws_domestic_standard from laws_domestic_standard
where del_flag = 0 where del_flag = 0
union all union all
select id, standard_number,standard_name,substitute_standard_number select id, standard_number,standard_name,substitute_standard_number,implementation_date
from laws_enterprise_standard from laws_enterprise_standard
where del_flag = 0) a where id = #{id} where del_flag = 0) a where id = #{id}
</select> </select>
@@ -3,6 +3,7 @@ package com.jero.modules.activiti.process.ni.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -25,5 +26,5 @@ public interface IProcessNewStandardImportService extends IService<ProcessNewSta
String generate(ProcessNewStandardImport scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception; String generate(ProcessNewStandardImport scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception;
void flowListener(DelegateTask delegateTask); void flowListener(DelegateExecution delegateExecution);
} }
@@ -3,6 +3,7 @@ package com.jero.modules.activiti.process.ni.service.impl;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.dto.message.SendMessageDTO;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessApprovalRecord;
@@ -18,9 +19,13 @@ import com.jero.modules.activiti.process.ni.mapper.ProcessNewStandardImportMappe
import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService; import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService;
import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.common.service.SendMessageAPI;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.sys.utils.UserUtils; import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@@ -40,6 +45,7 @@ import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
* @description 针对表【process_standard_compliance_check】的数据库操作Service实现 * @description 针对表【process_standard_compliance_check】的数据库操作Service实现
* @createDate 2024-07-04 10:21:21 * @createDate 2024-07-04 10:21:21
*/ */
@Slf4j
@Service @Service
public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewStandardImportMapper, ProcessNewStandardImport> public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewStandardImportMapper, ProcessNewStandardImport>
implements IProcessNewStandardImportService { implements IProcessNewStandardImportService {
@@ -65,6 +71,9 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
@Resource @Resource
private ProcessNewStandardImportMapper processNewStandardImportMapper; private ProcessNewStandardImportMapper processNewStandardImportMapper;
@Resource
private SendMessageAPI sendMessageAPI;
@Override @Override
@Transactional(rollbackFor = JeroBootException.class) @Transactional(rollbackFor = JeroBootException.class)
public void startProcess(ProcessInfoVO<ProcessNewStandardImport> processInfoVO) { public void startProcess(ProcessInfoVO<ProcessNewStandardImport> processInfoVO) {
@@ -99,6 +108,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
String userId = UserUtils.getUserId(); String userId = UserUtils.getUserId();
// 获取第一个任务的taskId // 获取第一个任务的taskId
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId); String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
processTask.setTaskId(taskId);
// 保存第一个节点的草稿 // 保存第一个节点的草稿
processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId()); processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId());
// 更新审批表为完成,填充数据 // 更新审批表为完成,填充数据
@@ -186,8 +196,32 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
} }
@Override @Override
public void flowListener(DelegateTask delegateTask) { public void flowListener(DelegateExecution delegateExecution) {
log.info("触发监听");
String processInstanceId = delegateExecution.getProcessInstanceId();
LambdaQueryWrapper<ProcessNewStandardImport> queryWrapperProcessNewStandardImport = new LambdaQueryWrapper<>();
queryWrapperProcessNewStandardImport.eq(ProcessNewStandardImport::getProcessInstanceId, processInstanceId);
ProcessNewStandardImport processNewStandardImport = getOne(queryWrapperProcessNewStandardImport,false);
if(Objects.isNull(processNewStandardImport)){
return;
}
String copyUser = processNewStandardImport.getCopyUser();
ProcessNewStandardImport standardImport = processNewStandardImportMapper.
getStandardNameById(processNewStandardImport.getStandardId());
if(Objects.isNull(standardImport)){
return;
}
// 流程Key
String processDefinitionKey = ProcessType.NEW_STANDARD_IMPORT.getProcessKey();
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
sendMessageDTO.setTemplateCode(processDefinitionKey);
sendMessageDTO.setToUserId(copyUser);
Map<String, String> sendMap = new HashMap<>();
sendMap.put("standardNumber", standardImport.getStandardNumber());
sendMap.put("standardName", standardImport.getStandardName());
sendMessageDTO.setMap(sendMap);
sendMessageAPI.sendMessage(sendMessageDTO);
} }
@Override @Override
@@ -196,8 +230,6 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
throw new JeroBootException("任务不存在"); throw new JeroBootException("任务不存在");
} }
ProcessInfoVO<ProcessNewStandardImport> result = new ProcessInfoVO<>(); ProcessInfoVO<ProcessNewStandardImport> result = new ProcessInfoVO<>();
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
// 使用流程引擎根据taskId找到流程实例Id // 使用流程引擎根据taskId找到流程实例Id
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// 获取流程通用数据 // 获取流程通用数据
@@ -222,7 +254,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
if(!Objects.isNull(processNewStandardImport)){ if(!Objects.isNull(processNewStandardImport)){
data.setStandardName(processNewStandardImport.getStandardName()); data.setStandardName(processNewStandardImport.getStandardName());
data.setStandardNumber(processNewStandardImport.getStandardNumber()); data.setStandardNumber(processNewStandardImport.getStandardNumber());
data.setStandardCategory(processNewStandardImport.getStandardCategory()); data.setImplementationDate(processNewStandardImport.getImplementationDate());
data.setSubstituteStandardNumber(processNewStandardImport.getSubstituteStandardNumber()); data.setSubstituteStandardNumber(processNewStandardImport.getSubstituteStandardNumber());
} }
result.setBusinessInfoDTO(data); result.setBusinessInfoDTO(data);