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 b749e635..75bbd1c1 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 @@ -12,6 +12,7 @@ import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.impl.identity.Authentication; +import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.task.TaskQuery; @@ -38,22 +39,27 @@ public class ActFlowCommonService { @Resource private TaskService taskService; - @Resource - private ProcessEsInitChangeService processEsInitChangeService; - @Resource private ISysBaseAPI sysBaseAPI; /** * 启动流程实例 */ - public ProcessInstance startProcess(String formKey, String beanName, String id) { + public ProcessInstance startProcess(String processDefinitionKey, String beanName, String businessId) { + ProcessDefinition latestProcessDefinition = repositoryService.createProcessDefinitionQuery() + .processDefinitionKey(processDefinitionKey) + .orderByProcessDefinitionVersion().desc() + .list() + .get(0); // 获取最新版本的流程定义 + IActFlowCustomService customService = (IActFlowCustomService) SpringContextUtil.getBean(beanName); // 修改业务的状态 - customService.startRunTask(id); - Map variables = customService.setVariables(id); + customService.startRunTask(businessId); + Map variables = customService.setVariables(businessId); + // 第一个节点默认通过 + variables.put("pass", true); // 启动流程 - ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(formKey, variables); + ProcessInstance processInstance = runtimeService.startProcessInstanceById(latestProcessDefinition.getId(), variables); // 流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java index 89231aac..4cdd191a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java @@ -80,11 +80,11 @@ public class ProcessESInitChangeController { * * @param esInitChangeList */ - @AutoLog(value = "企标立项变更流程-新增立项变更申请") - @ApiOperation(value="企标立项变更流程-新增立项变更申请", notes="企标立项变更流程-新增立项变更申请") - @PostMapping("/add") - public Result addInitChange(@RequestBody List esInitChangeList) { - initChangeService.addInitChange(esInitChangeList); + @AutoLog(value = "企标立项变更流程-发起立项变更申请") + @ApiOperation(value="企标立项变更流程-发起立项变更申请", notes="企标立项变更流程-发起立项变更申请") + @PostMapping("/start") + public Result startInitChange(@RequestBody List esInitChangeList) { + initChangeService.startInitChange(esInitChangeList); return Result.OK(); } @@ -99,7 +99,6 @@ public class ProcessESInitChangeController { @ApiOperation(value="企标立项变更流程-审批(同意/驳回)", notes="企标立项变更流程-审批(同意/驳回)") @PostMapping("/approval") public Result approval(@RequestParam("taskId") String taskId, @RequestBody List esInitChangeList) { - //审批 initChangeService.approvalInitChange(taskId, esInitChangeList); return Result.OK(); } 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 79533d06..01d594d9 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 @@ -13,6 +13,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import javax.validation.constraints.NotBlank; + /** * 企标计划 * @TableName process_es_init_change @@ -127,16 +129,19 @@ public class ProcessEsInitChange implements Serializable { /** * 企业名称代号 */ + @NotBlank private String enNameCode; /** * 标准类别代号 */ + @NotBlank private String standardCategoryCode; /** * 年代号 */ + @NotBlank private String decadeCode; /** diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java index 94460984..07585bd3 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java @@ -17,7 +17,7 @@ public interface ProcessEsInitChangeService extends IService esInitChange); + void startInitChange(List esInitChange); /** * 转办 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 e7aee904..c845a32b 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 @@ -34,9 +34,14 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl setVariables(String id) { - Map map = new HashMap<>(); ProcessEsInitChange initChange = getById(id); // 设置流程中各个节点的人 + return this.setVariables(initChange); + } + + private Map setVariables(ProcessEsInitChange initChange) { + Map map = new HashMap<>(); + // 设置流程中各个节点的人 map.put("createUser", initChange.getCreateBy()); map.put("contactUser", initChange.getContactUser()); map.put("standardExpertList", Optional.ofNullable(initChange.getStandardExpert()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList())); @@ -46,7 +51,10 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl Arrays.asList(s.split(","))).orElse(Collections.emptyList())); - map.put("copyUser", initChange.getCreateBy()); + map.put("copyUser", initChange.getCopyUser()); + // 设置流程分支判断变量 + map.put("applicationCategory", initChange.getApplicationCategory()); + map.put("projectType", initChange.getProjectType()); return map; } @@ -61,30 +69,17 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { + public void startInitChange(List esInitChangeList) { + String processDefinitionKey = "es-init-change"; String userId = UserUtils.getUserId(); // 保存到业务流程表 - saveOrUpdateBatch(esInitChangeList); - String id; - // 完成时间变更/工作中止 - if (isListApproval(esInitChangeList)) { - StringBuilder stringBuilder = new StringBuilder(); - for (ProcessEsInitChange ic : esInitChangeList) { - stringBuilder.append(ic.getId()).append(","); - } - // 去掉最后的逗号 - stringBuilder.deleteCharAt(stringBuilder.length() - 1); - id = stringBuilder.toString(); - } else { - id = esInitChangeList.get(0).getId(); - } - + saveBatch(esInitChangeList); + ProcessEsInitChange initChange = esInitChangeList.get(0); // TODO 根据业务需求设置流程状态 // 对数据进行其他操作 - String formKey = "initChange"; - String beanName = formKey + "Service"; + String beanName = "initChange"; - ProcessInstance processInstance = actFlowCommonService.startProcess(formKey, beanName, id); + ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, beanName, initChange.getId()); // 获取流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); @@ -103,6 +98,12 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { - ProcessEsInitChange initChange = esInitChangeList.get(0); - return ESProjectType.COMPLETE_TIME_CHANGE.getValue().equals(initChange.getProjectType()) || - ESProjectType.WORK_TERMINATE.getValue().equals(initChange.getProjectType()); - } - @Override public void approvalInitChange(String taskId, List esInitChangeList) { String userId = UserUtils.getUserId(); + // 更新业务流程数据 saveOrUpdateBatch(esInitChangeList); + // 设置流程变量 + setVariables(esInitChangeList.get(0)); // TODO 保存流程审批信息 actFlowCommonService.completeTask(esInitChangeList.get(0).getRemarks(), taskId, userId); }