diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessInstanceApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessInstanceApi.java index c34887536..333d79200 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessInstanceApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessInstanceApi.java @@ -109,7 +109,7 @@ public interface ProcessInstanceApi { * @param dtos * @return */ - @DeleteMapping("/api/process/instance/batchAbort") + @DeleteMapping("/api/process/instance/batch/abort") CommonResponse>> batchAbortProcessInstance(@Validated @RequestBody List dtos); /** diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessTaskApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessTaskApi.java index 18f2f5d9a..08a79ba42 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessTaskApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessTaskApi.java @@ -97,7 +97,7 @@ public interface ProcessTaskApi { * @param dtos * @return */ - @PostMapping("/api/process/task/batchApprove") + @PostMapping("/api/process/task/batch/approve") CommonResponse>> batchApproveTask(@Validated @RequestBody List dtos); /** @@ -118,7 +118,7 @@ public interface ProcessTaskApi { * @param dtos 批量请求参数 * @return */ - @PostMapping("/api/process/task/batchReject") + @PostMapping("/api/process/task/batch/reject") CommonResponse>> batchRejectTask(@Validated @RequestBody List dtos); /** @@ -138,7 +138,7 @@ public interface ProcessTaskApi { * @return */ @Operation(summary = "批量修改审批任务的审批人") - @PostMapping("/api/process/task/batchTransfer") + @PostMapping("/api/process/task/batch/transfer") CommonResponse>> batchTransferTask(@Validated @RequestBody List dtos); /** @@ -217,7 +217,7 @@ public interface ProcessTaskApi { * @return */ @Operation(summary = "根据实例 ID列表 和自然人 ID 查询对应待处理的任务 ID") - @GetMapping("/api/process/task/batchFind") + @GetMapping("/api/process/task/batch/find") CommonResponse> findTaskIdByInstanceIdsAndPersonId(@RequestParam(required = false) @NotNull(message = "流程实例 ID列表 不能为空") List processInstanceId, @RequestParam(required = false) @NotBlank(message = "自然人 ID 不能为空") String personId); } diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnButtonMetaInfo.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnButtonMetaInfo.java index b0fe32358..3bd00b61d 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnButtonMetaInfo.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnButtonMetaInfo.java @@ -18,7 +18,7 @@ public class BpmnButtonMetaInfo implements Serializable { /** * 按钮顺序 */ - private Integer order; + private Integer order = 0; /** * 按钮唯一标识 diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/bpmn/BatchOperationItemResultVO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/bpmn/BatchOperationItemResultVO.java new file mode 100644 index 000000000..0de374f4b --- /dev/null +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/bpmn/BatchOperationItemResultVO.java @@ -0,0 +1,36 @@ +package cn.axzo.workflow.common.model.response.bpmn; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * TODO + * + * @author wangli + * @since 2024/5/13 11:28 + */ +@Data +@ApiModel("批量处理每一项明细的响应模型") +public class BatchOperationItemResultVO { + + /** + * 流程实例 ID + */ + @ApiModelProperty("流程实例 ID") + private String processInstanceId; + + /** + * 该流程实例处理过程中是否发生错误 + */ + @ApiModelProperty("该流程实例处理过程中是否发生错误") + private Boolean hasError; + + /** + * 具体的错误信息 + */ + @ApiModelProperty("具体的错误信息") + private String errorMessage; + +} + diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/bpmn/BatchOperationResultVO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/bpmn/BatchOperationResultVO.java new file mode 100644 index 000000000..cf82805f8 --- /dev/null +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/response/bpmn/BatchOperationResultVO.java @@ -0,0 +1,37 @@ +package cn.axzo.workflow.common.model.response.bpmn; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * TODO + * + * @author wangli + * @since 2024/5/13 11:28 + */ +@Data +@ApiModel("批量处理结果响应模型") +public class BatchOperationResultVO { + + /** + * 请求数量 + */ + @ApiModelProperty(value = "请求数量") + private Integer requestCount; + + /** + * 成功数量 + */ + @ApiModelProperty(value = "成功数量") + private Integer successCount; + + /** + * 批量操作处理详情 + */ + @ApiModelProperty(value = "批量操作处理详情") + private List details; +} + diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java index 4747d8425..8be8078d4 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java @@ -305,9 +305,7 @@ public final class BpmnMetaParserHelper { buttonMetaInfo.setBtnName(i.getAttributeValue(null, ELEMENT_ATTRIBUTE_NAME)); buttonMetaInfo.setChecked(Boolean.valueOf(i.getAttributeValue(null, ELEMENT_ATTRIBUTE_CHECKED))); buttonMetaInfo.setType(i.getAttributeValue(null, ELEMENT_ATTRIBUTE_TYPE)); - //如果order不是字符类型或者为空,设置默认值0 - String order = i.getAttributeValue(null, ELEMENT_ATTRIBUTE_ORDER); - buttonMetaInfo.setOrder(org.apache.commons.lang3.StringUtils.isNumeric(order) ? Integer.parseInt(order) : 0); + buttonMetaInfo.setOrder(Integer.valueOf(i.getAttributeValue(null, ELEMENT_ATTRIBUTE_ORDER))); buttonMetaInfo.setDisabled(Boolean.valueOf(i.getAttributeValue(null, ELEMENT_ATTRIBUTE_DISABLED))); buttonMetaInfos.add(buttonMetaInfo); }); 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 d99c226ea..4a52d8361 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 @@ -77,6 +77,7 @@ import org.flowable.form.api.FormInfo; import org.flowable.spring.SpringProcessEngineConfiguration; import org.flowable.task.api.Task; import org.flowable.variable.api.history.HistoricVariableInstance; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -172,6 +173,9 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic private BpmnHistoricTaskInstanceConverter historicTaskInstanceConverter; @Resource private String serviceVersion; + @Resource + @Lazy + private BpmnProcessInstanceService bpmnProcessInstanceService; @Override public HistoricProcessInstance getProcessInstanceByBusinessKey(String businessKey, @Nullable String tenantId, @@ -393,7 +397,7 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic dtos.forEach(dto -> { Pair pair; try { - abortProcessInstance(dto); + bpmnProcessInstanceService.abortProcessInstance(dto); pair = Pair.create(true, null); } catch (Exception e) { pair = Pair.create(false, e.getMessage()); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java index 14b52f6cf..d50dc4a77 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java @@ -151,7 +151,7 @@ public class BpmnProcessInstanceController implements ProcessInstanceApi { */ @Operation(summary = "批量中止流程实例") @Override - @DeleteMapping("/batchAbort") + @DeleteMapping("/batch/abort") @RepeatSubmit public CommonResponse>> batchAbortProcessInstance(@Validated @RequestBody List dtos) { log.info("批量中止流程实例abortProcessInstants===>>>参数:{}", JSONUtil.toJsonStr(dtos)); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java index e62dad1b4..b2483551b 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java @@ -108,7 +108,7 @@ public class BpmnProcessTaskController implements ProcessTaskApi { * 批量同意 */ @Operation(summary = "批量同意") - @PostMapping("/batchApprove") + @PostMapping("/batch/approve") @Override @RepeatSubmit public CommonResponse>> batchApproveTask(@Validated @RequestBody List dtos) { @@ -134,7 +134,7 @@ public class BpmnProcessTaskController implements ProcessTaskApi { * 批量驳回 */ @Operation(summary = "批量驳回任务") - @PostMapping("/batchReject") + @PostMapping("/batch/reject") @Override @RepeatSubmit public CommonResponse>> batchRejectTask(@Validated @RequestBody List dtos) { @@ -156,7 +156,7 @@ public class BpmnProcessTaskController implements ProcessTaskApi { } @Operation(summary = "批量转交任务") - @PostMapping("/batchTransfer") + @PostMapping("/batch/transfer") @Override @RepeatSubmit public CommonResponse>> batchTransferTask(@Validated @RequestBody List dtos) { @@ -326,7 +326,7 @@ public class BpmnProcessTaskController implements ProcessTaskApi { * @return key为流程实例id,value为对应任务id */ @Operation(summary = "根据实例 ID 和自然人 ID 查询对应待处理的任务 ID") - @GetMapping("/batchFind") + @GetMapping("/batch/find") @Override public CommonResponse> findTaskIdByInstanceIdsAndPersonId(@RequestParam(required = false) @NotBlank(message = "流程实例 ID 不能为空") List processInstanceIds, @RequestParam(required = false) @NotBlank(message = "自然人 ID 不能为空") String personId) {