From c8cc9a9cb436da403adea0d2766f3e6d4ee58d62 Mon Sep 17 00:00:00 2001 From: ranke <213539@qq.com> Date: Thu, 29 Jan 2026 18:07:49 +0800 Subject: [PATCH] =?UTF-8?q?ztcloud-dist=20=E4=B8=AD=20bpm=20=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E5=9B=9E=E6=9D=A5,=E5=8C=85=E5=90=AB=20http://172.16.?= =?UTF-8?q?46.63:31560/index.php=3Fm=3Dtask&f=3Dview&taskID=3D735=20?= =?UTF-8?q?=E5=92=8C=20http://172.16.46.63:31560/index.php=3Fm=3Dtask&f=3D?= =?UTF-8?q?view&taskID=3D552=20=E4=B8=AD=E7=9A=84=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zt-module-bpm/pom.xml | 2 + .../dto/BpmProcessInstanceCreateReqDTO.java | 3 +- .../Dockerfile | 6 +- .../zt-module-bpm-server-app/pom.xml | 49 ++++++++ .../plat/module/bpm/BpmServerApplication.java | 0 .../src/main/resources/application-dev.yaml | 0 .../src/main/resources/application-local.yaml | 0 .../src/main/resources/application.yaml | 0 .../src/main/resources/logback-spring.xml | 9 ++ zt-module-bpm/zt-module-bpm-server/pom.xml | 24 ---- .../druid/pool/DruidPooledStatement.java | 7 +- .../api/task/BpmProcessInstanceApiImpl.java | 3 +- .../vo/model/simple/BpmSimpleModelNodeVO.java | 4 +- .../task/BpmProcessInstanceController.java | 42 +++++++ .../vo/instance/BpmApprovalDetailRespVO.java | 2 +- .../vo/instance/BpmProcessInstanceRespVO.java | 2 +- .../admin/task/vo/task/BpmTaskRespVO.java | 2 +- .../dataobject/definition/BpmCategoryDO.java | 2 +- .../dal/dataobject/definition/BpmFormDO.java | 2 +- .../BpmProcessDefinitionInfoDO.java | 4 +- .../definition/BpmProcessExpressionDO.java | 2 +- .../definition/BpmProcessListenerDO.java | 4 +- .../dataobject/definition/BpmUserGroupDO.java | 4 +- .../bpm/dal/dataobject/oa/BpmOALeaveDO.java | 4 +- .../task/BpmProcessInstanceCopyDO.java | 2 +- .../bpm/dal/redis/BpmProcessIdRedisDAO.java | 3 +- .../candidate/BpmTaskCandidateInvoker.java | 2 +- ...askCandidateApproveUserSelectStrategy.java | 2 +- ...mTaskCandidateStartUserSelectStrategy.java | 2 +- .../BpmTaskCandidateExpressionStrategy.java | 2 +- .../BpmProcessInstanceEventListener.java | 2 +- .../core/listener/BpmTaskEventListener.java | 4 +- .../core/util/BpmHttpRequestUtils.java | 2 +- .../flowable/core/util/BpmnModelUtils.java | 4 +- .../flowable/core/util/SimpleModelUtils.java | 2 +- .../rpc/config/RpcConfiguration.java | 3 +- .../web/config/BpmWebConfiguration.java | 2 + .../definition/BpmModelServiceImpl.java | 8 +- ...BpmCreditLetterApprovalStatusListener.java | 42 ------- .../task/BpmProcessInstanceServiceImpl.java | 2 +- .../bpm/service/task/BpmTaskService.java | 4 +- .../bpm/service/task/BpmTaskServiceImpl.java | 110 ++++++++++++++---- .../trigger/form/BpmFormDeleteTrigger.java | 2 +- .../trigger/form/BpmFormUpdateTrigger.java | 2 +- .../trigger/http/BpmHttpCallbackTrigger.java | 1 + .../http/BpmSyncHttpRequestTrigger.java | 1 + .../liquibase/datatype/core/BooleanType.java | 1 + .../impl/AbstractEngineConfiguration.java | 84 ++++++++++--- .../definition/BpmFormServiceTest.java | 4 +- .../definition/BpmUserGroupServiceTest.java | 5 +- 50 files changed, 318 insertions(+), 157 deletions(-) rename zt-module-bpm/{zt-module-bpm-server => zt-module-bpm-server-app}/Dockerfile (82%) create mode 100644 zt-module-bpm/zt-module-bpm-server-app/pom.xml rename zt-module-bpm/{zt-module-bpm-server => zt-module-bpm-server-app}/src/main/java/com/zt/plat/module/bpm/BpmServerApplication.java (100%) rename zt-module-bpm/{zt-module-bpm-server => zt-module-bpm-server-app}/src/main/resources/application-dev.yaml (100%) rename zt-module-bpm/{zt-module-bpm-server => zt-module-bpm-server-app}/src/main/resources/application-local.yaml (100%) rename zt-module-bpm/{zt-module-bpm-server => zt-module-bpm-server-app}/src/main/resources/application.yaml (100%) rename zt-module-bpm/{zt-module-bpm-server => zt-module-bpm-server-app}/src/main/resources/logback-spring.xml (90%) delete mode 100644 zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/supply/capital/listener/BpmCreditLetterApprovalStatusListener.java diff --git a/zt-module-bpm/pom.xml b/zt-module-bpm/pom.xml index 302788b7..69602408 100644 --- a/zt-module-bpm/pom.xml +++ b/zt-module-bpm/pom.xml @@ -11,7 +11,9 @@ zt-module-bpm-api zt-module-bpm-server + zt-module-bpm-server-app + ${revision} zt-module-bpm pom diff --git a/zt-module-bpm/zt-module-bpm-api/src/main/java/com/zt/plat/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java b/zt-module-bpm/zt-module-bpm-api/src/main/java/com/zt/plat/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java index 24b08a4c..efecfdab 100644 --- a/zt-module-bpm/zt-module-bpm-api/src/main/java/com/zt/plat/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java +++ b/zt-module-bpm/zt-module-bpm-api/src/main/java/com/zt/plat/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java @@ -1,9 +1,10 @@ package com.zt.plat.module.bpm.api.task.dto; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotEmpty; import lombok.Data; +import jakarta.validation.constraints.NotEmpty; + import java.util.List; import java.util.Map; diff --git a/zt-module-bpm/zt-module-bpm-server/Dockerfile b/zt-module-bpm/zt-module-bpm-server-app/Dockerfile similarity index 82% rename from zt-module-bpm/zt-module-bpm-server/Dockerfile rename to zt-module-bpm/zt-module-bpm-server-app/Dockerfile index 868eec5c..d859b242 100644 --- a/zt-module-bpm/zt-module-bpm-server/Dockerfile +++ b/zt-module-bpm/zt-module-bpm-server-app/Dockerfile @@ -3,10 +3,10 @@ FROM 172.16.46.66:10043/base-service/eclipse-temurin:21-jre ## 创建目录,并使用它作为工作目录 -RUN mkdir -p /zt-module-bpm-server -WORKDIR /zt-module-bpm-server +RUN mkdir -p /zt-module-bpm-server-app +WORKDIR /zt-module-bpm-server-app ## 将后端项目的 Jar 文件,复制到镜像中 -COPY ./target/zt-module-bpm-server.jar app.jar +COPY ./target/zt-module-bpm-server-app.jar app.jar ## 设置 TZ 时区 ## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖 diff --git a/zt-module-bpm/zt-module-bpm-server-app/pom.xml b/zt-module-bpm/zt-module-bpm-server-app/pom.xml new file mode 100644 index 00000000..6b9073b7 --- /dev/null +++ b/zt-module-bpm/zt-module-bpm-server-app/pom.xml @@ -0,0 +1,49 @@ + + + 4.0.0 + + com.zt.plat + zt-module-bpm + ${revision} + + zt-module-bpm-server-app + jar + ${project.artifactId} + + bpm 模块启动器。 + + + + + + + com.zt.plat + zt-module-bpm-server + ${revision} + + + + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + + + repackage + + + + + + + diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/BpmServerApplication.java b/zt-module-bpm/zt-module-bpm-server-app/src/main/java/com/zt/plat/module/bpm/BpmServerApplication.java similarity index 100% rename from zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/BpmServerApplication.java rename to zt-module-bpm/zt-module-bpm-server-app/src/main/java/com/zt/plat/module/bpm/BpmServerApplication.java diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/resources/application-dev.yaml b/zt-module-bpm/zt-module-bpm-server-app/src/main/resources/application-dev.yaml similarity index 100% rename from zt-module-bpm/zt-module-bpm-server/src/main/resources/application-dev.yaml rename to zt-module-bpm/zt-module-bpm-server-app/src/main/resources/application-dev.yaml diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/resources/application-local.yaml b/zt-module-bpm/zt-module-bpm-server-app/src/main/resources/application-local.yaml similarity index 100% rename from zt-module-bpm/zt-module-bpm-server/src/main/resources/application-local.yaml rename to zt-module-bpm/zt-module-bpm-server-app/src/main/resources/application-local.yaml diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/resources/application.yaml b/zt-module-bpm/zt-module-bpm-server-app/src/main/resources/application.yaml similarity index 100% rename from zt-module-bpm/zt-module-bpm-server/src/main/resources/application.yaml rename to zt-module-bpm/zt-module-bpm-server-app/src/main/resources/application.yaml diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml b/zt-module-bpm/zt-module-bpm-server-app/src/main/resources/logback-spring.xml similarity index 90% rename from zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml rename to zt-module-bpm/zt-module-bpm-server-app/src/main/resources/logback-spring.xml index 51a9a489..656c3bee 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml +++ b/zt-module-bpm/zt-module-bpm-server-app/src/main/resources/logback-spring.xml @@ -76,5 +76,14 @@ + + + + + + + + + diff --git a/zt-module-bpm/zt-module-bpm-server/pom.xml b/zt-module-bpm/zt-module-bpm-server/pom.xml index a8972633..f2829de7 100644 --- a/zt-module-bpm/zt-module-bpm-server/pom.xml +++ b/zt-module-bpm/zt-module-bpm-server/pom.xml @@ -33,11 +33,6 @@ zt-module-system-api ${revision} - - com.zt.plat - zt-module-capital-api - ${revision} - @@ -125,23 +120,4 @@ - - - ${project.artifactId} - - - - org.springframework.boot - spring-boot-maven-plugin - ${spring.boot.version} - - - - repackage - - - - - - diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java index fe4cc836..1c86d9e7 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java @@ -11,9 +11,12 @@ import com.alibaba.druid.support.logging.Log; import com.alibaba.druid.support.logging.LogFactory; import com.alibaba.druid.util.JdbcUtils; import com.alibaba.druid.util.MySqlUtils; - import java.net.SocketTimeoutException; -import java.sql.*; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.SQLWarning; +import java.sql.Statement; import java.util.ArrayList; import java.util.List; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java index e0cb9bc5..b3d1e79f 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java @@ -24,7 +24,6 @@ import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.repository.ProcessDefinition; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @@ -41,7 +40,7 @@ import static com.zt.plat.framework.web.core.util.WebFrameworkUtils.getLoginUser * @author jason */ @RestController -@Validated +@Valid public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi { @Resource diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java index f7e79287..cd5177a9 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java @@ -1,11 +1,11 @@ package com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; import com.zt.plat.framework.common.core.KeyValue; import com.zt.plat.framework.common.validation.InEnum; import com.zt.plat.module.bpm.enums.definition.*; import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/BpmProcessInstanceController.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/BpmProcessInstanceController.java index d55f27a0..0afdc38b 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/BpmProcessInstanceController.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/BpmProcessInstanceController.java @@ -26,11 +26,17 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; import jakarta.validation.Valid; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.list.SetUniqueList; +import org.apache.commons.lang3.StringUtils; +import org.flowable.engine.RuntimeService; +import org.flowable.engine.TaskService; import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.migration.ProcessInstanceMigrationBuilder; import org.flowable.engine.repository.ProcessDefinition; +import org.flowable.engine.runtime.ActivityInstance; import org.flowable.task.api.Task; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -41,6 +47,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import static com.zt.plat.framework.common.pojo.CommonResult.success; import static com.zt.plat.framework.common.util.collection.CollectionUtils.*; @@ -234,4 +241,39 @@ public class BpmProcessInstanceController { return success(processInstanceService.getProcessInstanceBpmnModelView(id)); } + + @Resource + private RuntimeService runtimeService; + + @Resource + private TaskService taskService2; + + @GetMapping("/klwtest") + @Operation(summary = "klw测试") + @PermitAll + public CommonResult klwtest(@RequestParam String processInstanceId, @RequestParam String nodeId) { + List currentActivities = runtimeService + .createActivityInstanceQuery() + .processInstanceId(processInstanceId) + .unfinished() + .list(); +// taskService2.addComment(null, processInstanceId, +// "测试 comment"); + if (CollectionUtils.isNotEmpty(currentActivities)) { + runtimeService.createChangeActivityStateBuilder() + .processInstanceId(processInstanceId) + .moveActivityIdsToSingleActivityId( + currentActivities.stream() + .map(ActivityInstance::getActivityId) + .collect(Collectors.toList()), + nodeId + ) + .changeState(); + } + + + return success("klw测试"); + } + + } diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailRespVO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailRespVO.java index 4e444f4e..a23c8688 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailRespVO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailRespVO.java @@ -1,9 +1,9 @@ package com.zt.plat.module.bpm.controller.admin.task.vo.instance; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO; import com.zt.plat.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java index ae1abafa..14cc77a3 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java @@ -1,9 +1,9 @@ package com.zt.plat.module.bpm.controller.admin.task.vo.instance; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.zt.plat.framework.common.core.KeyValue; import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO; import com.zt.plat.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java index 0cafdb4b..fb86f574 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java @@ -1,8 +1,8 @@ package com.zt.plat.module.bpm.controller.admin.task.vo.task; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.zt.plat.framework.common.core.KeyValue; import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmCategoryDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmCategoryDO.java index a8251dad..193ffb4c 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmCategoryDO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmCategoryDO.java @@ -1,10 +1,10 @@ package com.zt.plat.module.bpm.dal.dataobject.definition; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmFormDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmFormDO.java index 22c69b3e..649d1913 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmFormDO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmFormDO.java @@ -1,8 +1,8 @@ package com.zt.plat.module.bpm.dal.dataobject.definition; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; -import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java index 43a879b4..349f4049 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java @@ -1,7 +1,5 @@ package com.zt.plat.module.bpm.dal.dataobject.definition; -import com.baomidou.mybatisplus.annotation.*; -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import com.zt.plat.framework.mybatis.core.type.LongListTypeHandler; import com.zt.plat.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO; @@ -9,6 +7,8 @@ import com.zt.plat.module.bpm.enums.definition.BpmAutoApproveTypeEnum; import com.zt.plat.module.bpm.enums.definition.BpmModelFormTypeEnum; import com.zt.plat.module.bpm.enums.definition.BpmModelTypeEnum; import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java index 441f3cb7..29afb73d 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java @@ -1,10 +1,10 @@ package com.zt.plat.module.bpm.dal.dataobject.definition; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import lombok.*; /** diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java index 9c0f05c7..ed36d7ba 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java @@ -1,11 +1,11 @@ package com.zt.plat.module.bpm.dal.dataobject.definition; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +import com.zt.plat.module.bpm.enums.definition.BpmProcessListenerTypeEnum; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; -import com.zt.plat.module.bpm.enums.definition.BpmProcessListenerTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java index 5b5692fa..bbe42d2b 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java @@ -1,9 +1,9 @@ package com.zt.plat.module.bpm.dal.dataobject.definition; -import com.baomidou.mybatisplus.annotation.*; -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.zt.plat.framework.common.enums.CommonStatusEnum; import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java index fa177355..76dabd22 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java @@ -1,11 +1,11 @@ package com.zt.plat.module.bpm.dal.dataobject.oa; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +import com.zt.plat.module.bpm.enums.task.BpmTaskStatusEnum; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; -import com.zt.plat.module.bpm.enums.task.BpmTaskStatusEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java index 779d11d6..ef06a3eb 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java @@ -1,10 +1,10 @@ package com.zt.plat.module.bpm.dal.dataobject.task; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/redis/BpmProcessIdRedisDAO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/redis/BpmProcessIdRedisDAO.java index 77e3a307..b6b0f69a 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/redis/BpmProcessIdRedisDAO.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/redis/BpmProcessIdRedisDAO.java @@ -10,8 +10,7 @@ import org.springframework.stereotype.Repository; import java.time.Duration; import java.time.LocalDateTime; -import static cn.hutool.core.date.DatePattern.PURE_DATETIME_PATTERN; -import static cn.hutool.core.date.DatePattern.PURE_DATE_PATTERN; +import static cn.hutool.core.date.DatePattern.*; /** * BPM 流程 Id 编码的 Redis DAO diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java index cdfee97b..54310efa 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java @@ -5,7 +5,6 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; -import com.google.common.annotations.VisibleForTesting; import com.zt.plat.framework.common.enums.CommonStatusEnum; import com.zt.plat.framework.common.util.object.ObjectUtils; import com.zt.plat.framework.datapermission.core.annotation.DataPermission; @@ -17,6 +16,7 @@ import com.zt.plat.module.bpm.framework.flowable.core.util.FlowableUtils; import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService; import com.zt.plat.module.system.api.user.AdminUserApi; import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; +import com.google.common.annotations.VisibleForTesting; import lombok.extern.slf4j.Slf4j; import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.CallActivity; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateApproveUserSelectStrategy.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateApproveUserSelectStrategy.java index e56d6b98..bfd429c9 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateApproveUserSelectStrategy.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateApproveUserSelectStrategy.java @@ -2,11 +2,11 @@ package com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.dept; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; -import com.google.common.collect.Sets; import com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.user.BpmTaskCandidateUserStrategy; import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum; import com.zt.plat.module.bpm.framework.flowable.core.util.FlowableUtils; import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService; +import com.google.common.collect.Sets; import jakarta.annotation.Resource; import org.flowable.bpmn.model.BpmnModel; import org.flowable.engine.delegate.DelegateExecution; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateStartUserSelectStrategy.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateStartUserSelectStrategy.java index 6aab05cb..189e5db2 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateStartUserSelectStrategy.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateStartUserSelectStrategy.java @@ -2,11 +2,11 @@ package com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.dept; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; -import com.google.common.collect.Sets; import com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.user.BpmTaskCandidateUserStrategy; import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum; import com.zt.plat.module.bpm.framework.flowable.core.util.FlowableUtils; import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService; +import com.google.common.collect.Sets; import jakarta.annotation.Resource; import org.flowable.bpmn.model.BpmnModel; import org.flowable.engine.delegate.DelegateExecution; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/other/BpmTaskCandidateExpressionStrategy.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/other/BpmTaskCandidateExpressionStrategy.java index aeae390a..8350a8a7 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/other/BpmTaskCandidateExpressionStrategy.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/other/BpmTaskCandidateExpressionStrategy.java @@ -1,10 +1,10 @@ package com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.other; -import com.google.common.collect.Sets; import com.zt.plat.framework.common.util.collection.CollectionUtils; import com.zt.plat.module.bpm.framework.flowable.core.candidate.BpmTaskCandidateStrategy; import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum; import com.zt.plat.module.bpm.framework.flowable.core.util.FlowableUtils; +import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; import org.flowable.bpmn.model.BpmnModel; import org.flowable.common.engine.api.FlowableException; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java index cc56501a..7c4c0e9a 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java @@ -1,7 +1,7 @@ package com.zt.plat.module.bpm.framework.flowable.core.listener; -import com.google.common.collect.ImmutableSet; import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService; +import com.google.common.collect.ImmutableSet; import jakarta.annotation.Resource; import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent; import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java index b26585b8..71fe3c7c 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java @@ -3,13 +3,13 @@ package com.zt.plat.module.bpm.framework.flowable.core.listener; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.collect.ImmutableSet; import com.zt.plat.framework.common.util.number.NumberUtils; import com.zt.plat.module.bpm.enums.definition.BpmBoundaryEventTypeEnum; import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmnModelConstants; import com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils; import com.zt.plat.module.bpm.service.definition.BpmModelService; import com.zt.plat.module.bpm.service.task.BpmTaskService; +import com.google.common.collect.ImmutableSet; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.flowable.bpmn.model.BoundaryEvent; @@ -83,7 +83,7 @@ public class BpmTaskEventListener extends AbstractFlowableEngineEventListener { if (StrUtil.isEmpty(activity.getTaskId())) { return; } - taskService.processTaskCanceled(activity.getTaskId()); + taskService.processTaskCanceled(activity.getTaskId(), null); }); } diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmHttpRequestUtils.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmHttpRequestUtils.java index 583e8043..de5b2a46 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmHttpRequestUtils.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmHttpRequestUtils.java @@ -2,7 +2,6 @@ package com.zt.plat.module.bpm.framework.flowable.core.util; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import com.fasterxml.jackson.core.type.TypeReference; import com.zt.plat.framework.common.core.KeyValue; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.json.JsonUtils; @@ -10,6 +9,7 @@ import com.zt.plat.framework.common.util.spring.SpringUtils; import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO; import com.zt.plat.module.bpm.enums.definition.BpmHttpRequestParamTypeEnum; import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService; +import com.fasterxml.jackson.core.type.TypeReference; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.runtime.ProcessInstance; import org.springframework.http.HttpEntity; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmnModelUtils.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmnModelUtils.java index d9bf32e3..b53a819c 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmnModelUtils.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmnModelUtils.java @@ -7,7 +7,6 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.collect.Maps; import com.zt.plat.framework.common.util.collection.CollectionUtils; import com.zt.plat.framework.common.util.json.JsonUtils; import com.zt.plat.framework.common.util.number.NumberUtils; @@ -16,10 +15,11 @@ import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSim import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; import com.zt.plat.module.bpm.enums.definition.*; import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmnModelConstants; +import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.flowable.bpmn.converter.BpmnXMLConverter; -import org.flowable.bpmn.model.*; import org.flowable.bpmn.model.Process; +import org.flowable.bpmn.model.*; import org.flowable.common.engine.api.FlowableException; import org.flowable.common.engine.impl.util.io.BytesStreamSource; import org.flowable.engine.impl.el.FixedValue; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/SimpleModelUtils.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/SimpleModelUtils.java index 562310ab..cb03e01c 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/SimpleModelUtils.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/SimpleModelUtils.java @@ -17,8 +17,8 @@ import com.zt.plat.module.bpm.service.task.listener.BpmCallActivityListener; import com.zt.plat.module.bpm.service.task.listener.BpmUserTaskListener; import org.flowable.bpmn.BpmnAutoLayout; import org.flowable.bpmn.constants.BpmnXMLConstants; -import org.flowable.bpmn.model.*; import org.flowable.bpmn.model.Process; +import org.flowable.bpmn.model.*; import org.flowable.engine.delegate.ExecutionListener; import org.flowable.engine.delegate.TaskListener; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java index 0ab98bc8..0be19c0b 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java @@ -1,6 +1,5 @@ package com.zt.plat.module.bpm.framework.rpc.config; -import com.zt.plat.module.capital.api.AmountCreditApplyApi; import com.zt.plat.module.system.api.dept.DeptApi; import com.zt.plat.module.system.api.dept.PostApi; import com.zt.plat.module.system.api.dict.DictDataApi; @@ -13,6 +12,6 @@ import org.springframework.context.annotation.Configuration; @Configuration(value = "bpmRpcConfiguration", proxyBeanMethods = false) @EnableFeignClients(clients = {RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class, - PermissionApi.class, AmountCreditApplyApi.class}) + PermissionApi.class}) public class RpcConfiguration { } diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/web/config/BpmWebConfiguration.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/web/config/BpmWebConfiguration.java index ad4c2c0a..fed2cc5a 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/web/config/BpmWebConfiguration.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/web/config/BpmWebConfiguration.java @@ -1,7 +1,9 @@ package com.zt.plat.module.bpm.framework.web.config; import com.zt.plat.framework.common.enums.WebFilterOrderEnum; +import com.zt.plat.framework.swagger.config.ZtSwaggerAutoConfiguration; import com.zt.plat.module.bpm.framework.web.core.FlowableWebFilter; +import org.springdoc.core.models.GroupedOpenApi; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/definition/BpmModelServiceImpl.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/definition/BpmModelServiceImpl.java index d65084c5..f4815c21 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/definition/BpmModelServiceImpl.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/definition/BpmModelServiceImpl.java @@ -24,9 +24,7 @@ import com.zt.plat.module.bpm.service.task.BpmProcessInstanceCopyService; import jakarta.annotation.Resource; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; -import org.flowable.bpmn.model.BpmnModel; -import org.flowable.bpmn.model.StartEvent; -import org.flowable.bpmn.model.UserTask; +import org.flowable.bpmn.model.*; import org.flowable.common.engine.impl.db.SuspensionState; import org.flowable.engine.HistoryService; import org.flowable.engine.RepositoryService; @@ -42,9 +40,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertMap; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/supply/capital/listener/BpmCreditLetterApprovalStatusListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/supply/capital/listener/BpmCreditLetterApprovalStatusListener.java deleted file mode 100644 index 83fed4c6..00000000 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/supply/capital/listener/BpmCreditLetterApprovalStatusListener.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.zt.plat.module.bpm.service.supply.capital.listener; - -import com.zt.plat.module.bpm.api.event.BpmProcessInstanceStatusEvent; -import com.zt.plat.module.bpm.api.event.BpmProcessInstanceStatusEventListener; -import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum; -import com.zt.plat.module.capital.api.AmountCreditApplyApi; -import com.zt.plat.module.capital.enums.AmountCreditApplyApiStatusEnum; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Component; - -import java.util.List; - -/** - * credit_letter_approval_process - 授信单的状态的监听器实现类 - * - * @author qianshijiang - */ -@Component -public class BpmCreditLetterApprovalStatusListener extends BpmProcessInstanceStatusEventListener { - - @Resource - private AmountCreditApplyApi amountCreditApplyApi; - - @Override - protected List getProcessDefinitionKey() { - return List.of(amountCreditApplyApi.PROCESS_KEY); - } - - @Override - protected void onEvent(BpmProcessInstanceStatusEvent event) { - // 将流程中的状态转换为业务的状态 - Integer status = event.getStatus(); - String approvalStatus = null; - if (BpmProcessInstanceStatusEnum.APPROVE.getStatus() == status) { - approvalStatus = AmountCreditApplyApiStatusEnum.ACAS_PASS.getCode(); - } else if (BpmProcessInstanceStatusEnum.REJECT.getStatus() == status) { - approvalStatus = AmountCreditApplyApiStatusEnum.ACAS_REJECT.getCode(); - } - amountCreditApplyApi.updateAmountCreditApplyStatus(Long.parseLong(event.getBusinessKey()),approvalStatus); - } - -} diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmProcessInstanceServiceImpl.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmProcessInstanceServiceImpl.java index d675a7e0..ba18ea8d 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmProcessInstanceServiceImpl.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmProcessInstanceServiceImpl.java @@ -235,7 +235,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService @Override public List getNextApprovalNodes(Long loginUserId, BpmApprovalDetailReqVO reqVO) { // 1.1 校验任务存在,且是当前用户的 - Task task = taskService.validateTask(loginUserId, reqVO.getTaskId()); + Task task = taskService.validateTask(loginUserId, reqVO.getTaskId(), false); // 1.2 校验流程实例存在 ProcessInstance instance = getProcessInstance(task.getProcessInstanceId()); if (instance == null) { diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmTaskService.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmTaskService.java index 8211bfe8..ce638266 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmTaskService.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmTaskService.java @@ -98,7 +98,7 @@ public interface BpmTaskService { * @param userId 用户 id * @param taskId task id */ - Task validateTask(Long userId, String taskId); + Task validateTask(Long userId, String taskId, boolean isCheckSuperAdmin); /** * 获取任务 @@ -269,7 +269,7 @@ public interface BpmTaskService { * * @param taskId 任务的编号 */ - void processTaskCanceled(String taskId); + void processTaskCanceled(String taskId, String reason); /** * 处理 Task 设置审批人事件,目前是发送审批消息 diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmTaskServiceImpl.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmTaskServiceImpl.java index 416444bd..308d6823 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/BpmTaskServiceImpl.java @@ -6,12 +6,14 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.*; import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONUtil; +import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.date.DateUtils; import com.zt.plat.framework.common.util.number.NumberUtils; import com.zt.plat.framework.common.util.object.ObjectUtils; import com.zt.plat.framework.common.util.object.PageUtils; import com.zt.plat.framework.datapermission.core.annotation.DataPermission; +import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.framework.web.core.util.WebFrameworkUtils; import com.zt.plat.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO; import com.zt.plat.module.bpm.controller.admin.task.vo.task.*; @@ -35,11 +37,13 @@ import com.zt.plat.module.bpm.service.message.BpmMessageService; import com.zt.plat.module.bpm.service.message.dto.BpmMessageSendWhenTaskTimeoutReqDTO; import com.zt.plat.module.system.api.dept.DeptApi; import com.zt.plat.module.system.api.dept.dto.DeptRespDTO; +import com.zt.plat.module.system.api.permission.PermissionApi; import com.zt.plat.module.system.api.user.AdminUserApi; import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; import jakarta.annotation.Resource; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.flowable.bpmn.model.*; import org.flowable.engine.HistoryService; import org.flowable.engine.ManagementService; @@ -107,6 +111,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { @Resource private AdminUserApi adminUserApi; + + @Resource + private PermissionApi permissionApi; + @Resource private DeptApi deptApi; @@ -142,12 +150,17 @@ public class BpmTaskServiceImpl implements BpmTaskService { @Override public BpmTaskRespVO getTodoTask(Long userId, String taskId, String processInstanceId) { + boolean isSelfTask = true; // 1.1 获取指定的用户待办任务 Task todoTask = getMyTodoTask(userId, taskId); // 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务 if (todoTask == null) { todoTask = getMyFirstTodoTask(userId, processInstanceId); } + if (todoTask == null && isSuperAdmin(userId)) { + isSelfTask = false; + todoTask = getMyFirstTodoTaskForAdmin(processInstanceId); + } if (todoTask == null) { return null; } @@ -159,6 +172,19 @@ public class BpmTaskServiceImpl implements BpmTaskService { BpmnModel bpmnModel = bpmProcessDefinitionService.getProcessDefinitionBpmnModel(todoTask.getProcessDefinitionId()); Map buttonsSetting = BpmnModelUtils.parseButtonsSetting( bpmnModel, todoTask.getTaskDefinitionKey()); + // 如果当前登录人是管理员,并且当前任务不属于管理员,则只显示退回,取消和转办按钮 + if (!isSelfTask && buttonsSetting != null) { + Optional.ofNullable(buttonsSetting.get(1)) + .ifPresent(button -> button.setEnable(false)); + Optional.ofNullable(buttonsSetting.get(2)) + .ifPresent(button -> button.setEnable(false)); + Optional.ofNullable(buttonsSetting.get(4)) + .ifPresent(button -> button.setEnable(false)); + Optional.ofNullable(buttonsSetting.get(5)) + .ifPresent(button -> button.setEnable(false)); + Optional.ofNullable(buttonsSetting.get(7)) + .ifPresent(button -> button.setEnable(false)); + } Boolean signEnable = parseSignEnable(bpmnModel, todoTask.getTaskDefinitionKey()); Boolean reasonRequire = parseReasonRequire(bpmnModel, todoTask.getTaskDefinitionKey()); Integer nodeType = parseNodeType(BpmnModelUtils.getFlowElementById(bpmnModel, todoTask.getTaskDefinitionKey())); @@ -203,7 +229,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { /** * 获得用户指定 processInstanceId 流程编号下的首个“待办”(未审批、且可审核)的任务 * - * @param userId 用户编号 + * @param userId 用户编号 * @param processInstanceId 流程编号 * @return 任务 */ @@ -221,12 +247,47 @@ public class BpmTaskServiceImpl implements BpmTaskService { .list(); // 2. 查询我的首个任务 + SecurityFrameworkUtils.getLoginUser(); return CollUtil.findOne(tasks, task -> { return isAssignUserTask(userId, task) // 当前用户为审批人 || isAddSignUserTask(userId, task); // 当前用户为加签人(为了减签) }); } + /** + * 获得指定 processInstanceId 流程编号下的首个“待办”(未审批、且可审核)的任务(超级管理员用) + * + * @param processInstanceId 流程编号 + * @return 任务 + */ + private Task getMyFirstTodoTaskForAdmin(String processInstanceId) { + if (processInstanceId == null) { + return null; + } + // 1. 查询所有任务 + List tasks = taskService.createTaskQuery() + .active() + .processInstanceId(processInstanceId) + .includeTaskLocalVariables() + .includeProcessVariables() + .orderByTaskCreateTime().asc() // 按创建时间升序 + .list(); + + // 2. 查询首个任务 + SecurityFrameworkUtils.getLoginUser(); + return CollUtil.findOne(tasks, task -> { + return true; // 当前用户为超级管理员 + }); + } + + private boolean isSuperAdmin(Long userId) { + CommonResult result = permissionApi.isSuperAdmin(userId); + if (result != null) { + return result.getCheckedData(); + } + return false; + } + @Override public PageResult getTaskDonePage(Long userId, BpmTaskPageReqVO pageVO) { HistoricTaskInstanceQuery taskQuery = historyService.createHistoricTaskInstanceQuery() @@ -301,10 +362,13 @@ public class BpmTaskServiceImpl implements BpmTaskService { } @Override - public Task validateTask(Long userId, String taskId) { + public Task validateTask(Long userId, String taskId, boolean isCheckSuperAdmin) { Task task = validateTaskExist(taskId); // 为什么判断 assignee 非空的情况下? // 例如说:在审批人为空时,我们会有“自动审批通过”的策略,此时 userId 为 null,允许通过 + if (isCheckSuperAdmin && isSuperAdmin(userId)) { + return task; + } if (StrUtil.isNotBlank(task.getAssignee()) && ObjectUtil.notEqual(userId, NumberUtils.parseLong(task.getAssignee()))) { throw exception(TASK_OPERATE_FAIL_ASSIGN_NOT_SELF); @@ -528,7 +592,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { @Transactional(rollbackFor = Exception.class) public void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO) { // 1.1 校验任务存在 - Task task = validateTask(userId, reqVO.getId()); + Task task = validateTask(userId, reqVO.getId(), false); // 1.2 校验流程实例存在 ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId()); if (instance == null) { @@ -601,15 +665,15 @@ public class BpmTaskServiceImpl implements BpmTaskService { /** * 校验选择的下一个节点的审批人,是否合法 - * + *

* 1. 是否有漏选:没有选择审批人 * 2. 是否有多选:非下一个节点 * * @param taskDefinitionKey 当前任务节点标识 - * @param variables 流程变量 - * @param bpmnModel 流程模型 - * @param nextAssignees 下一个节点审批人集合(参数) - * @param processInstance 流程实例 + * @param variables 流程变量 + * @param bpmnModel 流程模型 + * @param nextAssignees 下一个节点审批人集合(参数) + * @param processInstance 流程实例 */ @SuppressWarnings("unchecked") private Map validateAndSetNextAssignees(String taskDefinitionKey, Map variables, BpmnModel bpmnModel, @@ -661,7 +725,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { approveUserSelectAssignees = new HashMap<>(); } approveUserSelectAssignees.put(nextFlowNode.getId(), assignees); - Map> existingApproveUserSelectAssignees = (Map>) variables.get( + Map> existingApproveUserSelectAssignees = (Map>) variables.get( BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_APPROVE_USER_SELECT_ASSIGNEES); if (CollUtil.isNotEmpty(existingApproveUserSelectAssignees)) { approveUserSelectAssignees.putAll(existingApproveUserSelectAssignees); @@ -771,7 +835,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { @Transactional(rollbackFor = Exception.class) public void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO) { // 1.1 校验任务存在 - Task task = validateTask(userId, reqVO.getId()); + Task task = validateTask(userId, reqVO.getId(), false); // 1.2 校验流程实例存在 ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId()); if (instance == null) { @@ -837,7 +901,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { @Transactional(rollbackFor = Exception.class) public void returnTask(Long userId, BpmTaskReturnReqVO reqVO) { // 1.1 当前任务 task - Task task = validateTask(userId, reqVO.getId()); + Task task = validateTask(userId, reqVO.getId(), true); if (task.isSuspended()) { throw exception(TASK_IS_PENDING); } @@ -895,6 +959,8 @@ public class BpmTaskServiceImpl implements BpmTaskService { List runExecutionIds = new ArrayList<>(); // 2. 给当前要被退回的 task 数组,设置退回意见 + boolean isSuperAdmin = isSuperAdmin(userId); + String reasonPrefix = isSuperAdmin ? "【管理员操作】" : ""; taskList.forEach(task -> { // 需要排除掉,不需要设置退回意见的任务 if (!returnTaskKeyList.contains(task.getTaskDefinitionKey())) { @@ -910,7 +976,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { // 2.1.2 更新 task 状态 + 原因 updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.RETURN.getStatus(), reqVO.getReason()); } else { // 情况二:别人的任务,进行 CANCEL 标记 - processTaskCanceled(task.getId()); + processTaskCanceled(task.getId(), reasonPrefix + reqVO.getReason()); } }); @@ -931,7 +997,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { public void delegateTask(Long userId, BpmTaskDelegateReqVO reqVO) { String taskId = reqVO.getId(); // 1.1 校验任务 - Task task = validateTask(userId, reqVO.getId()); + Task task = validateTask(userId, reqVO.getId(), false); if (task.getAssignee().equals(reqVO.getDelegateUserId().toString())) { // 校验当前审批人和被委派人不是同一人 throw exception(TASK_DELEGATE_FAIL_USER_REPEAT); } @@ -957,7 +1023,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { public void transferTask(Long userId, BpmTaskTransferReqVO reqVO) { String taskId = reqVO.getId(); // 1.1 校验任务 - Task task = validateTask(userId, reqVO.getId()); + Task task = validateTask(userId, reqVO.getId(), true); if (task.getAssignee().equals(reqVO.getAssigneeUserId().toString())) { // 校验当前审批人和被转派人不是同一人 throw exception(TASK_TRANSFER_FAIL_USER_REPEAT); } @@ -994,7 +1060,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { if (BpmTaskStatusEnum.isEndStatus(otherTaskStatus)) { return; } - processTaskCanceled(task.getId()); + processTaskCanceled(task.getId(), null); }); // 2. 终止流程 @@ -1066,7 +1132,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { * @return 当前任务 */ private TaskEntityImpl validateTaskCanCreateSign(Long userId, BpmTaskSignCreateReqVO reqVO) { - TaskEntityImpl taskEntity = (TaskEntityImpl) validateTask(userId, reqVO.getId()); + TaskEntityImpl taskEntity = (TaskEntityImpl) validateTask(userId, reqVO.getId(), false); // 向前加签和向后加签不能同时存在 if (taskEntity.getScopeType() != null && ObjectUtil.notEqual(taskEntity.getScopeType(), reqVO.getType())) { @@ -1217,7 +1283,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { } // 2. 任务前置通知 - if (ObjUtil.isNotNull(processDefinitionInfo.getTaskBeforeTriggerSetting())){ + if (ObjUtil.isNotNull(processDefinitionInfo.getTaskBeforeTriggerSetting())) { BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getTaskBeforeTriggerSetting(); BpmHttpRequestUtils.executeBpmHttpRequest(processInstance, setting.getUrl(), setting.getHeader(), setting.getBody(), true, setting.getResponse()); @@ -1281,7 +1347,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { * 2. 审批不通过:在 {@link #rejectTask(Long, BpmTaskRejectReqVO)} 不通过时,对于加签的任务,不会被 Flowable 删除,此时需要通过该方法更新状态为已取消 */ @Override - public void processTaskCanceled(String taskId) { + public void processTaskCanceled(String taskId, String reason) { Task task = getTask(taskId); // 1. 可能只是活动,不是任务,所以查询不到 if (task == null) { @@ -1295,7 +1361,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { log.error("[updateTaskStatusWhenCanceled][taskId({}) 处于结果({}),无需进行更新]", taskId, status); return; } - updateTaskStatusAndReason(taskId, BpmTaskStatusEnum.CANCEL.getStatus(), BpmReasonEnum.CANCEL_BY_SYSTEM.getReason()); + updateTaskStatusAndReason(taskId, BpmTaskStatusEnum.CANCEL.getStatus(), StringUtils.isNotBlank(reason) ? reason : BpmReasonEnum.CANCEL_BY_SYSTEM.getReason()); // 补充说明:由于 Task 被删除成 HistoricTask 后,无法通过 taskService.addComment 添加理由,所以无法存储具体的取消理由 } @@ -1344,7 +1410,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { .taskVariableValueEquals(BpmnVariableConstants.TASK_VARIABLE_STATUS, BpmTaskStatusEnum.APPROVE.getStatus()) .finished(); if (BpmAutoApproveTypeEnum.APPROVE_ALL.getType().equals(processDefinitionInfo.getAutoApprovalType()) - && sameAssigneeQuery.count() > 0) { + && sameAssigneeQuery.count() > 0) { getSelf().approveTask(Long.valueOf(task.getAssignee()), new BpmTaskApproveReqVO().setId(task.getId()) .setReason(BpmAutoApproveTypeEnum.APPROVE_ALL.getName())); return; @@ -1356,7 +1422,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { return; } List sourceTaskIds = convertList(BpmnModelUtils.getElementIncomingFlows( // 获取所有上一个节点 - BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey())), + BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey())), SequenceFlow::getSourceRef); if (sameAssigneeQuery.taskDefinitionKeys(sourceTaskIds).count() > 0) { getSelf().approveTask(Long.valueOf(task.getAssignee()), new BpmTaskApproveReqVO().setId(task.getId()) @@ -1451,7 +1517,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { } // 任务后置通知 - if (ObjUtil.isNotNull(processDefinitionInfo.getTaskAfterTriggerSetting())){ + if (ObjUtil.isNotNull(processDefinitionInfo.getTaskAfterTriggerSetting())) { BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getTaskAfterTriggerSetting(); BpmHttpRequestUtils.executeBpmHttpRequest(processInstance, setting.getUrl(), setting.getHeader(), setting.getBody(), true, setting.getResponse()); diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormDeleteTrigger.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormDeleteTrigger.java index 60d30733..46ed559e 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormDeleteTrigger.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormDeleteTrigger.java @@ -1,7 +1,6 @@ package com.zt.plat.module.bpm.service.task.trigger.form; import cn.hutool.core.collection.CollUtil; -import com.fasterxml.jackson.core.type.TypeReference; import com.zt.plat.framework.common.util.json.JsonUtils; import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO; import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum; @@ -9,6 +8,7 @@ import com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils; import com.zt.plat.module.bpm.framework.flowable.core.util.SimpleModelUtils; import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService; import com.zt.plat.module.bpm.service.task.trigger.BpmTrigger; +import com.fasterxml.jackson.core.type.TypeReference; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormUpdateTrigger.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormUpdateTrigger.java index 79a48d97..c8427b27 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormUpdateTrigger.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormUpdateTrigger.java @@ -1,7 +1,6 @@ package com.zt.plat.module.bpm.service.task.trigger.form; import cn.hutool.core.collection.CollUtil; -import com.fasterxml.jackson.core.type.TypeReference; import com.zt.plat.framework.common.util.json.JsonUtils; import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO.TriggerSetting.FormTriggerSetting; import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum; @@ -9,6 +8,7 @@ import com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils; import com.zt.plat.module.bpm.framework.flowable.core.util.SimpleModelUtils; import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService; import com.zt.plat.module.bpm.service.task.trigger.BpmTrigger; +import com.fasterxml.jackson.core.type.TypeReference; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java index 76292d8b..3fe0606b 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java @@ -10,6 +10,7 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.runtime.ProcessInstance; import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; /** * BPM HTTP 回调触发器 diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmSyncHttpRequestTrigger.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmSyncHttpRequestTrigger.java index f6126600..617bf7a7 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmSyncHttpRequestTrigger.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmSyncHttpRequestTrigger.java @@ -9,6 +9,7 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.runtime.ProcessInstance; import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; /** * BPM 发送同步 HTTP 请求触发器 diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/liquibase/datatype/core/BooleanType.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/liquibase/datatype/core/BooleanType.java index b2c55f08..6f574106 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/liquibase/datatype/core/BooleanType.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/liquibase/datatype/core/BooleanType.java @@ -11,6 +11,7 @@ import liquibase.statement.DatabaseFunction; import liquibase.util.StringUtil; import java.util.Locale; +import java.util.regex.Pattern; @DataTypeInfo(name = "boolean", aliases = {"java.sql.Types.BOOLEAN", "java.lang.Boolean", "bit", "bool"}, minParameters = 0, maxParameters = 0, priority = LiquibaseDataType.PRIORITY_DEFAULT) public class BooleanType extends LiquibaseDataType { diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java index 790e65ec..2ac83d58 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java @@ -12,8 +12,29 @@ */ package org.flowable.common.engine.impl; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.time.Duration; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.ServiceLoader; +import java.util.Set; + +import javax.naming.InitialContext; +import javax.sql.DataSource; + import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.builder.xml.XMLConfigBuilder; import org.apache.ibatis.builder.xml.XMLMapperBuilder; @@ -26,7 +47,27 @@ import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory; import org.apache.ibatis.transaction.TransactionFactory; import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory; import org.apache.ibatis.transaction.managed.ManagedTransactionFactory; -import org.apache.ibatis.type.*; +import org.apache.ibatis.type.ArrayTypeHandler; +import org.apache.ibatis.type.BigDecimalTypeHandler; +import org.apache.ibatis.type.BlobInputStreamTypeHandler; +import org.apache.ibatis.type.BlobTypeHandler; +import org.apache.ibatis.type.BooleanTypeHandler; +import org.apache.ibatis.type.ByteTypeHandler; +import org.apache.ibatis.type.ClobTypeHandler; +import org.apache.ibatis.type.DateOnlyTypeHandler; +import org.apache.ibatis.type.DateTypeHandler; +import org.apache.ibatis.type.DoubleTypeHandler; +import org.apache.ibatis.type.FloatTypeHandler; +import org.apache.ibatis.type.IntegerTypeHandler; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.LongTypeHandler; +import org.apache.ibatis.type.NClobTypeHandler; +import org.apache.ibatis.type.NStringTypeHandler; +import org.apache.ibatis.type.ShortTypeHandler; +import org.apache.ibatis.type.SqlxmlTypeHandler; +import org.apache.ibatis.type.StringTypeHandler; +import org.apache.ibatis.type.TimeOnlyTypeHandler; +import org.apache.ibatis.type.TypeHandlerRegistry; import org.flowable.common.engine.api.FlowableException; import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType; import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher; @@ -38,10 +79,25 @@ import org.flowable.common.engine.impl.cfg.CommandExecutorImpl; import org.flowable.common.engine.impl.cfg.IdGenerator; import org.flowable.common.engine.impl.cfg.TransactionContextFactory; import org.flowable.common.engine.impl.cfg.standalone.StandaloneMybatisTransactionContextFactory; -import org.flowable.common.engine.impl.db.*; +import org.flowable.common.engine.impl.db.CommonDbSchemaManager; +import org.flowable.common.engine.impl.db.DbSqlSessionFactory; +import org.flowable.common.engine.impl.db.LogSqlExecutionTimePlugin; +import org.flowable.common.engine.impl.db.MybatisTypeAliasConfigurator; +import org.flowable.common.engine.impl.db.MybatisTypeHandlerConfigurator; +import org.flowable.common.engine.impl.db.SchemaManager; import org.flowable.common.engine.impl.event.EventDispatchAction; import org.flowable.common.engine.impl.event.FlowableEventDispatcherImpl; -import org.flowable.common.engine.impl.interceptor.*; +import org.flowable.common.engine.impl.interceptor.Command; +import org.flowable.common.engine.impl.interceptor.CommandConfig; +import org.flowable.common.engine.impl.interceptor.CommandContextFactory; +import org.flowable.common.engine.impl.interceptor.CommandContextInterceptor; +import org.flowable.common.engine.impl.interceptor.CommandExecutor; +import org.flowable.common.engine.impl.interceptor.CommandInterceptor; +import org.flowable.common.engine.impl.interceptor.CrDbRetryInterceptor; +import org.flowable.common.engine.impl.interceptor.DefaultCommandInvoker; +import org.flowable.common.engine.impl.interceptor.LogInterceptor; +import org.flowable.common.engine.impl.interceptor.SessionFactory; +import org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor; import org.flowable.common.engine.impl.lock.LockManager; import org.flowable.common.engine.impl.lock.LockManagerImpl; import org.flowable.common.engine.impl.logging.LoggingListener; @@ -51,7 +107,13 @@ import org.flowable.common.engine.impl.persistence.GenericManagerFactory; import org.flowable.common.engine.impl.persistence.StrongUuidGenerator; import org.flowable.common.engine.impl.persistence.cache.EntityCache; import org.flowable.common.engine.impl.persistence.cache.EntityCacheImpl; -import org.flowable.common.engine.impl.persistence.entity.*; +import org.flowable.common.engine.impl.persistence.entity.ByteArrayEntityManager; +import org.flowable.common.engine.impl.persistence.entity.ByteArrayEntityManagerImpl; +import org.flowable.common.engine.impl.persistence.entity.Entity; +import org.flowable.common.engine.impl.persistence.entity.PropertyEntityManager; +import org.flowable.common.engine.impl.persistence.entity.PropertyEntityManagerImpl; +import org.flowable.common.engine.impl.persistence.entity.TableDataManager; +import org.flowable.common.engine.impl.persistence.entity.TableDataManagerImpl; import org.flowable.common.engine.impl.persistence.entity.data.ByteArrayDataManager; import org.flowable.common.engine.impl.persistence.entity.data.PropertyDataManager; import org.flowable.common.engine.impl.persistence.entity.data.impl.MybatisByteArrayDataManager; @@ -65,14 +127,8 @@ import org.flowable.eventregistry.api.EventRegistryEventConsumer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.naming.InitialContext; -import javax.sql.DataSource; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.sql.*; -import java.time.Duration; -import java.util.*; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; public abstract class AbstractEngineConfiguration { diff --git a/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmFormServiceTest.java b/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmFormServiceTest.java index 8742afe2..2bb6fbad 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmFormServiceTest.java +++ b/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmFormServiceTest.java @@ -4,15 +4,15 @@ import cn.hutool.core.util.RandomUtil; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.json.JsonUtils; import com.zt.plat.framework.test.core.ut.BaseDbUnitTest; -import com.zt.plat.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO; import com.zt.plat.module.bpm.controller.admin.definition.vo.form.BpmFormSaveReqVO; +import com.zt.plat.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO; import com.zt.plat.module.bpm.dal.dataobject.definition.BpmFormDO; import com.zt.plat.module.bpm.dal.mysql.definition.BpmFormMapper; import com.zt.plat.module.bpm.service.definition.dto.BpmFormFieldRespDTO; -import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; +import jakarta.annotation.Resource; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmUserGroupServiceTest.java b/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmUserGroupServiceTest.java index b2b04bc4..a74e9d38 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmUserGroupServiceTest.java +++ b/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmUserGroupServiceTest.java @@ -5,15 +5,16 @@ import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.test.core.ut.BaseDbUnitTest; import com.zt.plat.framework.test.core.util.AssertUtils; import com.zt.plat.framework.test.core.util.RandomUtils; -import com.zt.plat.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; import com.zt.plat.module.bpm.controller.admin.definition.vo.group.BpmUserGroupSaveReqVO; +import com.zt.plat.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; import com.zt.plat.module.bpm.dal.dataobject.definition.BpmUserGroupDO; import com.zt.plat.module.bpm.dal.mysql.definition.BpmUserGroupMapper; -import jakarta.annotation.Resource; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; +import jakarta.annotation.Resource; + import java.time.LocalDateTime; import static com.zt.plat.framework.common.util.date.LocalDateTimeUtils.buildTime;