完善新法规导入流程

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
public enum ProcessTypeEnum {
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_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"),
@@ -188,7 +188,6 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
* @Description: 转办
**/
@Override
@Transactional(rollbackFor = JeroBootException.class)
public void transfer(String taskId, String toUserId) {
isMyTask(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.ni.entity.ProcessNewStandardImport;
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.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -95,8 +96,8 @@ public class ProcessNewStandardImportController extends JeroController<ProcessNe
@AutoLog(value = "新法规导入流程-转办")
@ApiOperation(value="新法规导入流程-转办", notes="新法规导入流程-转办")
@PostMapping(value = "/transfer")
public Result<?> transfer(@RequestBody TransferVO transferVO) {
processHandleService.transfer(transferVO.getTaskId(), transferVO.getUserId());
public Result<?> transfer(@RequestBody DelegateTaskParam param) {
processHandleService.transfer(param.getTaskId(), param.getUserId());
return Result.OK();
}
@@ -87,6 +87,10 @@ public class ProcessNewStandardImport implements Serializable {
@ApiModelProperty(value = "标准类型")
@Dict(dicCode = "standard_type")
private String standardCategory;
/**实施日期*/
@ApiModelProperty(value = "实施日期")
@TableField(exist = false)
private String implementationDate;
/**标准名称*/
@ApiModelProperty(value = "标准名称")
@TableField(exist = false)
@@ -1,10 +1,16 @@
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.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.activiti.process.ni.service.IProcessNewStandardImportService;
import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.ExecutionListener;
import org.activiti.engine.delegate.TaskListener;
import org.springframework.stereotype.Component;
@@ -16,13 +22,13 @@ import javax.annotation.Resource;
*/
@Slf4j
@Component
public class ProcessNewStandardImportFlowListener implements TaskListener {
public class ProcessNewStandardImportEndListener implements ExecutionListener {
@Resource
private IProcessNewStandardImportService processNewStandardImportService;
@Override
public void notify(DelegateTask delegateTask) {
processNewStandardImportService.flowListener(delegateTask);
public void notify(DelegateExecution delegateExecution) {
processNewStandardImportService.flowListener(delegateExecution);
}
}
@@ -5,12 +5,12 @@
<mapper namespace="com.jero.modules.activiti.process.ni.mapper.ProcessNewStandardImportMapper">
<select id="getStandardNameById" resultType="com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport">
select standard_number,standard_name,substitute_standard_number from
(select id, standard_number,standard_name,substitute_standard_number
select standard_number,standard_name,substitute_standard_number,implementation_date from
(select id, standard_number,standard_name,substitute_standard_number,implementation_date
from laws_domestic_standard
where del_flag = 0
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
where del_flag = 0) a where id = #{id}
</select>
@@ -3,6 +3,7 @@ package com.jero.modules.activiti.process.ni.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
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;
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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.modules.activiti.entity.ProcessAll;
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.service.ProcessAllService;
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 lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.runtime.ProcessInstance;
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实现
* @createDate 2024-07-04 10:21:21
*/
@Slf4j
@Service
public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewStandardImportMapper, ProcessNewStandardImport>
implements IProcessNewStandardImportService {
@@ -65,6 +71,9 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
@Resource
private ProcessNewStandardImportMapper processNewStandardImportMapper;
@Resource
private SendMessageAPI sendMessageAPI;
@Override
@Transactional(rollbackFor = JeroBootException.class)
public void startProcess(ProcessInfoVO<ProcessNewStandardImport> processInfoVO) {
@@ -99,6 +108,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
String userId = UserUtils.getUserId();
// 获取第一个任务的taskId
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
processTask.setTaskId(taskId);
// 保存第一个节点的草稿
processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId());
// 更新审批表为完成,填充数据
@@ -186,8 +196,32 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
}
@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
@@ -196,8 +230,6 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
throw new JeroBootException("任务不存在");
}
ProcessInfoVO<ProcessNewStandardImport> result = new ProcessInfoVO<>();
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
// 使用流程引擎根据taskId找到流程实例Id
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// 获取流程通用数据
@@ -222,7 +254,7 @@ public class ProcessNewStandardImportServiceImpl extends ServiceImpl<ProcessNewS
if(!Objects.isNull(processNewStandardImport)){
data.setStandardName(processNewStandardImport.getStandardName());
data.setStandardNumber(processNewStandardImport.getStandardNumber());
data.setStandardCategory(processNewStandardImport.getStandardCategory());
data.setImplementationDate(processNewStandardImport.getImplementationDate());
data.setSubstituteStandardNumber(processNewStandardImport.getSubstituteStandardNumber());
}
result.setBusinessInfoDTO(data);