From 89befec2670f0d76308ea81649c848fab4c1f430 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 12 Oct 2023 18:00:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B5=81=E7=A8=8B=E4=B8=AD=E5=BF=83-?= =?UTF-8?q?=E5=8A=9E=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProcessCenterController.java | 12 +++++ .../common/service/ActFlowCommonService.java | 46 ++++++++++++++++--- .../common/service/IActFlowCustomService.java | 6 +++ .../entity/ProcessEsInitChange.java | 2 +- .../impl/ProcessEsInitChangeServiceImpl.java | 8 ++++ 5 files changed, 67 insertions(+), 7 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/controller/ProcessCenterController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/controller/ProcessCenterController.java index 9ac6650b..39ac566e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/controller/ProcessCenterController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/controller/ProcessCenterController.java @@ -89,4 +89,16 @@ public class ProcessCenterController { public Result draftList(@Valid CenterQueryVO centerQueryVO) { return Result.OK(draftService.getDraftList(centerQueryVO)); } + + /** + * 办理 + * @param processInstanceId + */ + @AutoLog(value = "流程中心-办理") + @ApiOperation(value="流程中心-办理", notes="流程中心-办理") + @GetMapping("/handle") + public Result handle(@RequestParam("processInstanceId") String processInstanceId) { + return Result.OK(actFlowCommonService.handleTask(processInstanceId)); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index 674a1233..f5aca000 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -4,6 +4,7 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.vo.LoginUser; import com.jero.modules.activiti.process.common.entity.CenterQueryVO; +import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; @@ -19,10 +20,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Slf4j @Service @@ -59,7 +57,7 @@ public class ActFlowCommonService { variables.put("pass", true); // 启动流程 ProcessInstance processInstance = runtimeService.startProcessInstanceById(latestProcessDefinition.getId(), variables); - // 流程实例ID + // 流程定义ID String processDefinitionId = processInstance.getProcessDefinitionId(); log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId); return processInstance; @@ -148,7 +146,7 @@ public class ActFlowCommonService { .createProcessInstanceQuery() .processInstanceId(task.getProcessInstanceId()) .singleResult(); - String prcId = processInstance.getId(); + //TODO 根据流程Id找到对应业务流程实体 listMap.add(map); @@ -184,4 +182,40 @@ public class ActFlowCommonService { public boolean taskExists(String taskId) { return taskService.createTaskQuery().taskId(taskId).singleResult() != null; } + + public String getProcessKeyByInstanceId(String processInstanceId) { + // 1. 根据流程实例ID获取流程实例 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId) + .singleResult(); + + // 2. 从流程实例中获取流程定义ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + + // 3. 查询流程定义 + ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() + .processDefinitionId(processDefinitionId) + .singleResult(); + + // 4. 从流程定义中获取key + return processDefinition.getKey(); + } + + /** + * 办理任务 + * @param processInstanceId + * @return + */ + public Object handleTask(String processInstanceId) { + String processKey = getProcessKeyByInstanceId(processInstanceId); + Object result = null; + switch (processKey) { + case "es-init-change": + IActFlowCustomService service = (IActFlowCustomService) SpringContextUtil.getBean(ProcessType.ES_INIT_CHANGE.getServiceClassName()); + result = service.getHandleData(processInstanceId); + + + } + return result; + } } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/IActFlowCustomService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/IActFlowCustomService.java index d721c8a9..83830770 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/IActFlowCustomService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/IActFlowCustomService.java @@ -28,4 +28,10 @@ public interface IActFlowCustomService { * @param id */ void endRunTask(String id); + + /** + * 获取办理数据 + * @param id + */ + Object getHandleData(String id); } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java index c1251d22..33b8f2d8 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java @@ -158,7 +158,7 @@ public class ProcessEsInitChange implements Serializable { */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") - private Date orginDraftPlannedCompleteDate; + private Date originDraftPlannedCompleteDate; /** * 原征求意见稿计划完成日期 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index 7fc662b4..dde7a7fa 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -82,6 +82,14 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId); + lambdaQueryWrapper.eq(ProcessEsInitChange::getDelFlag, YesOrNoEnum.NO.getValue()); + return list(lambdaQueryWrapper); + } + @Override public void startInitChange(List esInitChangeList) { // 校验企标编号是否冲突