From 22afb5332314a8c74092ac72bab44012689d5dc1 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sat, 19 Apr 2025 10:34:25 +0800 Subject: [PATCH 01/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=89=93=E5=8D=B0=E6=A8=A1=E6=9D=BF=E7=9A=84?= =?UTF-8?q?=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/bpmn/ProcessDefinitionApi.java | 6 +-- .../print/PrintTemplateConfigQueryDTO.java | 15 +++++++ .../cmd/CustomGetModelByDefinitionIdCmd.java | 42 +++++++++++++++++++ .../bpmn/BpmnProcessDefinitionController.java | 7 ++-- .../web/bpmn/BpmnProcessModelController.java | 22 ++++++++-- 5 files changed, 82 insertions(+), 10 deletions(-) create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetModelByDefinitionIdCmd.java diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessDefinitionApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessDefinitionApi.java index 345f3083e..6b196947d 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessDefinitionApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessDefinitionApi.java @@ -1,7 +1,6 @@ package cn.axzo.workflow.client.feign.bpmn; import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient; -import cn.axzo.workflow.client.config.CommonFeignConfiguration; import cn.axzo.workflow.common.annotation.InvokeMode; import cn.axzo.workflow.common.annotation.Manageable; import cn.axzo.workflow.common.model.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO; @@ -10,7 +9,6 @@ import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessDefinitionP import cn.axzo.workflow.common.model.response.BpmPageResult; import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinitionVO; import cn.azxo.framework.common.model.CommonResponse; -import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -20,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestParam; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID; import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC; /** @@ -81,7 +80,8 @@ public interface ProcessDefinitionApi { */ @GetMapping("/api/process/definition/active/getByKey") @InvokeMode(SYNC) - CommonResponse getActiveProcessDefinitionByKey(@NotBlank(message = "模型定义KEY不能为空") @RequestParam String key); + CommonResponse getActiveProcessDefinitionByKey(@NotBlank(message = "模型定义KEY不能为空") @RequestParam String key, + @RequestParam(required = false, defaultValue = NO_TENANT_ID) String tenantId); /** diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/print/PrintTemplateConfigQueryDTO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/print/PrintTemplateConfigQueryDTO.java index 21952836e..c5e4503b6 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/print/PrintTemplateConfigQueryDTO.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/print/PrintTemplateConfigQueryDTO.java @@ -7,6 +7,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID; + /** * 获取打印模板配置内容入参模型 * @@ -19,6 +21,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @Builder public class PrintTemplateConfigQueryDTO { + /** * 审批模型 ID */ @@ -30,4 +33,16 @@ public class PrintTemplateConfigQueryDTO { */ @ApiModelProperty(value = "流程实例 ID") private String processInstanceId; + + /** + * 业务 ID + */ + @ApiModelProperty(value = "业务 ID") + private String processDefinitionKey; + + /** + * 租户 ID,配置 processDefinitionKey 使用 + */ + @ApiModelProperty(value = "租户 ID") + private String tenantId = NO_TENANT_ID; } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetModelByDefinitionIdCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetModelByDefinitionIdCmd.java new file mode 100644 index 000000000..0234b7505 --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetModelByDefinitionIdCmd.java @@ -0,0 +1,42 @@ +package cn.axzo.workflow.core.engine.cmd; + +import org.flowable.common.engine.impl.interceptor.Command; +import org.flowable.common.engine.impl.interceptor.CommandContext; +import org.flowable.engine.RepositoryService; +import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl; +import org.flowable.engine.impl.util.CommandContextUtil; +import org.flowable.engine.repository.Model; +import org.flowable.engine.repository.ProcessDefinition; + +/** + * 通过流程定义ID获取流程模型 + * + * @author wangli + * @since 2025-04-19 10:17 + */ +public class CustomGetModelByDefinitionIdCmd implements Command { + private final String processDefinitionId; + + public CustomGetModelByDefinitionIdCmd(String processDefinitionId) { + this.processDefinitionId = processDefinitionId; + } + + @Override + public Model execute(CommandContext commandContext) { + ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil + .getProcessEngineConfiguration(commandContext).getProcessEngineConfiguration(); + RepositoryService repositoryService = processEngineConfiguration.getRepositoryService(); + ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() + .processDefinitionId(processDefinitionId) + .singleResult(); + + // 获取部署ID + String deploymentId = processDefinition.getDeploymentId(); + + // 通过部署ID查询模型 + Model model = repositoryService.createModelQuery() + .deploymentId(deploymentId) + .singleResult(); + return model; + } +} diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessDefinitionController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessDefinitionController.java index 1af98818f..80b3e5fff 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessDefinitionController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessDefinitionController.java @@ -130,11 +130,10 @@ public class BpmnProcessDefinitionController implements ProcessDefinitionApi { @Operation(summary = "获得流程定义标识对应的激活的流程定义") @GetMapping("/active/getByKey") @Override - public CommonResponse getActiveProcessDefinitionByKey(@NotBlank(message = - "模型定义KEY" + - "不能为空") @RequestParam String key) { + public CommonResponse getActiveProcessDefinitionByKey(@NotBlank(message = "模型定义KEY不能为空") @RequestParam String key, + @RequestParam(required = false, defaultValue = NO_TENANT_ID) String tenantId) { log.info("获得流程定义标识对应的激活的流程定义 getActiveProcessDefinitionByKey===>>>参数:{}", JSONUtil.toJsonStr(key)); - return success(bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(key, key)); + return success(bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(key, tenantId)); } /** diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java index 75a5bd8ef..523f00e36 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java @@ -12,7 +12,9 @@ import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.axzo.workflow.common.model.response.BpmPageResult; import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelDetailVO; import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelExtVO; +import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinitionVO; import cn.axzo.workflow.common.model.response.print.PrintModelDTO; +import cn.axzo.workflow.core.engine.cmd.CustomGetModelByDefinitionIdCmd; import cn.axzo.workflow.core.service.AggregateModelService; import cn.axzo.workflow.core.service.BpmnProcessDefinitionService; import cn.axzo.workflow.core.service.BpmnProcessInstanceService; @@ -26,6 +28,9 @@ import com.alibaba.fastjson.JSON; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; +import org.flowable.common.engine.impl.interceptor.CommandExecutor; +import org.flowable.engine.repository.Model; +import org.flowable.spring.SpringProcessEngineConfiguration; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; @@ -67,6 +72,8 @@ public class BpmnProcessModelController implements ProcessModelApi { private ExtAxReModelService reModelService; @Resource private BpmnProcessInstanceService bpmnProcessInstanceService; + @Resource + private SpringProcessEngineConfiguration springProcessEngineConfiguration; /** * 获取流程模型的查询结果 @@ -347,12 +354,21 @@ public class BpmnProcessModelController implements ProcessModelApi { @Override public CommonResponse getPrintTemplateConfig(@Validated @RequestBody PrintTemplateConfigQueryDTO dto) { log.info("获取打印模板配置内容"); - if (!StringUtils.hasText(dto.getModelId()) && !StringUtils.hasText(dto.getProcessInstanceId())) { - throw new WorkflowEngineException(ILLEGAL_PARAM_ERROR, "模型 ID 和实例 ID 不能同时为空"); + if (!StringUtils.hasText(dto.getProcessDefinitionKey()) || !StringUtils.hasText(dto.getTenantId())) { + throw new WorkflowEngineException(ILLEGAL_PARAM_ERROR, "processDefinitionKey 与 tenantId 不能同时为空"); } - if (!StringUtils.hasText(dto.getModelId())) { + if (!StringUtils.hasText(dto.getModelId()) && !StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getProcessDefinitionKey())) { + throw new WorkflowEngineException(ILLEGAL_PARAM_ERROR, "模型 ID 、实例 ID 和业务 ID 不能同时为空"); + } + if (!StringUtils.hasText(dto.getModelId()) && StringUtils.hasText(dto.getProcessInstanceId())) { dto.setModelId(bpmnProcessInstanceService.getModelIdByProcessInstanceId(dto.getProcessInstanceId())); } + if (StringUtils.hasText(dto.getProcessDefinitionKey()) && StringUtils.hasText(dto.getTenantId())) { + BpmnProcessDefinitionVO definition = bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(dto.getProcessDefinitionKey(), dto.getTenantId()); + CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor(); + Model model = commandExecutor.execute(new CustomGetModelByDefinitionIdCmd(definition.getId())); + dto.setModelId(model.getId()); + } return success(bpmnProcessModelService.getPrintTemplateConfig(dto.getModelId())); } From ff8fd32a920c32c018e02f58ee80fbe01858a870 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sat, 19 Apr 2025 14:19:53 +0800 Subject: [PATCH 02/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E9=85=8D=E7=BD=AE=E7=B3=BB=E7=BB=9F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AE=A1=E6=89=B9=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/workflow/common/constant/VariableConstants.java | 1 + .../core/engine/cmd/CustomGetProcessInstanceVariablesCmd.java | 2 ++ .../server/controller/web/manage/PrintAdminController.java | 1 + 3 files changed, 4 insertions(+) diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/constant/VariableConstants.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/constant/VariableConstants.java index bd05b7878..beac15339 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/constant/VariableConstants.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/constant/VariableConstants.java @@ -31,6 +31,7 @@ public interface VariableConstants { String PRINT_VAR_PROCESS_DEFINITION_KEY = "processDefinitionKey"; String PRINT_VAR_PROCESS_INSTANCE_ID = "processInstanceId"; String PRINT_VAR_PROCESS_START_TIME = "startTime"; + String PRINT_VAR_PROCESS_END_TIME = "endTime"; String PRINT_VAR_PROCESS_INITIATOR = "initiator"; String PRINT_VAR_PROCESS_INITIATOR_NAME = "initiatorName"; String PRINT_VAR_PROCESS_INITIATOR_POSITION = "initiatorPosition"; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetProcessInstanceVariablesCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetProcessInstanceVariablesCmd.java index a538663d8..2210e0b79 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetProcessInstanceVariablesCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetProcessInstanceVariablesCmd.java @@ -23,6 +23,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.BPM_MODEL_CATEGORY; import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_INITIATOR; import static cn.axzo.workflow.common.constant.BpmnConstants.SIGNATURE_COLLECTION; import static cn.axzo.workflow.common.constant.VariableConstants.PRINT_VAR_PROCESS_DEFINITION_KEY; +import static cn.axzo.workflow.common.constant.VariableConstants.PRINT_VAR_PROCESS_END_TIME; import static cn.axzo.workflow.common.constant.VariableConstants.PRINT_VAR_PROCESS_INITIATOR; import static cn.axzo.workflow.common.constant.VariableConstants.PRINT_VAR_PROCESS_INSTANCE_ID; import static cn.axzo.workflow.common.constant.VariableConstants.PRINT_VAR_PROCESS_START_TIME; @@ -64,6 +65,7 @@ public class CustomGetProcessInstanceVariablesCmd extends AbstractCommand Date: Sat, 19 Apr 2025 17:58:31 +0800 Subject: [PATCH 03/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E9=85=8D=E7=BD=AE=E7=B3=BB=E7=BB=9F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AE=A1=E6=89=B9=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/web/bpmn/BpmnProcessModelController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java index 523f00e36..b6733f66c 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java @@ -354,10 +354,10 @@ public class BpmnProcessModelController implements ProcessModelApi { @Override public CommonResponse getPrintTemplateConfig(@Validated @RequestBody PrintTemplateConfigQueryDTO dto) { log.info("获取打印模板配置内容"); - if (!StringUtils.hasText(dto.getProcessDefinitionKey()) || !StringUtils.hasText(dto.getTenantId())) { - throw new WorkflowEngineException(ILLEGAL_PARAM_ERROR, "processDefinitionKey 与 tenantId 不能同时为空"); - } if (!StringUtils.hasText(dto.getModelId()) && !StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getProcessDefinitionKey())) { + if (!StringUtils.hasText(dto.getProcessDefinitionKey()) || !StringUtils.hasText(dto.getTenantId())) { + throw new WorkflowEngineException(ILLEGAL_PARAM_ERROR, "processDefinitionKey 与 tenantId 不能同时为空"); + } throw new WorkflowEngineException(ILLEGAL_PARAM_ERROR, "模型 ID 、实例 ID 和业务 ID 不能同时为空"); } if (!StringUtils.hasText(dto.getModelId()) && StringUtils.hasText(dto.getProcessInstanceId())) { From d503a133a9bf3796dc5b7192ebcbab1ff164d3bb Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Wed, 23 Apr 2025 14:11:15 +0800 Subject: [PATCH 04/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E7=BB=93=E5=90=88?= =?UTF-8?q?=20Cursor=20=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...WorkflowEngineClientAutoConfiguration.java | 5 +-- .../client/feign/bpmn/ProcessActivityApi.java | 1 - .../client/feign/bpmn/ProcessVariableApi.java | 2 - .../feign/manage/ProcessCategoryApi.java | 2 - .../client/feign/manage/ProcessConfigApi.java | 2 - .../repository/entity/ExtAxProcessAdmin.java | 1 - .../enums/BpmnProcessInstanceResultEnum.java | 2 +- .../core/common/context/CommonContext.java | 2 + .../core/common/event/ApiLogListener.java | 3 -- .../json/ServiceTaskJsonConverter.java | 3 -- .../approverscope/PreTaskUserProcessor.java | 1 + .../CustomBizSpecifyAssigneeToTaskCmd.java | 11 ++--- .../cmd/CustomCountersignUserTaskCmd.java | 3 -- ...ustomNoticeDestinationUserSelectorCmd.java | 1 - .../cmd/CustomTermNodePausingAlertCmd.java | 3 -- .../engine/cmd/CustomTransferUserTaskCmd.java | 1 + .../AsyncAbortProcessInstanceJobHandler.java | 1 - .../AsyncApproveTaskWithFormJobHandler.java | 2 - .../engine/job/service/JobLogProcessor.java | 3 -- .../entity/type/TaskEntityEventHandle.java | 19 +++++++-- .../listener/AbstractBpmnEventListener.java | 2 + .../service/BpmnProcessActivityService.java | 1 - .../service/ExtAxBpmnFormRelationService.java | 1 - .../core/service/FormCoreService.java | 2 - .../BpmnProcessInstanceForEsServiceImpl.java | 1 - .../impl/BpmnProcessInstanceServiceImpl.java | 4 +- .../impl/BpmnProcessTaskServiceImpl.java | 42 +------------------ .../service/impl/ExtAxReModelServiceImpl.java | 8 ++-- .../engine/impl/cmd/CreateAttachmentCmd.java | 2 - .../form/service/FormInstanceService.java | 1 - ...timisticLockingExceptionHandlerAdvice.java | 2 - .../server/common/util/ShellUtil.java | 1 - ...nitiatorSpecifiedTaskAssigneeSelector.java | 1 + .../BasedRoleTaskAssigneeSelector.java | 1 - .../RocketMqMessagePushEventListener.java | 1 + .../process/SyncToEsProcessEventListener.java | 2 - .../MessagePushTaskEvent_103_Listener.java | 1 + .../SnapshotBpmnTaskEvent_100_Listener.java | 1 + .../task/SyncToEsTaskEvent_104_Listener.java | 1 - .../bpmn/BpmnProcessDefinitionController.java | 1 + .../SelfBoradcastRocketConfiguration.java | 5 --- .../consumer/ElasticSearchSyncListener.java | 3 -- 42 files changed, 43 insertions(+), 109 deletions(-) diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/config/WorkflowEngineClientAutoConfiguration.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/config/WorkflowEngineClientAutoConfiguration.java index a0a716cee..37beb9211 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/config/WorkflowEngineClientAutoConfiguration.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/config/WorkflowEngineClientAutoConfiguration.java @@ -13,7 +13,6 @@ import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; @@ -84,7 +83,7 @@ public class WorkflowEngineClientAutoConfiguration { Map env = new HashMap<>(); env.put("create", "true"); try { - FileSystem zipfs = FileSystems.newFileSystem(location.toURI(), env); + FileSystems.newFileSystem(location.toURI(), env); } catch (Exception e1) { log.error("linux env create new FS error: {}", e1.getMessage()); } @@ -102,7 +101,7 @@ public class WorkflowEngineClientAutoConfiguration { Map env = new HashMap<>(); env.put("create", "true"); try { - FileSystem zipfs = FileSystems.newFileSystem(location.toURI(), env); + FileSystems.newFileSystem(location.toURI(), env); } catch (Exception e) { log.error("linux env create new FS error: {}", e.getMessage()); } diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessActivityApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessActivityApi.java index f7d41fcfc..1cbca027b 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessActivityApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessActivityApi.java @@ -3,7 +3,6 @@ package cn.axzo.workflow.client.feign.bpmn; import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient; import cn.axzo.workflow.common.annotation.InvokeMode; import cn.axzo.workflow.common.annotation.Manageable; -import cn.axzo.workflow.common.enums.RpcInvokeModeEnum; import cn.axzo.workflow.common.model.request.bpmn.activity.BpmnActivityTimeoutCallbackDTO; import cn.axzo.workflow.common.model.request.bpmn.activity.BpmnActivityTimeoutTriggerDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnActivitySetAssigneeDTO; diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessVariableApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessVariableApi.java index 614216a7a..88ca06197 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessVariableApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessVariableApi.java @@ -1,12 +1,10 @@ package cn.axzo.workflow.client.feign.bpmn; import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient; -import cn.axzo.workflow.client.config.CommonFeignConfiguration; import cn.axzo.workflow.common.annotation.InvokeMode; import cn.axzo.workflow.common.annotation.Manageable; import cn.axzo.workflow.common.model.request.bpmn.RestBpmnProcessVariable; import cn.azxo.framework.common.model.CommonResponse; -import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/manage/ProcessCategoryApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/manage/ProcessCategoryApi.java index 7dea9ce08..98645a238 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/manage/ProcessCategoryApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/manage/ProcessCategoryApi.java @@ -1,7 +1,6 @@ package cn.axzo.workflow.client.feign.manage; import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient; -import cn.axzo.workflow.client.config.CommonFeignConfiguration; import cn.axzo.workflow.common.annotation.InvokeMode; import cn.axzo.workflow.common.annotation.Manageable; import cn.axzo.workflow.common.model.request.category.CategoryConfigCreateDTO; @@ -13,7 +12,6 @@ import cn.axzo.workflow.common.model.response.BpmPageResult; import cn.axzo.workflow.common.model.response.category.CategoryConfigItemVO; import cn.axzo.workflow.common.model.response.category.CategoryItemVO; import cn.azxo.framework.common.model.CommonResponse; -import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/manage/ProcessConfigApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/manage/ProcessConfigApi.java index 13bf5e8e0..521386f0e 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/manage/ProcessConfigApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/manage/ProcessConfigApi.java @@ -1,12 +1,10 @@ package cn.axzo.workflow.client.feign.manage; import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient; -import cn.axzo.workflow.client.config.CommonFeignConfiguration; import cn.axzo.workflow.common.annotation.InvokeMode; import cn.axzo.workflow.common.annotation.Manageable; import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonMetaInfo; import cn.azxo.framework.common.model.CommonResponse; -import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import java.util.List; diff --git a/workflow-engine-axzo-ext/src/main/java/cn/axzo/workflow/admin/repository/entity/ExtAxProcessAdmin.java b/workflow-engine-axzo-ext/src/main/java/cn/axzo/workflow/admin/repository/entity/ExtAxProcessAdmin.java index 8e4bdd15c..d3f3332b9 100644 --- a/workflow-engine-axzo-ext/src/main/java/cn/axzo/workflow/admin/repository/entity/ExtAxProcessAdmin.java +++ b/workflow-engine-axzo-ext/src/main/java/cn/axzo/workflow/admin/repository/entity/ExtAxProcessAdmin.java @@ -4,7 +4,6 @@ import cn.axzo.framework.data.mybatisplus.model.BaseEntity; import cn.axzo.workflow.common.enums.AdminDataSource; import cn.axzo.workflow.common.enums.AdminRoleType; import cn.axzo.workflow.common.enums.AdminTypeEnum; -import cn.axzo.workflow.common.enums.WorkspaceType; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/BpmnProcessInstanceResultEnum.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/BpmnProcessInstanceResultEnum.java index 150ecbc35..eaa621a2e 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/BpmnProcessInstanceResultEnum.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/BpmnProcessInstanceResultEnum.java @@ -44,7 +44,7 @@ public enum BpmnProcessInstanceResultEnum { * @param result 结果 * @return 是否 */ - public static boolean isEndResult(Integer result) { + public static boolean isEndResult(String result) { return Arrays.asList(PROCESSING.getStatus(), APPROVED.getStatus(), REJECTED.getStatus(), CANCELLED.getStatus()).contains(result); } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/context/CommonContext.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/context/CommonContext.java index 30ba18d60..02eeb6713 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/context/CommonContext.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/context/CommonContext.java @@ -85,10 +85,12 @@ public abstract class CommonContext implements OperationContext { } @Override + @SuppressWarnings("unchecked") public void setContext(OperationContext context) { this.context = (T) context; } + @SuppressWarnings("unchecked") @Override public T getContext() { return context; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/event/ApiLogListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/event/ApiLogListener.java index f446ef005..1d98e44cb 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/event/ApiLogListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/event/ApiLogListener.java @@ -5,15 +5,12 @@ import cn.axzo.workflow.core.repository.entity.ExtAxApiLog; import cn.axzo.workflow.core.service.ExtAxApiLogService; import cn.hutool.json.JSONUtil; import com.google.common.base.Strings; -import com.google.common.collect.Lists; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; -import org.springframework.beans.factory.InitializingBean; import org.springframework.context.ApplicationListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import javax.annotation.Resource; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ServiceTaskJsonConverter.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ServiceTaskJsonConverter.java index a68b6f18d..7e7f5d9a2 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ServiceTaskJsonConverter.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/converter/json/ServiceTaskJsonConverter.java @@ -5,13 +5,10 @@ import cn.axzo.workflow.common.model.request.bpmn.BpmnCarbonCopyConf; import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonNode; import org.flowable.bpmn.model.ExtensionAttribute; import org.flowable.bpmn.model.ExtensionElement; -import org.flowable.bpmn.model.FlowableListener; import org.flowable.bpmn.model.Process; import org.flowable.bpmn.model.ServiceTask; -import org.flowable.bpmn.model.UserTask; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; import java.util.List; import java.util.Objects; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/approverscope/PreTaskUserProcessor.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/approverscope/PreTaskUserProcessor.java index abbec1663..2afcf7d78 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/approverscope/PreTaskUserProcessor.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/approverscope/PreTaskUserProcessor.java @@ -38,6 +38,7 @@ public class PreTaskUserProcessor implements ApproverScopeProcessor { // 上级节点 String preActivityId = preUserTaskOpt.get().getId(); // 获取上一级节点 + @SuppressWarnings("unchecked") List assigners = (List) execution .getVariableLocal(INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + preActivityId); List entOrg = CollectionUtils.emptyIfNull(assigners).stream() diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java index 8cecd996c..243063932 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomBizSpecifyAssigneeToTaskCmd.java @@ -1,7 +1,7 @@ package cn.axzo.workflow.core.engine.cmd; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.axzo.workflow.common.exception.WorkflowEngineException; +import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper; import com.alibaba.fastjson.JSON; import org.flowable.common.engine.impl.interceptor.CommandContext; @@ -24,16 +24,16 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_ID_NOT_EXISTS; +import static cn.axzo.workflow.common.code.BpmnTaskRespCode.ACTIVITY_BIZ_SET_ASSIGNEE_ERROR; +import static cn.axzo.workflow.common.code.BpmnTaskRespCode.ACTIVITY_CANT_SET_ASSIGNEE; +import static cn.axzo.workflow.common.code.BpmnTaskRespCode.PROCESS_CANT_SET_ASSIGNEE; import static cn.axzo.workflow.common.constant.BpmnConstants.HIDDEN_ASSIGNEE_ID; import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT; import static cn.axzo.workflow.common.constant.BpmnConstants.NO_ASSIGNEE; import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_COMPLETE_OPERATION_TYPE; import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.DELETED; import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING; -import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_ID_NOT_EXISTS; -import static cn.axzo.workflow.common.code.BpmnTaskRespCode.ACTIVITY_BIZ_SET_ASSIGNEE_ERROR; -import static cn.axzo.workflow.common.code.BpmnTaskRespCode.ACTIVITY_CANT_SET_ASSIGNEE; -import static cn.axzo.workflow.common.code.BpmnTaskRespCode.PROCESS_CANT_SET_ASSIGNEE; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.validTaskAssignerCount; /** @@ -133,6 +133,7 @@ public class CustomBizSpecifyAssigneeToTaskCmd extends AbstractCommand CommandContextUtil.getProcessEngineConfiguration(commandContext); RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); + @SuppressWarnings("unchecked") List originAssingeeList = runtimeService.getVariable(task.getProcessInstanceId(), INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + task.getTaskDefinitionKey(), List.class); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountersignUserTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountersignUserTaskCmd.java index d309f18ad..dd9bc7e29 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountersignUserTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountersignUserTaskCmd.java @@ -23,9 +23,7 @@ import org.springframework.util.CollectionUtils; import java.io.Serializable; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -37,7 +35,6 @@ import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.COUNTE import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.batchAddAttachment; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.completeVirtualTask; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.createVirtualTask; -import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.deleteMultiTasks; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.getDuplicatePendingTasks; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.validTask; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.validTaskAssignerCount; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomNoticeDestinationUserSelectorCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomNoticeDestinationUserSelectorCmd.java index 3f88ca5e2..c6eba1159 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomNoticeDestinationUserSelectorCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomNoticeDestinationUserSelectorCmd.java @@ -9,7 +9,6 @@ import cn.axzo.workflow.core.engine.listener.EngineExecutionStartListener; import cn.axzo.workflow.core.engine.model.NoticeFlowElement; import cn.axzo.workflow.core.service.converter.BpmnHistoricTaskInstanceConverter; import com.alibaba.fastjson.JSON; -import org.flowable.common.engine.impl.interceptor.Command; import org.flowable.common.engine.impl.interceptor.CommandContext; import org.flowable.engine.HistoryService; import org.flowable.engine.RuntimeService; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTermNodePausingAlertCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTermNodePausingAlertCmd.java index 3b6a2262a..35eeacb5b 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTermNodePausingAlertCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTermNodePausingAlertCmd.java @@ -1,9 +1,6 @@ package cn.axzo.workflow.core.engine.cmd; -import org.flowable.bpmn.model.TimerEventDefinition; import org.flowable.common.engine.impl.interceptor.CommandContext; -import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl; -import org.flowable.engine.impl.util.CommandContextUtil; import java.io.Serializable; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTransferUserTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTransferUserTaskCmd.java index 1789d5e4f..480c051d6 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTransferUserTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomTransferUserTaskCmd.java @@ -138,6 +138,7 @@ public class CustomTransferUserTaskCmd extends AbstractCommand implements public void processAssignee(ProcessEngineConfigurationImpl processEngineConfiguration, Task task) { RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); + @SuppressWarnings("unchecked") List originAssingeeList = runtimeService.getVariable(task.getProcessInstanceId(), INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + task.getTaskDefinitionKey(), List.class); List resultList = new ArrayList<>(); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/AsyncAbortProcessInstanceJobHandler.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/AsyncAbortProcessInstanceJobHandler.java index ffee64f09..cacbc303f 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/AsyncAbortProcessInstanceJobHandler.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/AsyncAbortProcessInstanceJobHandler.java @@ -1,7 +1,6 @@ package cn.axzo.workflow.core.engine.job; import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO; -import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCancelDTO; import cn.axzo.workflow.core.engine.cmd.CustomAbortProcessInstanceCmd; import cn.axzo.workflow.core.service.ExtAxHiTaskInstService; import cn.hutool.json.JSONUtil; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/AsyncApproveTaskWithFormJobHandler.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/AsyncApproveTaskWithFormJobHandler.java index a3b95f5a9..9c4f36862 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/AsyncApproveTaskWithFormJobHandler.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/AsyncApproveTaskWithFormJobHandler.java @@ -1,8 +1,6 @@ package cn.axzo.workflow.core.engine.job; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditWithFormDTO; -import cn.axzo.workflow.core.engine.cmd.CustomApproveTaskCmd; import cn.axzo.workflow.core.engine.cmd.CustomApproveTaskWithFormCmd; import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/service/JobLogProcessor.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/service/JobLogProcessor.java index cc6282efc..7e82dec55 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/service/JobLogProcessor.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/job/service/JobLogProcessor.java @@ -3,10 +3,7 @@ package cn.axzo.workflow.core.engine.job.service; import cn.axzo.workflow.common.constant.LogFieldConstants; import cn.axzo.workflow.core.engine.job.utils.AsyncJobUtils; import cn.azxo.framework.common.constatns.Constants; -import cn.hutool.json.JSONUtil; -import lombok.Data; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.flowable.job.service.JobProcessor; import org.flowable.job.service.JobProcessorContext; import org.flowable.job.service.impl.persistence.entity.AbstractJobEntity; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/entity/type/TaskEntityEventHandle.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/entity/type/TaskEntityEventHandle.java index c4f94bf18..3e89115bd 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/entity/type/TaskEntityEventHandle.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/entity/type/TaskEntityEventHandle.java @@ -30,11 +30,22 @@ import java.util.Date; import java.util.List; import java.util.Objects; -import static cn.axzo.workflow.common.constant.BpmnConstants.*; +import static cn.axzo.workflow.common.constant.BpmnConstants.AND_SIGN_EXPRESSION; +import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_ADVICE; +import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_OPERATION_DESC; +import static cn.axzo.workflow.common.constant.BpmnConstants.HIDDEN_ASSIGNEE_ID; +import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT; +import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_INFO; +import static cn.axzo.workflow.common.constant.BpmnConstants.NO_ASSIGNEE; +import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_COMPLETE_OPERATION_TYPE; import static cn.axzo.workflow.common.enums.ApprovalMethodEnum.nobody; -import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.*; +import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.AND; +import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.GENERAL; +import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.OR; import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_STARTER; -import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.*; +import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED; +import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.DELETED; +import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING; import static cn.axzo.workflow.core.common.enums.BpmnProcessTaskResultEnum.PENDING; import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getActivitySignature; import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getApprovalMethod; @@ -114,6 +125,7 @@ public class TaskEntityEventHandle implements EntityEventHandle { } else { ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(); RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); + @SuppressWarnings("unchecked") List assigneeList = runtimeService.getVariable(taskEntity.getProcessInstanceId(), INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + taskEntity.getTaskDefinitionKey(), List.class); ListUtils.emptyIfNull(assigneeList).stream().filter(e -> Objects.equals(e.buildAssigneeId(), taskEntity.getAssignee())).findAny() @@ -180,6 +192,7 @@ public class TaskEntityEventHandle implements EntityEventHandle { // 判断是否抄送节点,如果是的话,需要将抄送人集合放入对应字段 if (isCarbonCopyNode(queryLog)) { // 抄送人集合 + @SuppressWarnings("unchecked") List carbonCopies = runtimeService.getVariable(taskEntity.getProcessInstanceId(), INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + taskEntity.getTaskDefinitionKey(), List.class); update.setAssigneeFull(carbonCopies); update.setOperationDesc("抄送" + carbonCopies.size() + "人"); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/AbstractBpmnEventListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/AbstractBpmnEventListener.java index 8a9c3aae3..de1d2069e 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/AbstractBpmnEventListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/listener/AbstractBpmnEventListener.java @@ -17,11 +17,13 @@ public abstract class AbstractBpmnEventListener impl private T context; + @SuppressWarnings("unchecked") @Override public void setContext(OperationContext context) { this.context = (T) context; } + @SuppressWarnings("unchecked") @Override public T getContext() { return context; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/BpmnProcessActivityService.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/BpmnProcessActivityService.java index f47c4bd2e..eaad658f2 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/BpmnProcessActivityService.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/BpmnProcessActivityService.java @@ -4,7 +4,6 @@ import cn.axzo.workflow.common.model.request.bpmn.activity.BpmnActivityTimeoutCa import cn.axzo.workflow.common.model.request.bpmn.activity.BpmnActivityTimeoutTriggerDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnActivitySetAssigneeDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnActivityTriggerDTO; -import org.flowable.job.service.impl.persistence.entity.JobEntity; /** * 流程活动的 Service diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/ExtAxBpmnFormRelationService.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/ExtAxBpmnFormRelationService.java index c39cd1488..b9277dd9a 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/ExtAxBpmnFormRelationService.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/ExtAxBpmnFormRelationService.java @@ -4,7 +4,6 @@ import cn.axzo.workflow.common.model.dto.BpmnFormRelationCreateDTO; import cn.axzo.workflow.common.model.dto.BpmnFormRelationSearchDTO; import cn.axzo.workflow.common.model.response.BpmPageResult; import cn.axzo.workflow.core.repository.entity.ExtAxBpmnFormRelation; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.util.List; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/FormCoreService.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/FormCoreService.java index 8f4d56331..2729776e5 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/FormCoreService.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/FormCoreService.java @@ -1,10 +1,8 @@ package cn.axzo.workflow.core.service; import cn.axzo.workflow.common.model.dto.BpmnFormRelationSearchDTO; -import cn.axzo.workflow.common.model.request.form.definition.FormDefinitionSearchDTO; import cn.axzo.workflow.common.model.request.form.definition.StartFormSearchDTO; import cn.axzo.workflow.common.model.request.form.instance.FormDetailDTO; -import cn.axzo.workflow.common.model.request.form.instance.FormInstanceSearchDTO; import cn.axzo.workflow.common.model.response.form.FormVO; import cn.axzo.workflow.common.model.response.form.definition.FormDefinitionVO; import cn.axzo.workflow.common.model.response.form.instance.FormInstanceVO; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceForEsServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceForEsServiceImpl.java index aaa2a838c..14e991b64 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceForEsServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceForEsServiceImpl.java @@ -11,7 +11,6 @@ import org.flowable.engine.HistoryService; import org.flowable.engine.RepositoryService; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstanceQuery; -import org.flowable.engine.impl.HistoryServiceImpl; import org.flowable.spring.SpringProcessEngineConfiguration; import org.flowable.variable.api.history.HistoricVariableInstance; import org.springframework.context.annotation.Lazy; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java index afd3b8656..c7cab5796 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java @@ -897,7 +897,7 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic NativeHistoricProcessInstanceQuery countSqlQuery = query.sql(countSql(baseQuerySql)); if (StringUtils.hasText(dto.getKey())) { - return new BpmPageResult(historicProcessInstanceConverter.toVos(instances, dto.getKey()), + return new BpmPageResult<>(historicProcessInstanceConverter.toVos(instances, dto.getKey()), countSqlQuery.count()); } else { Set procDefIds = new HashSet<>(); @@ -909,7 +909,7 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic List vos = new ArrayList<>(); instances.forEach(i -> vos.add(historicProcessInstanceConverter.toVo(i, defCategoryMap.getOrDefault(i.getProcessDefinitionId(), "")))); - return new BpmPageResult(vos, countSqlQuery.count()); + return new BpmPageResult<>(vos, countSqlQuery.count()); } } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java index fc38d1ac4..de3ba2c2e 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java @@ -6,20 +6,6 @@ import cn.axzo.workflow.common.enums.BpmnFlowNodeType; import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum; import cn.axzo.workflow.common.exception.WorkflowEngineException; import cn.axzo.workflow.common.model.request.bpmn.BpmnNoticeConf; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnOptionalNodeDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCreateDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAttachmentDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditWithFormDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskBackAuditDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCountersignDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskPageSearchDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskRemindDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskTransferDTO; -import cn.axzo.workflow.common.model.request.bpmn.task.ExtHiTaskSearchDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnNodeBackSystemOperateDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnOptionalNodeDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO; @@ -131,33 +117,6 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; -import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_ID_NOT_EXISTS; -import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_NOT_EXISTS; -import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_TASK_NOT_EXISTS; -import static cn.axzo.workflow.common.code.BpmnTaskRespCode.BACK_NODE_CANNOT_REACHABLE; -import static cn.axzo.workflow.common.code.BpmnTaskRespCode.FIND_TASK_BY_PERSON_ID_ERROR; -import static cn.axzo.workflow.common.code.BpmnTaskRespCode.REACHED_BACKED_MAXIMUM_NUM; -import static cn.axzo.workflow.common.code.BpmnTaskRespCode.TASK_REMIND_ERROR_NOT_EXISTS; -import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_ADVICE; -import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_COMMENT_EXT; -import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_OPERATION_DESC; -import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT; -import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_INFO; -import static cn.axzo.workflow.common.constant.BpmnConstants.MAX_BACKED_OPERATE_COUNT; -import static cn.axzo.workflow.common.constant.BpmnConstants.NO_ASSIGNEE; -import static cn.axzo.workflow.common.constant.BpmnConstants.OLD_INTERNAL_TASK_RELATION_ASSIGNEE_INFO_SNAPSHOT; -import static cn.axzo.workflow.common.constant.BpmnConstants.WORKFLOW_ENGINE_VERSION; -import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_BUSINESS; -import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_CARBON_COPY; -import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_EMPTY; -import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_STARTER; -import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_TASK; -import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED; -import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.BACKED; -import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.DELETED; -import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING; -import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.REJECTED; -import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.valueOfStatus; import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_ID_NOT_EXISTS; import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_NOT_EXISTS; import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_TASK_NOT_EXISTS; @@ -928,6 +887,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { Process process = ProcessDefinitionUtil.getProcess(processInstance.getProcessDefinitionId()); Optional noticeConfig = BpmnMetaParserHelper.getNoticeConfig(process); + @SuppressWarnings("unchecked") List assigners = (List) runtimeService.getVariable(dto.getProcessInstanceId(), INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + dto.getTaskDefinitionKey()); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/ExtAxReModelServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/ExtAxReModelServiceImpl.java index 127fc5204..fed6ae284 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/ExtAxReModelServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/ExtAxReModelServiceImpl.java @@ -19,7 +19,7 @@ import javax.annotation.Resource; import java.util.List; import java.util.Objects; -import static cn.axzo.workflow.common.code.BpmnModelRespCode.MODEL_ID_NOT_EXISTS; +import static cn.axzo.workflow.common.code.BpmnModelRespCode.MODEL_NOT_EXISTS; /** @@ -57,7 +57,7 @@ public class ExtAxReModelServiceImpl implements ExtAxReModelService { public void changeStatus(String modelId, Integer status, ExtModelStateFieldEnum field) { ExtAxReModel reModel = extAxReModelMapper.selectOne(new QueryWrapper().eq("model_id", modelId)); if (Objects.isNull(reModel)) { - throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, reModel.getModelId()); + throw new WorkflowEngineException(MODEL_NOT_EXISTS); } if (Objects.equals(field, ExtModelStateFieldEnum.status)) { reModel.setStatus(status); @@ -78,7 +78,7 @@ public class ExtAxReModelServiceImpl implements ExtAxReModelService { public void printTemplateConfig(PrintTemplateConfigUpsertDTO dto) { ExtAxReModel model = extAxReModelMapper.selectOne(new QueryWrapper().eq("model_id", dto.getModelId())); if (Objects.isNull(model)) { - throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, model.getModelId()); + throw new WorkflowEngineException(MODEL_NOT_EXISTS); } if (Objects.nonNull(dto.getPrintFileName())) { model.setPrintFileName(dto.getPrintFileName()); @@ -102,7 +102,7 @@ public class ExtAxReModelServiceImpl implements ExtAxReModelService { public PrintModelDTO getPrintTemplateConfig(String modelId) { ExtAxReModel model = extAxReModelMapper.selectOne(new QueryWrapper().eq("model_id", modelId)); if (Objects.isNull(model)) { - throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, model.getModelId()); + throw new WorkflowEngineException(MODEL_NOT_EXISTS); } return PrintModelDTO.builder() .printFileName(model.getPrintFileName()) diff --git a/workflow-engine-core/src/main/java/org/flowable/engine/impl/cmd/CreateAttachmentCmd.java b/workflow-engine-core/src/main/java/org/flowable/engine/impl/cmd/CreateAttachmentCmd.java index 1ecf55d23..debe1e8ff 100644 --- a/workflow-engine-core/src/main/java/org/flowable/engine/impl/cmd/CreateAttachmentCmd.java +++ b/workflow-engine-core/src/main/java/org/flowable/engine/impl/cmd/CreateAttachmentCmd.java @@ -2,13 +2,11 @@ package org.flowable.engine.impl.cmd; import cn.axzo.workflow.core.engine.cmd.AbstractCommand; import com.alibaba.fastjson.JSON; -import liquibase.pro.packaged.M; import org.flowable.common.engine.api.FlowableException; import org.flowable.common.engine.api.FlowableObjectNotFoundException; import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType; import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher; import org.flowable.common.engine.impl.identity.Authentication; -import org.flowable.common.engine.impl.interceptor.Command; import org.flowable.common.engine.impl.interceptor.CommandContext; import org.flowable.common.engine.impl.persistence.entity.ByteArrayEntity; import org.flowable.common.engine.impl.util.IoUtil; diff --git a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/FormInstanceService.java b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/FormInstanceService.java index 5b9164182..de4745766 100644 --- a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/FormInstanceService.java +++ b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/FormInstanceService.java @@ -4,7 +4,6 @@ package cn.axzo.workflow.form.service; import cn.axzo.workflow.common.model.request.form.instance.FormContentUpdateDTO; import cn.axzo.workflow.common.model.request.form.instance.FormInstanceSearchDTO; import cn.axzo.workflow.common.model.response.form.instance.FormInstanceVO; -import org.flowable.form.api.FormInstanceInfo; /** * 表单实例相关接口 diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/FlowableOptimisticLockingExceptionHandlerAdvice.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/FlowableOptimisticLockingExceptionHandlerAdvice.java index 841a2d04e..6f97e8c35 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/FlowableOptimisticLockingExceptionHandlerAdvice.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/FlowableOptimisticLockingExceptionHandlerAdvice.java @@ -9,8 +9,6 @@ import org.flowable.common.engine.api.FlowableOptimisticLockingException; import org.flowable.common.engine.impl.interceptor.CommandContext; import org.springframework.stereotype.Component; -import static cn.axzo.framework.domain.web.code.BaseCode.UNAVAILABLE_FOR_LEGAL_REASONS; - /** * 降级 FlowableOptimisticLockingException 异常,该异常在 Flowable 框架中是可以忽略的 * diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/util/ShellUtil.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/util/ShellUtil.java index 08cb90329..07834b6c3 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/util/ShellUtil.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/util/ShellUtil.java @@ -1,7 +1,6 @@ package cn.axzo.workflow.server.common.util; import cn.hutool.core.date.DateUtil; -import liquibase.pro.packaged.D; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorSpecifiedTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorSpecifiedTaskAssigneeSelector.java index f8f3a7ec2..ef855866d 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorSpecifiedTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorSpecifiedTaskAssigneeSelector.java @@ -73,6 +73,7 @@ public class BasedInitiatorSpecifiedTaskAssigneeSelector extends AbstractBpmnTas */ private void populateAssigneeByInitiatorSpecify(List assigners, FlowElement flowElement, DelegateExecution execution) { String processInstanceId = execution.getProcessInstanceId(); + @SuppressWarnings("unchecked") Map> initiatorSpecifyMap = runtimeService.getVariable(processInstanceId, INITIATOR_SPECIFY, Map.class); if (CollectionUtils.isEmpty(initiatorSpecifyMap)) { return; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedRoleTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedRoleTaskAssigneeSelector.java index 1dfd271e7..cfe862ae1 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedRoleTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedRoleTaskAssigneeSelector.java @@ -13,7 +13,6 @@ import cn.hutool.core.collection.CollUtil; import lombok.extern.slf4j.Slf4j; import org.flowable.bpmn.model.FlowElement; import org.flowable.engine.delegate.DelegateExecution; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java index 0e802eb94..f4b903e42 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java @@ -363,6 +363,7 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener< historyService.createHistoricTaskInstanceQuery().taskId(event.getTaskId()).list(); if (!CollectionUtils.isEmpty(tasks)) { // 应该只有 1 个, 但是为了防止有多个, 这里只取第一个 + @SuppressWarnings("unchecked") List assigners = (List) originVariables.getOrDefault(INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + tasks.get(0).getTaskDefinitionKey(), Collections.emptyList()); assigners.stream().filter(i -> Objects.equals(i.buildAssigneeId(), tasks.get(0).getAssignee())).findAny() diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/SyncToEsProcessEventListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/SyncToEsProcessEventListener.java index 04261797c..49ac875af 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/SyncToEsProcessEventListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/SyncToEsProcessEventListener.java @@ -6,14 +6,12 @@ import cn.axzo.workflow.common.enums.ElasticSearchEventEnum; import cn.axzo.workflow.core.common.context.ProcessOperationContext; import cn.axzo.workflow.core.listener.AbstractBpmnEventListener; import cn.axzo.workflow.core.listener.BpmnProcessEventListener; -import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent; import org.flowable.engine.delegate.event.FlowableCancelledEvent; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Scope; import org.springframework.core.Ordered; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.annotation.Resource; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/MessagePushTaskEvent_103_Listener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/MessagePushTaskEvent_103_Listener.java index 7cd9cba97..66d3bb2f1 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/MessagePushTaskEvent_103_Listener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/MessagePushTaskEvent_103_Listener.java @@ -128,6 +128,7 @@ public class MessagePushTaskEvent_103_Listener extends AbstractBpmnEventListener .processInstanceId(delegateTask.getProcessInstanceId()) .includeProcessVariables() .singleResult()); + @SuppressWarnings("unchecked") List assigners = (List) processInstance.getProcessVariables() .getOrDefault(INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + delegateTask.getTaskDefinitionKey(), Collections.emptyList()); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/SnapshotBpmnTaskEvent_100_Listener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/SnapshotBpmnTaskEvent_100_Listener.java index 8e86bb6a9..43d072d33 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/SnapshotBpmnTaskEvent_100_Listener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/SnapshotBpmnTaskEvent_100_Listener.java @@ -46,6 +46,7 @@ public class SnapshotBpmnTaskEvent_100_Listener extends AbstractBpmnEventListene @Override public void onAssigned(DelegateTask delegateTask) { log.info("SnapshotBpmnTaskTaskEventListener#onAssigned...{}, processInstanceId:{}", delegateTask.getTaskDefinitionKey(), delegateTask.getProcessInstanceId()); + @SuppressWarnings("unchecked") List assignerList = runtimeService.getVariable(delegateTask.getProcessInstanceId(), INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + delegateTask.getTaskDefinitionKey(), List.class); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/SyncToEsTaskEvent_104_Listener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/SyncToEsTaskEvent_104_Listener.java index c8f49d18c..377a5fdf3 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/SyncToEsTaskEvent_104_Listener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/task/SyncToEsTaskEvent_104_Listener.java @@ -11,7 +11,6 @@ import org.flowable.task.service.delegate.DelegateTask; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Scope; import org.springframework.core.Ordered; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.annotation.Resource; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessDefinitionController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessDefinitionController.java index 80b3e5fff..7b15bcfd5 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessDefinitionController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessDefinitionController.java @@ -215,6 +215,7 @@ public class BpmnProcessDefinitionController implements ProcessDefinitionApi { updateDTO.setTenantId(modelDetail.getTenantId()); updateDTO.setJsonModel(processDefinition.getJsonModel()); + @SuppressWarnings("unchecked") Map metaInfoMap = JSON.parseObject(modelDetail.getMetaInfo(), Map.class); updateDTO.setDescription(metaInfoMap.get(MODEL_DESCRIPTION)); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/mq/inside/SelfBoradcastRocketConfiguration.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/mq/inside/SelfBoradcastRocketConfiguration.java index 77969ded1..f8f0bac78 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/mq/inside/SelfBoradcastRocketConfiguration.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/mq/inside/SelfBoradcastRocketConfiguration.java @@ -3,12 +3,7 @@ package cn.axzo.workflow.server.mq.inside; import cn.axzo.framework.rocketmq.BaseListener; import cn.axzo.framework.rocketmq.EventConsumer; import org.apache.rocketmq.common.message.MessageExt; -import org.apache.rocketmq.spring.annotation.ConsumeMode; -import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.core.RocketMQListener; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Configuration; -import org.springframework.stereotype.Component; import javax.annotation.Resource; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/mq/inside/consumer/ElasticSearchSyncListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/mq/inside/consumer/ElasticSearchSyncListener.java index deca64a9d..4290b7015 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/mq/inside/consumer/ElasticSearchSyncListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/mq/inside/consumer/ElasticSearchSyncListener.java @@ -10,12 +10,9 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.HistoryService; import org.flowable.engine.history.HistoricProcessInstance; -import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl; -import org.flowable.engine.impl.util.CommandContextUtil; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; -import javax.annotation.Resource; import java.util.List; /** From c253c226ecea350402de26771f42433a14b047db Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Wed, 23 Apr 2025 15:51:40 +0800 Subject: [PATCH 05/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E5=86=85=E9=83=A8=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E6=8A=A5=E9=94=99=E5=BC=82=E5=B8=B8=E7=9A=84=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bpmn/print/PrintFieldQueryDTO.java | 7 +++ .../web/bpmn/BpmnProcessModelController.java | 2 +- .../web/manage/PrintAdminController.java | 50 ++++++++++--------- 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/print/PrintFieldQueryDTO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/print/PrintFieldQueryDTO.java index 0400fcde4..3775f63e5 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/print/PrintFieldQueryDTO.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/print/PrintFieldQueryDTO.java @@ -34,4 +34,11 @@ public class PrintFieldQueryDTO { */ @ApiModelProperty(value = "租户 ID") private String tenantId; + + /** + * 是否抛出内部异常 + */ + @ApiModelProperty(value = "是否报错内部异常") + @Builder.Default + private Boolean throwException = true; } diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java index b6733f66c..96ee695ed 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java @@ -355,7 +355,7 @@ public class BpmnProcessModelController implements ProcessModelApi { public CommonResponse getPrintTemplateConfig(@Validated @RequestBody PrintTemplateConfigQueryDTO dto) { log.info("获取打印模板配置内容"); if (!StringUtils.hasText(dto.getModelId()) && !StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getProcessDefinitionKey())) { - if (!StringUtils.hasText(dto.getProcessDefinitionKey()) || !StringUtils.hasText(dto.getTenantId())) { + if (!StringUtils.hasText(dto.getProcessDefinitionKey()) && !StringUtils.hasText(dto.getTenantId())) { throw new WorkflowEngineException(ILLEGAL_PARAM_ERROR, "processDefinitionKey 与 tenantId 不能同时为空"); } throw new WorkflowEngineException(ILLEGAL_PARAM_ERROR, "模型 ID 、实例 ID 和业务 ID 不能同时为空"); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/manage/PrintAdminController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/manage/PrintAdminController.java index 91d74ec5f..9f6400c3c 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/manage/PrintAdminController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/manage/PrintAdminController.java @@ -117,33 +117,35 @@ public class PrintAdminController implements PrintAdminApi { FormInfo formModel; try { formModel = formRepositoryService.getFormModelByKey(dto.getProcessDefinitionKey(), dto.getTenantId(), false); + // 表单字段 + List formFields = ((SimpleFormModel) formModel.getFormModel()).getFields(); + formFields.forEach(formField -> { + FormContainer formContainer = (FormContainer) formField; + printFields.addAll(formContainer.getFields().get(0).stream().map(field -> { + PrintFieldDTO printFieldDTO = new PrintFieldDTO() + .setName(field.getName()) + .setCode(field.getId()) + .setFieldCategoryType(form) + .setFieldFormType(field.getType()); + if (field instanceof FormContainer) { + FormContainer container = (FormContainer) field; + printFieldDTO.setAttributes(container.getFields().get(0) + .stream().map(subField -> new FieldAttributeDTO() + .setCode(subField.getId()) + .setFieldFormType(subField.getType()) + .setName(subField.getName())) + .collect(Collectors.toList())); + } + return printFieldDTO; + } + ).collect(Collectors.toList())); + }); } catch (FlowableObjectNotFoundException e) { log.warn("can't found form model"); - throw new WorkflowEngineException(FORM_MODEL_NOT_EXISTS); + if (Objects.equals(Boolean.TRUE, dto.getThrowException())) { + throw new WorkflowEngineException(FORM_MODEL_NOT_EXISTS); + } } - // 表单字段 - List formFields = ((SimpleFormModel) formModel.getFormModel()).getFields(); - formFields.forEach(formField -> { - FormContainer formContainer = (FormContainer) formField; - printFields.addAll(formContainer.getFields().get(0).stream().map(field -> { - PrintFieldDTO printFieldDTO = new PrintFieldDTO() - .setName(field.getName()) - .setCode(field.getId()) - .setFieldCategoryType(form) - .setFieldFormType(field.getType()); - if (field instanceof FormContainer) { - FormContainer container = (FormContainer) field; - printFieldDTO.setAttributes(container.getFields().get(0) - .stream().map(subField -> new FieldAttributeDTO() - .setCode(subField.getId()) - .setFieldFormType(subField.getType()) - .setName(subField.getName())) - .collect(Collectors.toList())); - } - return printFieldDTO; - } - ).collect(Collectors.toList())); - }); // 生成固定的系统字段 generateSystemFields(printFields, dto.getProcessDefinitionKey(), dto.getTenantId()); From a13ed8c709038397c0ae3ac442d2b4efcc6dcea7 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Wed, 23 Apr 2025 16:59:36 +0800 Subject: [PATCH 06/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E5=86=85=E9=83=A8=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E6=8A=A5=E9=94=99=E5=BC=82=E5=B8=B8=E7=9A=84=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/web/manage/PrintAdminController.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/manage/PrintAdminController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/manage/PrintAdminController.java index 9f6400c3c..b062ad2f2 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/manage/PrintAdminController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/manage/PrintAdminController.java @@ -148,16 +148,13 @@ public class PrintAdminController implements PrintAdminApi { } // 生成固定的系统字段 - generateSystemFields(printFields, dto.getProcessDefinitionKey(), dto.getTenantId()); + printFields.addAll(generateSystemFields(dto.getProcessDefinitionKey(), dto.getTenantId())); return success(printFields); } - private List generateSystemFields(List printFields, String processDefinitionKey, String tenantId) { - if (CollectionUtils.isEmpty(printFields)) { - printFields = new ArrayList<>(); - } - + private List generateSystemFields(String processDefinitionKey, String tenantId) { + List printFields = new ArrayList<>(); printFields.add(new PrintFieldDTO().setName("业务名称").setCode("processDefinitionKey").setFieldCategoryType(system).setFieldFormType("input")); printFields.add(new PrintFieldDTO().setName("审批编号").setCode("processInstanceId").setFieldCategoryType(system).setFieldFormType("input")); printFields.add(new PrintFieldDTO().setName("发起时间").setCode("startTime").setFieldCategoryType(system).setFieldFormType("input")); From 2b42cee0120ece3e33da0da6d9cfda980d1f37ab Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Fri, 25 Apr 2025 10:49:25 +0800 Subject: [PATCH 07/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E8=A7=A3=E6=9E=90=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/engine/cmd/CustomGetFormInstanceModelCmd.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetFormInstanceModelCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetFormInstanceModelCmd.java index be81f3f89..1fe93f2db 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetFormInstanceModelCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomGetFormInstanceModelCmd.java @@ -269,7 +269,7 @@ public class CustomGetFormInstanceModelCmd extends GetFormInstanceModelCmd { // explicitly storing them as an array so they're serialized properly if (variables.containsKey(field.getId())) { String uploadValue = (String) variables.get(field.getId()); - if (uploadValue != null) { + if (StringUtils.hasText(uploadValue)) { try { List uploadFiles = formEngineConfiguration.getObjectMapper() .readValue(uploadValue, new TypeReference>() { @@ -285,7 +285,7 @@ public class CustomGetFormInstanceModelCmd extends GetFormInstanceModelCmd { || FORM_FIELD_TYPE_CHANGE_SIGNATURE_ORDER.equals(field.getType())) { if (variables.containsKey(field.getId())) { String listValue = (String) variables.get(field.getId()); - if (listValue != null) { + if (StringUtils.hasText(listValue)) { try { List> idMap = formEngineConfiguration.getObjectMapper() .readValue(listValue, new TypeReference>>() { @@ -298,7 +298,7 @@ public class CustomGetFormInstanceModelCmd extends GetFormInstanceModelCmd { } } else if (FORM_FIELD_TYPE_CUSTOM_COMPONENT.equals(field.getType())) { String listJson = (String) variables.get(field.getId()); - if (listJson != null) { + if (StringUtils.hasText(listJson)) { ObjectMapper objectMapper = formEngineConfiguration.getObjectMapper(); try { List rows = objectMapper.readValue(listJson, new TypeReference>() { @@ -318,7 +318,7 @@ public class CustomGetFormInstanceModelCmd extends GetFormInstanceModelCmd { try { String updateValueJson = objectMapper.writeValueAsString(rows.get(0).get(sf.getId())); - if (updateValueJson != null) { + if (StringUtils.hasText(updateValueJson)) { List uploadFiles = formEngineConfiguration.getObjectMapper() .readValue(updateValueJson, new TypeReference>() { }); @@ -354,7 +354,7 @@ public class CustomGetFormInstanceModelCmd extends GetFormInstanceModelCmd { if (rowMap.containsKey(sf.getId())) { try { String updateValueJson = objectMapper.writeValueAsString(rowMap.get(sf.getId())); - if (updateValueJson != null) { + if (StringUtils.hasText(updateValueJson)) { List uploadFiles = formEngineConfiguration.getObjectMapper() .readValue(updateValueJson, new TypeReference>() { }); From cd2a1b10b766cb4ab6f15067b2d73a451b5a937b Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Fri, 25 Apr 2025 11:28:33 +0800 Subject: [PATCH 08/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E8=A7=A3=E6=9E=90=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/definition/StartFormSearchDTO.java | 3 ++ .../service/impl/FormCoreServiceImpl.java | 44 ++++++++++--------- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/form/definition/StartFormSearchDTO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/form/definition/StartFormSearchDTO.java index 27a7698ff..62f4eac0e 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/form/definition/StartFormSearchDTO.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/form/definition/StartFormSearchDTO.java @@ -35,4 +35,7 @@ public class StartFormSearchDTO { */ @ApiModelProperty(value = "是否显示原始的默认值", hidden = true, notes = "如果为 true 则将默认值中的 ${} 变量不进行替换") private Boolean showOriginDefaultValue = false; + + @ApiModelProperty(value = "是否抛出内部异常") + private Boolean throwException = true; } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/FormCoreServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/FormCoreServiceImpl.java index 33f30cdfb..03d91e595 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/FormCoreServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/FormCoreServiceImpl.java @@ -38,6 +38,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -94,29 +95,32 @@ public class FormCoreServiceImpl implements FormCoreService { FormInfo formModel; try { formModel = formRepositoryService.getFormModelByKey(dto.getKey(), dto.getTenantId(), true); + BpmnProcessDefinitionVO definitionVO = bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(dto.getKey(), dto.getTenantId()); + CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor(); + BpmnModel bpmnModel = commandExecutor.execute(new GetBpmnModelCmd(definitionVO.getId())); + BpmnMetaParserHelper.getFormFieldPermissionConf(bpmnModel.getFlowElement(NODE_STARTER.getType())) + .ifPresent(permission -> { + if (formModel.getFormModel() instanceof SimpleFormModel) { + SimpleFormModel simpleFormModel = (SimpleFormModel) formModel.getFormModel(); + FormHelper.populateFormModel(simpleFormModel, permission, new HashMap<>(), dto.getShowOriginDefaultValue()); + } + }); + FormDefinitionVO formDefinitionVO = new FormDefinitionVO(); + formDefinitionVO.setFormDefinitionId(formModel.getId()); + formDefinitionVO.setName(formModel.getName()); + formDefinitionVO.setKey(formModel.getKey()); + formDefinitionVO.setVersion(formModel.getVersion()); + formDefinitionVO.setTenantId(dto.getTenantId()); + List fields = ((SimpleFormModel) formModel.getFormModel()).getFields(); + formDefinitionVO.setFields(formFieldConverter.toVos(fields)); + return formDefinitionVO; } catch (FlowableObjectNotFoundException e) { log.warn("can't found form model"); - throw new WorkflowEngineException(FORM_MODEL_NOT_EXISTS); + if (Objects.equals(Boolean.TRUE, dto.getThrowException())) { + throw new WorkflowEngineException(FORM_MODEL_NOT_EXISTS); + } } - BpmnProcessDefinitionVO definitionVO = bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(dto.getKey(), dto.getTenantId()); - CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor(); - BpmnModel bpmnModel = commandExecutor.execute(new GetBpmnModelCmd(definitionVO.getId())); - BpmnMetaParserHelper.getFormFieldPermissionConf(bpmnModel.getFlowElement(NODE_STARTER.getType())) - .ifPresent(permission -> { - if (formModel.getFormModel() instanceof SimpleFormModel) { - SimpleFormModel simpleFormModel = (SimpleFormModel) formModel.getFormModel(); - FormHelper.populateFormModel(simpleFormModel, permission, new HashMap<>(), dto.getShowOriginDefaultValue()); - } - }); - FormDefinitionVO formDefinitionVO = new FormDefinitionVO(); - formDefinitionVO.setFormDefinitionId(formModel.getId()); - formDefinitionVO.setName(formModel.getName()); - formDefinitionVO.setKey(formModel.getKey()); - formDefinitionVO.setVersion(formModel.getVersion()); - formDefinitionVO.setTenantId(dto.getTenantId()); - List fields = ((SimpleFormModel) formModel.getFormModel()).getFields(); - formDefinitionVO.setFields(formFieldConverter.toVos(fields)); - return formDefinitionVO; + return null; } @Override From 85d74784b2e8d7486ee30c9ebab647d4bf91201e Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Fri, 25 Apr 2025 12:41:29 +0800 Subject: [PATCH 09/15] =?UTF-8?q?feat(REQ-3769)=20-=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=A8=A1=E5=9E=8B=E6=89=93=E5=8D=B0=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/controller/web/bpmn/BpmnProcessModelController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java index 96ee695ed..e4056bc2e 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessModelController.java @@ -363,7 +363,7 @@ public class BpmnProcessModelController implements ProcessModelApi { if (!StringUtils.hasText(dto.getModelId()) && StringUtils.hasText(dto.getProcessInstanceId())) { dto.setModelId(bpmnProcessInstanceService.getModelIdByProcessInstanceId(dto.getProcessInstanceId())); } - if (StringUtils.hasText(dto.getProcessDefinitionKey()) && StringUtils.hasText(dto.getTenantId())) { + if (StringUtils.hasText(dto.getProcessDefinitionKey())) { BpmnProcessDefinitionVO definition = bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(dto.getProcessDefinitionKey(), dto.getTenantId()); CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor(); Model model = commandExecutor.execute(new CustomGetModelByDefinitionIdCmd(definition.getId())); From 852bafded12abce9781920c3b5cab5ed0cd31979 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sun, 27 Apr 2025 15:35:26 +0800 Subject: [PATCH 10/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=A8=A1=E5=9E=8B=E5=AE=9A=E4=B9=89=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/workflow/form/service/converter/ConversionUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java index 6e478eec7..afcd6ca7a 100644 --- a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java +++ b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java @@ -24,7 +24,7 @@ public class ConversionUtils { return stringList; } else { // 如果输入不是列表类型,返回空列表或进行其他处理 - return new ArrayList<>(); + return null; } } } From b705b992e66b41f76c988580fc72450b29762552 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 28 Apr 2025 15:13:11 +0800 Subject: [PATCH 11/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=20value=20=E7=9A=84=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/service/converter/ConversionUtils.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java index afcd6ca7a..853be865e 100644 --- a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java +++ b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java @@ -6,13 +6,19 @@ package cn.axzo.workflow.form.service.converter; * @author wangli * @since 2024-11-11 13:42 */ + +import org.springframework.util.CollectionUtils; + import java.util.ArrayList; import java.util.List; public class ConversionUtils { - public static List convertObjectToList(Object obj) { + public static Object convertObjectToList(Object obj) { if (obj instanceof List) { List list = (List) obj; + if (CollectionUtils.isEmpty(list)) { + return null; + } List stringList = new ArrayList<>(); for (Object item : list) { if (item instanceof String) { @@ -24,7 +30,7 @@ public class ConversionUtils { return stringList; } else { // 如果输入不是列表类型,返回空列表或进行其他处理 - return null; + return obj; } } } From a2ba80fbc1c186b0f7cabe4b134378a9dad6754d Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 28 Apr 2025 15:50:47 +0800 Subject: [PATCH 12/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=20value=20=E7=9A=84=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/service/converter/ConversionUtils.java | 12 ++++++++++-- .../form/service/converter/FormFieldConverter.java | 4 ++-- .../service/converter/FormInstanceConverter.java | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java index 853be865e..1990c1dff 100644 --- a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java +++ b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java @@ -8,12 +8,13 @@ package cn.axzo.workflow.form.service.converter; */ import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; public class ConversionUtils { - public static Object convertObjectToList(Object obj) { + public static Object convertObject(Object obj) { if (obj instanceof List) { List list = (List) obj; if (CollectionUtils.isEmpty(list)) { @@ -28,9 +29,16 @@ public class ConversionUtils { } } return stringList; - } else { + } else if (obj instanceof String) { + if (StringUtils.pathEquals(obj.toString(), "[]")) { + return null; + } else if (StringUtils.hasText(obj.toString())) { + return ((String) obj).replace("[", "").replace("]", ""); + } // 如果输入不是列表类型,返回空列表或进行其他处理 return obj; + } else { + return obj; } } } diff --git a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/FormFieldConverter.java b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/FormFieldConverter.java index 09137620d..e9d46e2fa 100644 --- a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/FormFieldConverter.java +++ b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/FormFieldConverter.java @@ -29,7 +29,7 @@ public interface FormFieldConverter extends EntityConverter Date: Mon, 28 Apr 2025 15:51:19 +0800 Subject: [PATCH 13/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=20value=20=E7=9A=84=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/workflow/form/service/converter/ConversionUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java index 1990c1dff..675068304 100644 --- a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java +++ b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java @@ -32,7 +32,7 @@ public class ConversionUtils { } else if (obj instanceof String) { if (StringUtils.pathEquals(obj.toString(), "[]")) { return null; - } else if (StringUtils.hasText(obj.toString())) { + } else if (StringUtils.hasText(obj.toString()) && ((String) obj).startsWith("[") && ((String) obj).endsWith("]")) { return ((String) obj).replace("[", "").replace("]", ""); } // 如果输入不是列表类型,返回空列表或进行其他处理 From 298d3518b72f37910347702f2afe7fb24682e679 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Tue, 29 Apr 2025 17:15:37 +0800 Subject: [PATCH 14/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E8=A1=A8=E5=8D=95=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/service/converter/ConversionUtils.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java index 675068304..62e539593 100644 --- a/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java +++ b/workflow-engine-form/src/main/java/cn/axzo/workflow/form/service/converter/ConversionUtils.java @@ -10,7 +10,6 @@ package cn.axzo.workflow.form.service.converter; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.ArrayList; import java.util.List; public class ConversionUtils { @@ -20,15 +19,7 @@ public class ConversionUtils { if (CollectionUtils.isEmpty(list)) { return null; } - List stringList = new ArrayList<>(); - for (Object item : list) { - if (item instanceof String) { - stringList.add((String) item); - } else { - // 处理非字符串类型的情况,可以选择忽略、抛出异常或进行其他处理 - } - } - return stringList; + return list; } else if (obj instanceof String) { if (StringUtils.pathEquals(obj.toString(), "[]")) { return null; From 8af520ec5d702ec70baa4d10a24bb0a5826430b5 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Wed, 30 Apr 2025 09:48:25 +0800 Subject: [PATCH 15/15] =?UTF-8?q?feat(REQ-3982)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E4=B8=8B=E5=BC=82=E5=B8=B8=E7=B1=BB=E7=9A=84=E7=BB=A7=E6=89=BF?= =?UTF-8?q?=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/exception/WorkflowEngineStarterException.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workflow-engine-spring-boot-starter/src/main/java/cn/axzo/workflow/starter/common/exception/WorkflowEngineStarterException.java b/workflow-engine-spring-boot-starter/src/main/java/cn/axzo/workflow/starter/common/exception/WorkflowEngineStarterException.java index cf4244523..25e7497dd 100644 --- a/workflow-engine-spring-boot-starter/src/main/java/cn/axzo/workflow/starter/common/exception/WorkflowEngineStarterException.java +++ b/workflow-engine-spring-boot-starter/src/main/java/cn/axzo/workflow/starter/common/exception/WorkflowEngineStarterException.java @@ -1,12 +1,14 @@ package cn.axzo.workflow.starter.common.exception; +import cn.axzo.framework.domain.ServiceException; + /** * 流程引擎 starter 的异常类 * * @author wangli * @since 2024/5/21 17:57 */ -public class WorkflowEngineStarterException extends RuntimeException { +public class WorkflowEngineStarterException extends ServiceException { public WorkflowEngineStarterException(Throwable cause) { super(cause);