Merge branch 'dev' into test
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -16,7 +16,7 @@
|
|||||||
<!-- 各种 module 拓展 -->
|
<!-- 各种 module 拓展 -->
|
||||||
<module>zt-module-system</module>
|
<module>zt-module-system</module>
|
||||||
<module>zt-module-infra</module>
|
<module>zt-module-infra</module>
|
||||||
<!-- <module>zt-module-bpm</module>-->
|
<module>zt-module-bpm</module>
|
||||||
<module>zt-module-report</module>
|
<module>zt-module-report</module>
|
||||||
<!--<module>zt-module-mp</module>-->
|
<!--<module>zt-module-mp</module>-->
|
||||||
<!-- <module>zt-module-ai</module>-->
|
<!-- <module>zt-module-ai</module>-->
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
<modules>
|
<modules>
|
||||||
<module>zt-module-bpm-api</module>
|
<module>zt-module-bpm-api</module>
|
||||||
<module>zt-module-bpm-server</module>
|
<module>zt-module-bpm-server</module>
|
||||||
|
<module>zt-module-bpm-server-app</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
<version>${revision}</version>
|
||||||
<artifactId>zt-module-bpm</artifactId>
|
<artifactId>zt-module-bpm</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
package com.zt.plat.module.bpm.api.task.dto;
|
package com.zt.plat.module.bpm.api.task.dto;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.NotEmpty;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
FROM 172.16.46.66:10043/base-service/eclipse-temurin:21-jre
|
FROM 172.16.46.66:10043/base-service/eclipse-temurin:21-jre
|
||||||
|
|
||||||
## 创建目录,并使用它作为工作目录
|
## 创建目录,并使用它作为工作目录
|
||||||
RUN mkdir -p /zt-module-bpm-server
|
RUN mkdir -p /zt-module-bpm-server-app
|
||||||
WORKDIR /zt-module-bpm-server
|
WORKDIR /zt-module-bpm-server-app
|
||||||
## 将后端项目的 Jar 文件,复制到镜像中
|
## 将后端项目的 Jar 文件,复制到镜像中
|
||||||
COPY ./target/zt-module-bpm-server.jar app.jar
|
COPY ./target/zt-module-bpm-server-app.jar app.jar
|
||||||
|
|
||||||
## 设置 TZ 时区
|
## 设置 TZ 时区
|
||||||
## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
|
## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
|
||||||
49
zt-module-bpm/zt-module-bpm-server-app/pom.xml
Normal file
49
zt-module-bpm/zt-module-bpm-server-app/pom.xml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.zt.plat</groupId>
|
||||||
|
<artifactId>zt-module-bpm</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</parent>
|
||||||
|
<artifactId>zt-module-bpm-server-app</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<name>${project.artifactId}</name>
|
||||||
|
<description>
|
||||||
|
bpm 模块启动器。
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.zt.plat</groupId>
|
||||||
|
<artifactId>zt-module-bpm-server</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<!-- 设置构建的 jar 包名 -->
|
||||||
|
<finalName>${project.artifactId}</finalName>
|
||||||
|
<plugins>
|
||||||
|
<!-- 打包 -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<version>${spring.boot.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
@@ -76,5 +76,14 @@
|
|||||||
<logger name="com.zt.plat.module.bpm.dal" level="DEBUG" additivity="false">
|
<logger name="com.zt.plat.module.bpm.dal" level="DEBUG" additivity="false">
|
||||||
<appender-ref ref="STDOUT"/>
|
<appender-ref ref="STDOUT"/>
|
||||||
</logger>
|
</logger>
|
||||||
|
<!-- <logger name="org.flowable" level="DEBUG" additivity="false">-->
|
||||||
|
<!-- <appender-ref ref="STDOUT"/>-->
|
||||||
|
<!-- </logger>-->
|
||||||
|
<!-- <logger name="org.flowable.engine.impl.persistence.entity" level="DEBUG" additivity="false">-->
|
||||||
|
<!-- <appender-ref ref="STDOUT"/>-->
|
||||||
|
<!-- </logger>-->
|
||||||
|
<!-- <logger name="org.flowable.task.service.impl.persistence.entity" level="DEBUG" additivity="false">-->
|
||||||
|
<!-- <appender-ref ref="STDOUT"/>-->
|
||||||
|
<!-- </logger>-->
|
||||||
|
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -33,11 +33,6 @@
|
|||||||
<artifactId>zt-module-system-api</artifactId>
|
<artifactId>zt-module-system-api</artifactId>
|
||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>com.zt.plat</groupId>
|
|
||||||
<artifactId>zt-module-capital-api</artifactId>
|
|
||||||
<version>${revision}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- 业务组件 -->
|
<!-- 业务组件 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -125,23 +120,4 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
|
||||||
<!-- 设置构建的 jar 包名 -->
|
|
||||||
<finalName>${project.artifactId}</finalName>
|
|
||||||
<plugins>
|
|
||||||
<!-- 打包 -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
||||||
<version>${spring.boot.version}</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -11,9 +11,12 @@ import com.alibaba.druid.support.logging.Log;
|
|||||||
import com.alibaba.druid.support.logging.LogFactory;
|
import com.alibaba.druid.support.logging.LogFactory;
|
||||||
import com.alibaba.druid.util.JdbcUtils;
|
import com.alibaba.druid.util.JdbcUtils;
|
||||||
import com.alibaba.druid.util.MySqlUtils;
|
import com.alibaba.druid.util.MySqlUtils;
|
||||||
|
|
||||||
import java.net.SocketTimeoutException;
|
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.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import jakarta.annotation.Resource;
|
|||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.flowable.engine.history.HistoricProcessInstance;
|
import org.flowable.engine.history.HistoricProcessInstance;
|
||||||
import org.flowable.engine.repository.ProcessDefinition;
|
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.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
@@ -41,7 +40,7 @@ import static com.zt.plat.framework.web.core.util.WebFrameworkUtils.getLoginUser
|
|||||||
* @author jason
|
* @author jason
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Validated
|
@Valid
|
||||||
public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi {
|
public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple;
|
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.core.KeyValue;
|
||||||
import com.zt.plat.framework.common.validation.InEnum;
|
import com.zt.plat.framework.common.validation.InEnum;
|
||||||
import com.zt.plat.module.bpm.enums.definition.*;
|
import com.zt.plat.module.bpm.enums.definition.*;
|
||||||
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
|
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 io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import jakarta.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
|||||||
@@ -26,11 +26,17 @@ import io.swagger.v3.oas.annotations.Operation;
|
|||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.annotation.security.PermitAll;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.collections4.list.SetUniqueList;
|
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.history.HistoricProcessInstance;
|
||||||
|
import org.flowable.engine.migration.ProcessInstanceMigrationBuilder;
|
||||||
import org.flowable.engine.repository.ProcessDefinition;
|
import org.flowable.engine.repository.ProcessDefinition;
|
||||||
|
import org.flowable.engine.runtime.ActivityInstance;
|
||||||
import org.flowable.task.api.Task;
|
import org.flowable.task.api.Task;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -41,6 +47,7 @@ import java.util.Collection;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
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.pojo.CommonResult.success;
|
||||||
import static com.zt.plat.framework.common.util.collection.CollectionUtils.*;
|
import static com.zt.plat.framework.common.util.collection.CollectionUtils.*;
|
||||||
@@ -234,4 +241,39 @@ public class BpmProcessInstanceController {
|
|||||||
return success(processInstanceService.getProcessInstanceBpmnModelView(id));
|
return success(processInstanceService.getProcessInstanceBpmnModelView(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RuntimeService runtimeService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TaskService taskService2;
|
||||||
|
|
||||||
|
@GetMapping("/klwtest")
|
||||||
|
@Operation(summary = "klw测试")
|
||||||
|
@PermitAll
|
||||||
|
public CommonResult<String> klwtest(@RequestParam String processInstanceId, @RequestParam String nodeId) {
|
||||||
|
List<ActivityInstance> 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测试");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.zt.plat.module.bpm.controller.admin.task.vo.instance;
|
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.base.user.UserSimpleBaseVO;
|
||||||
import com.zt.plat.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO;
|
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.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 io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.zt.plat.module.bpm.controller.admin.task.vo.instance;
|
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.framework.common.core.KeyValue;
|
||||||
import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
|
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.definition.vo.process.BpmProcessDefinitionRespVO;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.zt.plat.module.bpm.controller.admin.task.vo.task;
|
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.framework.common.core.KeyValue;
|
||||||
import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
|
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 io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.zt.plat.module.bpm.dal.dataobject.definition;
|
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.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.zt.plat.module.bpm.dal.dataobject.definition;
|
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.annotation.*;
|
||||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||||
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.zt.plat.module.bpm.dal.dataobject.definition;
|
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.dataobject.BaseDO;
|
||||||
import com.zt.plat.framework.mybatis.core.type.LongListTypeHandler;
|
import com.zt.plat.framework.mybatis.core.type.LongListTypeHandler;
|
||||||
import com.zt.plat.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO;
|
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.BpmModelFormTypeEnum;
|
||||||
import com.zt.plat.module.bpm.enums.definition.BpmModelTypeEnum;
|
import com.zt.plat.module.bpm.enums.definition.BpmModelTypeEnum;
|
||||||
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
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.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.zt.plat.module.bpm.dal.dataobject.definition;
|
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.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.zt.plat.module.bpm.dal.dataobject.definition;
|
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.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
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.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.zt.plat.module.bpm.dal.dataobject.definition;
|
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.common.enums.CommonStatusEnum;
|
||||||
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
|
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.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.zt.plat.module.bpm.dal.dataobject.oa;
|
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.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
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.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.zt.plat.module.bpm.dal.dataobject.task;
|
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.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ import org.springframework.stereotype.Repository;
|
|||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import static cn.hutool.core.date.DatePattern.PURE_DATETIME_PATTERN;
|
import static cn.hutool.core.date.DatePattern.*;
|
||||||
import static cn.hutool.core.date.DatePattern.PURE_DATE_PATTERN;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BPM 流程 Id 编码的 Redis DAO
|
* BPM 流程 Id 编码的 Redis DAO
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import cn.hutool.core.lang.Assert;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
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.enums.CommonStatusEnum;
|
||||||
import com.zt.plat.framework.common.util.object.ObjectUtils;
|
import com.zt.plat.framework.common.util.object.ObjectUtils;
|
||||||
import com.zt.plat.framework.datapermission.core.annotation.DataPermission;
|
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.bpm.service.task.BpmProcessInstanceService;
|
||||||
import com.zt.plat.module.system.api.user.AdminUserApi;
|
import com.zt.plat.module.system.api.user.AdminUserApi;
|
||||||
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
||||||
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.bpmn.model.BpmnModel;
|
import org.flowable.bpmn.model.BpmnModel;
|
||||||
import org.flowable.bpmn.model.CallActivity;
|
import org.flowable.bpmn.model.CallActivity;
|
||||||
|
|||||||
@@ -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.collection.CollUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
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.candidate.strategy.user.BpmTaskCandidateUserStrategy;
|
||||||
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
|
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.framework.flowable.core.util.FlowableUtils;
|
||||||
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.flowable.bpmn.model.BpmnModel;
|
import org.flowable.bpmn.model.BpmnModel;
|
||||||
import org.flowable.engine.delegate.DelegateExecution;
|
import org.flowable.engine.delegate.DelegateExecution;
|
||||||
|
|||||||
@@ -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.collection.CollUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
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.candidate.strategy.user.BpmTaskCandidateUserStrategy;
|
||||||
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
|
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.framework.flowable.core.util.FlowableUtils;
|
||||||
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.flowable.bpmn.model.BpmnModel;
|
import org.flowable.bpmn.model.BpmnModel;
|
||||||
import org.flowable.engine.delegate.DelegateExecution;
|
import org.flowable.engine.delegate.DelegateExecution;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.other;
|
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.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.candidate.BpmTaskCandidateStrategy;
|
||||||
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
|
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.framework.flowable.core.util.FlowableUtils;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.bpmn.model.BpmnModel;
|
import org.flowable.bpmn.model.BpmnModel;
|
||||||
import org.flowable.common.engine.api.FlowableException;
|
import org.flowable.common.engine.api.FlowableException;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.zt.plat.module.bpm.framework.flowable.core.listener;
|
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.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent;
|
import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent;
|
||||||
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
|
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ package com.zt.plat.module.bpm.framework.flowable.core.listener;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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.framework.common.util.number.NumberUtils;
|
||||||
import com.zt.plat.module.bpm.enums.definition.BpmBoundaryEventTypeEnum;
|
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.enums.BpmnModelConstants;
|
||||||
import com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils;
|
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.definition.BpmModelService;
|
||||||
import com.zt.plat.module.bpm.service.task.BpmTaskService;
|
import com.zt.plat.module.bpm.service.task.BpmTaskService;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.bpmn.model.BoundaryEvent;
|
import org.flowable.bpmn.model.BoundaryEvent;
|
||||||
@@ -83,7 +83,7 @@ public class BpmTaskEventListener extends AbstractFlowableEngineEventListener {
|
|||||||
if (StrUtil.isEmpty(activity.getTaskId())) {
|
if (StrUtil.isEmpty(activity.getTaskId())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
taskService.processTaskCanceled(activity.getTaskId());
|
taskService.processTaskCanceled(activity.getTaskId(), null);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.zt.plat.module.bpm.framework.flowable.core.util;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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.core.KeyValue;
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.common.util.json.JsonUtils;
|
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.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
|
||||||
import com.zt.plat.module.bpm.enums.definition.BpmHttpRequestParamTypeEnum;
|
import com.zt.plat.module.bpm.enums.definition.BpmHttpRequestParamTypeEnum;
|
||||||
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.engine.runtime.ProcessInstance;
|
import org.flowable.engine.runtime.ProcessInstance;
|
||||||
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpEntity;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import cn.hutool.core.map.MapUtil;
|
|||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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.collection.CollectionUtils;
|
||||||
import com.zt.plat.framework.common.util.json.JsonUtils;
|
import com.zt.plat.framework.common.util.json.JsonUtils;
|
||||||
import com.zt.plat.framework.common.util.number.NumberUtils;
|
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.controller.admin.task.vo.task.BpmTaskRespVO;
|
||||||
import com.zt.plat.module.bpm.enums.definition.*;
|
import com.zt.plat.module.bpm.enums.definition.*;
|
||||||
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmnModelConstants;
|
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmnModelConstants;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.bpmn.converter.BpmnXMLConverter;
|
import org.flowable.bpmn.converter.BpmnXMLConverter;
|
||||||
import org.flowable.bpmn.model.*;
|
|
||||||
import org.flowable.bpmn.model.Process;
|
import org.flowable.bpmn.model.Process;
|
||||||
|
import org.flowable.bpmn.model.*;
|
||||||
import org.flowable.common.engine.api.FlowableException;
|
import org.flowable.common.engine.api.FlowableException;
|
||||||
import org.flowable.common.engine.impl.util.io.BytesStreamSource;
|
import org.flowable.common.engine.impl.util.io.BytesStreamSource;
|
||||||
import org.flowable.engine.impl.el.FixedValue;
|
import org.flowable.engine.impl.el.FixedValue;
|
||||||
|
|||||||
@@ -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 com.zt.plat.module.bpm.service.task.listener.BpmUserTaskListener;
|
||||||
import org.flowable.bpmn.BpmnAutoLayout;
|
import org.flowable.bpmn.BpmnAutoLayout;
|
||||||
import org.flowable.bpmn.constants.BpmnXMLConstants;
|
import org.flowable.bpmn.constants.BpmnXMLConstants;
|
||||||
import org.flowable.bpmn.model.*;
|
|
||||||
import org.flowable.bpmn.model.Process;
|
import org.flowable.bpmn.model.Process;
|
||||||
|
import org.flowable.bpmn.model.*;
|
||||||
import org.flowable.engine.delegate.ExecutionListener;
|
import org.flowable.engine.delegate.ExecutionListener;
|
||||||
import org.flowable.engine.delegate.TaskListener;
|
import org.flowable.engine.delegate.TaskListener;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.zt.plat.module.bpm.framework.rpc.config;
|
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.DeptApi;
|
||||||
import com.zt.plat.module.system.api.dept.PostApi;
|
import com.zt.plat.module.system.api.dept.PostApi;
|
||||||
import com.zt.plat.module.system.api.dict.DictDataApi;
|
import com.zt.plat.module.system.api.dict.DictDataApi;
|
||||||
@@ -13,6 +12,6 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
|
|
||||||
@Configuration(value = "bpmRpcConfiguration", proxyBeanMethods = false)
|
@Configuration(value = "bpmRpcConfiguration", proxyBeanMethods = false)
|
||||||
@EnableFeignClients(clients = {RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class,
|
@EnableFeignClients(clients = {RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class,
|
||||||
PermissionApi.class, AmountCreditApplyApi.class})
|
PermissionApi.class})
|
||||||
public class RpcConfiguration {
|
public class RpcConfiguration {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.zt.plat.module.bpm.framework.web.config;
|
package com.zt.plat.module.bpm.framework.web.config;
|
||||||
|
|
||||||
import com.zt.plat.framework.common.enums.WebFilterOrderEnum;
|
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 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.boot.web.servlet.FilterRegistrationBean;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|||||||
@@ -24,9 +24,7 @@ import com.zt.plat.module.bpm.service.task.BpmProcessInstanceCopyService;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.bpmn.model.BpmnModel;
|
import org.flowable.bpmn.model.*;
|
||||||
import org.flowable.bpmn.model.StartEvent;
|
|
||||||
import org.flowable.bpmn.model.UserTask;
|
|
||||||
import org.flowable.common.engine.impl.db.SuspensionState;
|
import org.flowable.common.engine.impl.db.SuspensionState;
|
||||||
import org.flowable.engine.HistoryService;
|
import org.flowable.engine.HistoryService;
|
||||||
import org.flowable.engine.RepositoryService;
|
import org.flowable.engine.RepositoryService;
|
||||||
@@ -42,9 +40,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertMap;
|
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertMap;
|
||||||
|
|||||||
@@ -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<String> 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -235,7 +235,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|||||||
@Override
|
@Override
|
||||||
public List<ActivityNode> getNextApprovalNodes(Long loginUserId, BpmApprovalDetailReqVO reqVO) {
|
public List<ActivityNode> getNextApprovalNodes(Long loginUserId, BpmApprovalDetailReqVO reqVO) {
|
||||||
// 1.1 校验任务存在,且是当前用户的
|
// 1.1 校验任务存在,且是当前用户的
|
||||||
Task task = taskService.validateTask(loginUserId, reqVO.getTaskId());
|
Task task = taskService.validateTask(loginUserId, reqVO.getTaskId(), false);
|
||||||
// 1.2 校验流程实例存在
|
// 1.2 校验流程实例存在
|
||||||
ProcessInstance instance = getProcessInstance(task.getProcessInstanceId());
|
ProcessInstance instance = getProcessInstance(task.getProcessInstanceId());
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public interface BpmTaskService {
|
|||||||
* @param userId 用户 id
|
* @param userId 用户 id
|
||||||
* @param taskId task 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 任务的编号
|
* @param taskId 任务的编号
|
||||||
*/
|
*/
|
||||||
void processTaskCanceled(String taskId);
|
void processTaskCanceled(String taskId, String reason);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理 Task 设置审批人事件,目前是发送审批消息
|
* 处理 Task 设置审批人事件,目前是发送审批消息
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ import cn.hutool.core.lang.Assert;
|
|||||||
import cn.hutool.core.util.*;
|
import cn.hutool.core.util.*;
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
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.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.date.DateUtils;
|
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.number.NumberUtils;
|
||||||
import com.zt.plat.framework.common.util.object.ObjectUtils;
|
import com.zt.plat.framework.common.util.object.ObjectUtils;
|
||||||
import com.zt.plat.framework.common.util.object.PageUtils;
|
import com.zt.plat.framework.common.util.object.PageUtils;
|
||||||
import com.zt.plat.framework.datapermission.core.annotation.DataPermission;
|
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.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.definition.vo.model.BpmModelMetaInfoVO;
|
||||||
import com.zt.plat.module.bpm.controller.admin.task.vo.task.*;
|
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.bpm.service.message.dto.BpmMessageSendWhenTaskTimeoutReqDTO;
|
||||||
import com.zt.plat.module.system.api.dept.DeptApi;
|
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.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.AdminUserApi;
|
||||||
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.flowable.bpmn.model.*;
|
import org.flowable.bpmn.model.*;
|
||||||
import org.flowable.engine.HistoryService;
|
import org.flowable.engine.HistoryService;
|
||||||
import org.flowable.engine.ManagementService;
|
import org.flowable.engine.ManagementService;
|
||||||
@@ -107,6 +111,10 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private AdminUserApi adminUserApi;
|
private AdminUserApi adminUserApi;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PermissionApi permissionApi;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DeptApi deptApi;
|
private DeptApi deptApi;
|
||||||
|
|
||||||
@@ -142,12 +150,17 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BpmTaskRespVO getTodoTask(Long userId, String taskId, String processInstanceId) {
|
public BpmTaskRespVO getTodoTask(Long userId, String taskId, String processInstanceId) {
|
||||||
|
boolean isSelfTask = true;
|
||||||
// 1.1 获取指定的用户待办任务
|
// 1.1 获取指定的用户待办任务
|
||||||
Task todoTask = getMyTodoTask(userId, taskId);
|
Task todoTask = getMyTodoTask(userId, taskId);
|
||||||
// 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务
|
// 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务
|
||||||
if (todoTask == null) {
|
if (todoTask == null) {
|
||||||
todoTask = getMyFirstTodoTask(userId, processInstanceId);
|
todoTask = getMyFirstTodoTask(userId, processInstanceId);
|
||||||
}
|
}
|
||||||
|
if (todoTask == null && isSuperAdmin(userId)) {
|
||||||
|
isSelfTask = false;
|
||||||
|
todoTask = getMyFirstTodoTaskForAdmin(processInstanceId);
|
||||||
|
}
|
||||||
if (todoTask == null) {
|
if (todoTask == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -159,6 +172,19 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
BpmnModel bpmnModel = bpmProcessDefinitionService.getProcessDefinitionBpmnModel(todoTask.getProcessDefinitionId());
|
BpmnModel bpmnModel = bpmProcessDefinitionService.getProcessDefinitionBpmnModel(todoTask.getProcessDefinitionId());
|
||||||
Map<Integer, BpmTaskRespVO.OperationButtonSetting> buttonsSetting = BpmnModelUtils.parseButtonsSetting(
|
Map<Integer, BpmTaskRespVO.OperationButtonSetting> buttonsSetting = BpmnModelUtils.parseButtonsSetting(
|
||||||
bpmnModel, todoTask.getTaskDefinitionKey());
|
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 signEnable = parseSignEnable(bpmnModel, todoTask.getTaskDefinitionKey());
|
||||||
Boolean reasonRequire = parseReasonRequire(bpmnModel, todoTask.getTaskDefinitionKey());
|
Boolean reasonRequire = parseReasonRequire(bpmnModel, todoTask.getTaskDefinitionKey());
|
||||||
Integer nodeType = parseNodeType(BpmnModelUtils.getFlowElementById(bpmnModel, todoTask.getTaskDefinitionKey()));
|
Integer nodeType = parseNodeType(BpmnModelUtils.getFlowElementById(bpmnModel, todoTask.getTaskDefinitionKey()));
|
||||||
@@ -203,7 +229,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
/**
|
/**
|
||||||
* 获得用户指定 processInstanceId 流程编号下的首个“待办”(未审批、且可审核)的任务
|
* 获得用户指定 processInstanceId 流程编号下的首个“待办”(未审批、且可审核)的任务
|
||||||
*
|
*
|
||||||
* @param userId 用户编号
|
* @param userId 用户编号
|
||||||
* @param processInstanceId 流程编号
|
* @param processInstanceId 流程编号
|
||||||
* @return 任务
|
* @return 任务
|
||||||
*/
|
*/
|
||||||
@@ -221,12 +247,47 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
.list();
|
.list();
|
||||||
|
|
||||||
// 2. 查询我的首个任务
|
// 2. 查询我的首个任务
|
||||||
|
SecurityFrameworkUtils.getLoginUser();
|
||||||
return CollUtil.findOne(tasks, task -> {
|
return CollUtil.findOne(tasks, task -> {
|
||||||
return isAssignUserTask(userId, task) // 当前用户为审批人
|
return isAssignUserTask(userId, task) // 当前用户为审批人
|
||||||
|| isAddSignUserTask(userId, task); // 当前用户为加签人(为了减签)
|
|| isAddSignUserTask(userId, task); // 当前用户为加签人(为了减签)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定 processInstanceId 流程编号下的首个“待办”(未审批、且可审核)的任务(超级管理员用)
|
||||||
|
*
|
||||||
|
* @param processInstanceId 流程编号
|
||||||
|
* @return 任务
|
||||||
|
*/
|
||||||
|
private Task getMyFirstTodoTaskForAdmin(String processInstanceId) {
|
||||||
|
if (processInstanceId == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 1. 查询所有任务
|
||||||
|
List<Task> 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<Boolean> result = permissionApi.isSuperAdmin(userId);
|
||||||
|
if (result != null) {
|
||||||
|
return result.getCheckedData();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<HistoricTaskInstance> getTaskDonePage(Long userId, BpmTaskPageReqVO pageVO) {
|
public PageResult<HistoricTaskInstance> getTaskDonePage(Long userId, BpmTaskPageReqVO pageVO) {
|
||||||
HistoricTaskInstanceQuery taskQuery = historyService.createHistoricTaskInstanceQuery()
|
HistoricTaskInstanceQuery taskQuery = historyService.createHistoricTaskInstanceQuery()
|
||||||
@@ -301,10 +362,13 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Task validateTask(Long userId, String taskId) {
|
public Task validateTask(Long userId, String taskId, boolean isCheckSuperAdmin) {
|
||||||
Task task = validateTaskExist(taskId);
|
Task task = validateTaskExist(taskId);
|
||||||
// 为什么判断 assignee 非空的情况下?
|
// 为什么判断 assignee 非空的情况下?
|
||||||
// 例如说:在审批人为空时,我们会有“自动审批通过”的策略,此时 userId 为 null,允许通过
|
// 例如说:在审批人为空时,我们会有“自动审批通过”的策略,此时 userId 为 null,允许通过
|
||||||
|
if (isCheckSuperAdmin && isSuperAdmin(userId)) {
|
||||||
|
return task;
|
||||||
|
}
|
||||||
if (StrUtil.isNotBlank(task.getAssignee())
|
if (StrUtil.isNotBlank(task.getAssignee())
|
||||||
&& ObjectUtil.notEqual(userId, NumberUtils.parseLong(task.getAssignee()))) {
|
&& ObjectUtil.notEqual(userId, NumberUtils.parseLong(task.getAssignee()))) {
|
||||||
throw exception(TASK_OPERATE_FAIL_ASSIGN_NOT_SELF);
|
throw exception(TASK_OPERATE_FAIL_ASSIGN_NOT_SELF);
|
||||||
@@ -528,7 +592,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO) {
|
public void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO) {
|
||||||
// 1.1 校验任务存在
|
// 1.1 校验任务存在
|
||||||
Task task = validateTask(userId, reqVO.getId());
|
Task task = validateTask(userId, reqVO.getId(), false);
|
||||||
// 1.2 校验流程实例存在
|
// 1.2 校验流程实例存在
|
||||||
ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
|
ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
@@ -601,15 +665,15 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验选择的下一个节点的审批人,是否合法
|
* 校验选择的下一个节点的审批人,是否合法
|
||||||
*
|
* <p>
|
||||||
* 1. 是否有漏选:没有选择审批人
|
* 1. 是否有漏选:没有选择审批人
|
||||||
* 2. 是否有多选:非下一个节点
|
* 2. 是否有多选:非下一个节点
|
||||||
*
|
*
|
||||||
* @param taskDefinitionKey 当前任务节点标识
|
* @param taskDefinitionKey 当前任务节点标识
|
||||||
* @param variables 流程变量
|
* @param variables 流程变量
|
||||||
* @param bpmnModel 流程模型
|
* @param bpmnModel 流程模型
|
||||||
* @param nextAssignees 下一个节点审批人集合(参数)
|
* @param nextAssignees 下一个节点审批人集合(参数)
|
||||||
* @param processInstance 流程实例
|
* @param processInstance 流程实例
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private Map<String, Object> validateAndSetNextAssignees(String taskDefinitionKey, Map<String, Object> variables, BpmnModel bpmnModel,
|
private Map<String, Object> validateAndSetNextAssignees(String taskDefinitionKey, Map<String, Object> variables, BpmnModel bpmnModel,
|
||||||
@@ -661,7 +725,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
approveUserSelectAssignees = new HashMap<>();
|
approveUserSelectAssignees = new HashMap<>();
|
||||||
}
|
}
|
||||||
approveUserSelectAssignees.put(nextFlowNode.getId(), assignees);
|
approveUserSelectAssignees.put(nextFlowNode.getId(), assignees);
|
||||||
Map<String,List<Long>> existingApproveUserSelectAssignees = (Map<String,List<Long>>) variables.get(
|
Map<String, List<Long>> existingApproveUserSelectAssignees = (Map<String, List<Long>>) variables.get(
|
||||||
BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_APPROVE_USER_SELECT_ASSIGNEES);
|
BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_APPROVE_USER_SELECT_ASSIGNEES);
|
||||||
if (CollUtil.isNotEmpty(existingApproveUserSelectAssignees)) {
|
if (CollUtil.isNotEmpty(existingApproveUserSelectAssignees)) {
|
||||||
approveUserSelectAssignees.putAll(existingApproveUserSelectAssignees);
|
approveUserSelectAssignees.putAll(existingApproveUserSelectAssignees);
|
||||||
@@ -771,7 +835,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO) {
|
public void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO) {
|
||||||
// 1.1 校验任务存在
|
// 1.1 校验任务存在
|
||||||
Task task = validateTask(userId, reqVO.getId());
|
Task task = validateTask(userId, reqVO.getId(), false);
|
||||||
// 1.2 校验流程实例存在
|
// 1.2 校验流程实例存在
|
||||||
ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
|
ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
@@ -837,7 +901,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void returnTask(Long userId, BpmTaskReturnReqVO reqVO) {
|
public void returnTask(Long userId, BpmTaskReturnReqVO reqVO) {
|
||||||
// 1.1 当前任务 task
|
// 1.1 当前任务 task
|
||||||
Task task = validateTask(userId, reqVO.getId());
|
Task task = validateTask(userId, reqVO.getId(), true);
|
||||||
if (task.isSuspended()) {
|
if (task.isSuspended()) {
|
||||||
throw exception(TASK_IS_PENDING);
|
throw exception(TASK_IS_PENDING);
|
||||||
}
|
}
|
||||||
@@ -895,6 +959,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
List<String> runExecutionIds = new ArrayList<>();
|
List<String> runExecutionIds = new ArrayList<>();
|
||||||
// 2. 给当前要被退回的 task 数组,设置退回意见
|
// 2. 给当前要被退回的 task 数组,设置退回意见
|
||||||
|
boolean isSuperAdmin = isSuperAdmin(userId);
|
||||||
|
String reasonPrefix = isSuperAdmin ? "【管理员操作】" : "";
|
||||||
taskList.forEach(task -> {
|
taskList.forEach(task -> {
|
||||||
// 需要排除掉,不需要设置退回意见的任务
|
// 需要排除掉,不需要设置退回意见的任务
|
||||||
if (!returnTaskKeyList.contains(task.getTaskDefinitionKey())) {
|
if (!returnTaskKeyList.contains(task.getTaskDefinitionKey())) {
|
||||||
@@ -910,7 +976,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
// 2.1.2 更新 task 状态 + 原因
|
// 2.1.2 更新 task 状态 + 原因
|
||||||
updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.RETURN.getStatus(), reqVO.getReason());
|
updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.RETURN.getStatus(), reqVO.getReason());
|
||||||
} else { // 情况二:别人的任务,进行 CANCEL 标记
|
} 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) {
|
public void delegateTask(Long userId, BpmTaskDelegateReqVO reqVO) {
|
||||||
String taskId = reqVO.getId();
|
String taskId = reqVO.getId();
|
||||||
// 1.1 校验任务
|
// 1.1 校验任务
|
||||||
Task task = validateTask(userId, reqVO.getId());
|
Task task = validateTask(userId, reqVO.getId(), false);
|
||||||
if (task.getAssignee().equals(reqVO.getDelegateUserId().toString())) { // 校验当前审批人和被委派人不是同一人
|
if (task.getAssignee().equals(reqVO.getDelegateUserId().toString())) { // 校验当前审批人和被委派人不是同一人
|
||||||
throw exception(TASK_DELEGATE_FAIL_USER_REPEAT);
|
throw exception(TASK_DELEGATE_FAIL_USER_REPEAT);
|
||||||
}
|
}
|
||||||
@@ -957,7 +1023,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
public void transferTask(Long userId, BpmTaskTransferReqVO reqVO) {
|
public void transferTask(Long userId, BpmTaskTransferReqVO reqVO) {
|
||||||
String taskId = reqVO.getId();
|
String taskId = reqVO.getId();
|
||||||
// 1.1 校验任务
|
// 1.1 校验任务
|
||||||
Task task = validateTask(userId, reqVO.getId());
|
Task task = validateTask(userId, reqVO.getId(), true);
|
||||||
if (task.getAssignee().equals(reqVO.getAssigneeUserId().toString())) { // 校验当前审批人和被转派人不是同一人
|
if (task.getAssignee().equals(reqVO.getAssigneeUserId().toString())) { // 校验当前审批人和被转派人不是同一人
|
||||||
throw exception(TASK_TRANSFER_FAIL_USER_REPEAT);
|
throw exception(TASK_TRANSFER_FAIL_USER_REPEAT);
|
||||||
}
|
}
|
||||||
@@ -994,7 +1060,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
if (BpmTaskStatusEnum.isEndStatus(otherTaskStatus)) {
|
if (BpmTaskStatusEnum.isEndStatus(otherTaskStatus)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
processTaskCanceled(task.getId());
|
processTaskCanceled(task.getId(), null);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 2. 终止流程
|
// 2. 终止流程
|
||||||
@@ -1066,7 +1132,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
* @return 当前任务
|
* @return 当前任务
|
||||||
*/
|
*/
|
||||||
private TaskEntityImpl validateTaskCanCreateSign(Long userId, BpmTaskSignCreateReqVO reqVO) {
|
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
|
if (taskEntity.getScopeType() != null
|
||||||
&& ObjectUtil.notEqual(taskEntity.getScopeType(), reqVO.getType())) {
|
&& ObjectUtil.notEqual(taskEntity.getScopeType(), reqVO.getType())) {
|
||||||
@@ -1217,7 +1283,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2. 任务前置通知
|
// 2. 任务前置通知
|
||||||
if (ObjUtil.isNotNull(processDefinitionInfo.getTaskBeforeTriggerSetting())){
|
if (ObjUtil.isNotNull(processDefinitionInfo.getTaskBeforeTriggerSetting())) {
|
||||||
BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getTaskBeforeTriggerSetting();
|
BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getTaskBeforeTriggerSetting();
|
||||||
BpmHttpRequestUtils.executeBpmHttpRequest(processInstance,
|
BpmHttpRequestUtils.executeBpmHttpRequest(processInstance,
|
||||||
setting.getUrl(), setting.getHeader(), setting.getBody(), true, setting.getResponse());
|
setting.getUrl(), setting.getHeader(), setting.getBody(), true, setting.getResponse());
|
||||||
@@ -1281,7 +1347,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
* 2. 审批不通过:在 {@link #rejectTask(Long, BpmTaskRejectReqVO)} 不通过时,对于加签的任务,不会被 Flowable 删除,此时需要通过该方法更新状态为已取消
|
* 2. 审批不通过:在 {@link #rejectTask(Long, BpmTaskRejectReqVO)} 不通过时,对于加签的任务,不会被 Flowable 删除,此时需要通过该方法更新状态为已取消
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void processTaskCanceled(String taskId) {
|
public void processTaskCanceled(String taskId, String reason) {
|
||||||
Task task = getTask(taskId);
|
Task task = getTask(taskId);
|
||||||
// 1. 可能只是活动,不是任务,所以查询不到
|
// 1. 可能只是活动,不是任务,所以查询不到
|
||||||
if (task == null) {
|
if (task == null) {
|
||||||
@@ -1295,7 +1361,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
log.error("[updateTaskStatusWhenCanceled][taskId({}) 处于结果({}),无需进行更新]", taskId, status);
|
log.error("[updateTaskStatusWhenCanceled][taskId({}) 处于结果({}),无需进行更新]", taskId, status);
|
||||||
return;
|
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 添加理由,所以无法存储具体的取消理由
|
// 补充说明:由于 Task 被删除成 HistoricTask 后,无法通过 taskService.addComment 添加理由,所以无法存储具体的取消理由
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1344,7 +1410,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
.taskVariableValueEquals(BpmnVariableConstants.TASK_VARIABLE_STATUS, BpmTaskStatusEnum.APPROVE.getStatus())
|
.taskVariableValueEquals(BpmnVariableConstants.TASK_VARIABLE_STATUS, BpmTaskStatusEnum.APPROVE.getStatus())
|
||||||
.finished();
|
.finished();
|
||||||
if (BpmAutoApproveTypeEnum.APPROVE_ALL.getType().equals(processDefinitionInfo.getAutoApprovalType())
|
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())
|
getSelf().approveTask(Long.valueOf(task.getAssignee()), new BpmTaskApproveReqVO().setId(task.getId())
|
||||||
.setReason(BpmAutoApproveTypeEnum.APPROVE_ALL.getName()));
|
.setReason(BpmAutoApproveTypeEnum.APPROVE_ALL.getName()));
|
||||||
return;
|
return;
|
||||||
@@ -1356,7 +1422,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<String> sourceTaskIds = convertList(BpmnModelUtils.getElementIncomingFlows( // 获取所有上一个节点
|
List<String> sourceTaskIds = convertList(BpmnModelUtils.getElementIncomingFlows( // 获取所有上一个节点
|
||||||
BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey())),
|
BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey())),
|
||||||
SequenceFlow::getSourceRef);
|
SequenceFlow::getSourceRef);
|
||||||
if (sameAssigneeQuery.taskDefinitionKeys(sourceTaskIds).count() > 0) {
|
if (sameAssigneeQuery.taskDefinitionKeys(sourceTaskIds).count() > 0) {
|
||||||
getSelf().approveTask(Long.valueOf(task.getAssignee()), new BpmTaskApproveReqVO().setId(task.getId())
|
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();
|
BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getTaskAfterTriggerSetting();
|
||||||
BpmHttpRequestUtils.executeBpmHttpRequest(processInstance,
|
BpmHttpRequestUtils.executeBpmHttpRequest(processInstance,
|
||||||
setting.getUrl(), setting.getHeader(), setting.getBody(), true, setting.getResponse());
|
setting.getUrl(), setting.getHeader(), setting.getBody(), true, setting.getResponse());
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.zt.plat.module.bpm.service.task.trigger.form;
|
package com.zt.plat.module.bpm.service.task.trigger.form;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
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.framework.common.util.json.JsonUtils;
|
||||||
import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
|
import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
|
||||||
import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum;
|
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.framework.flowable.core.util.SimpleModelUtils;
|
||||||
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
||||||
import com.zt.plat.module.bpm.service.task.trigger.BpmTrigger;
|
import com.zt.plat.module.bpm.service.task.trigger.BpmTrigger;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.zt.plat.module.bpm.service.task.trigger.form;
|
package com.zt.plat.module.bpm.service.task.trigger.form;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
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.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.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO.TriggerSetting.FormTriggerSetting;
|
||||||
import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum;
|
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.framework.flowable.core.util.SimpleModelUtils;
|
||||||
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
|
||||||
import com.zt.plat.module.bpm.service.task.trigger.BpmTrigger;
|
import com.zt.plat.module.bpm.service.task.trigger.BpmTrigger;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import jakarta.annotation.Resource;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.engine.runtime.ProcessInstance;
|
import org.flowable.engine.runtime.ProcessInstance;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BPM HTTP 回调触发器
|
* BPM HTTP 回调触发器
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import jakarta.annotation.Resource;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.engine.runtime.ProcessInstance;
|
import org.flowable.engine.runtime.ProcessInstance;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BPM 发送同步 HTTP 请求触发器
|
* BPM 发送同步 HTTP 请求触发器
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import liquibase.statement.DatabaseFunction;
|
|||||||
import liquibase.util.StringUtil;
|
import liquibase.util.StringUtil;
|
||||||
|
|
||||||
import java.util.Locale;
|
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)
|
@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 {
|
public class BooleanType extends LiquibaseDataType {
|
||||||
|
|||||||
@@ -12,8 +12,29 @@
|
|||||||
*/
|
*/
|
||||||
package org.flowable.common.engine.impl;
|
package org.flowable.common.engine.impl;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import java.io.InputStream;
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
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.commons.lang3.StringUtils;
|
||||||
import org.apache.ibatis.builder.xml.XMLConfigBuilder;
|
import org.apache.ibatis.builder.xml.XMLConfigBuilder;
|
||||||
import org.apache.ibatis.builder.xml.XMLMapperBuilder;
|
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.TransactionFactory;
|
||||||
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
|
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
|
||||||
import org.apache.ibatis.transaction.managed.ManagedTransactionFactory;
|
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.FlowableException;
|
||||||
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
|
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
|
||||||
import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher;
|
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.IdGenerator;
|
||||||
import org.flowable.common.engine.impl.cfg.TransactionContextFactory;
|
import org.flowable.common.engine.impl.cfg.TransactionContextFactory;
|
||||||
import org.flowable.common.engine.impl.cfg.standalone.StandaloneMybatisTransactionContextFactory;
|
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.EventDispatchAction;
|
||||||
import org.flowable.common.engine.impl.event.FlowableEventDispatcherImpl;
|
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.LockManager;
|
||||||
import org.flowable.common.engine.impl.lock.LockManagerImpl;
|
import org.flowable.common.engine.impl.lock.LockManagerImpl;
|
||||||
import org.flowable.common.engine.impl.logging.LoggingListener;
|
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.StrongUuidGenerator;
|
||||||
import org.flowable.common.engine.impl.persistence.cache.EntityCache;
|
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.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.ByteArrayDataManager;
|
||||||
import org.flowable.common.engine.impl.persistence.entity.data.PropertyDataManager;
|
import org.flowable.common.engine.impl.persistence.entity.data.PropertyDataManager;
|
||||||
import org.flowable.common.engine.impl.persistence.entity.data.impl.MybatisByteArrayDataManager;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import javax.naming.InitialContext;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import javax.sql.DataSource;
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.Reader;
|
|
||||||
import java.sql.*;
|
|
||||||
import java.time.Duration;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public abstract class AbstractEngineConfiguration {
|
public abstract class AbstractEngineConfiguration {
|
||||||
|
|
||||||
|
|||||||
@@ -4,15 +4,15 @@ import cn.hutool.core.util.RandomUtil;
|
|||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.json.JsonUtils;
|
import com.zt.plat.framework.common.util.json.JsonUtils;
|
||||||
import com.zt.plat.framework.test.core.ut.BaseDbUnitTest;
|
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.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.dataobject.definition.BpmFormDO;
|
||||||
import com.zt.plat.module.bpm.dal.mysql.definition.BpmFormMapper;
|
import com.zt.plat.module.bpm.dal.mysql.definition.BpmFormMapper;
|
||||||
import com.zt.plat.module.bpm.service.definition.dto.BpmFormFieldRespDTO;
|
import com.zt.plat.module.bpm.service.definition.dto.BpmFormFieldRespDTO;
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|||||||
@@ -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.ut.BaseDbUnitTest;
|
||||||
import com.zt.plat.framework.test.core.util.AssertUtils;
|
import com.zt.plat.framework.test.core.util.AssertUtils;
|
||||||
import com.zt.plat.framework.test.core.util.RandomUtils;
|
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.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.dataobject.definition.BpmUserGroupDO;
|
||||||
import com.zt.plat.module.bpm.dal.mysql.definition.BpmUserGroupMapper;
|
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.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import static com.zt.plat.framework.common.util.date.LocalDateTimeUtils.buildTime;
|
import static com.zt.plat.framework.common.util.date.LocalDateTimeUtils.buildTime;
|
||||||
|
|||||||
@@ -257,7 +257,7 @@ public class AdminAuthServiceImplTest extends BaseDbUnitTest {
|
|||||||
// 准备参数
|
// 准备参数
|
||||||
String mobile = randomString();
|
String mobile = randomString();
|
||||||
String code = randomString();
|
String code = randomString();
|
||||||
AuthSmsLoginReqVO reqVO = new AuthSmsLoginReqVO(mobile, code);
|
AuthSmsLoginReqVO reqVO = new AuthSmsLoginReqVO(mobile, code,null);
|
||||||
// mock 方法(验证码)
|
// mock 方法(验证码)
|
||||||
when(smsCodeApi.useSmsCode(argThat(smsCodeUseReqDTO -> {
|
when(smsCodeApi.useSmsCode(argThat(smsCodeUseReqDTO -> {
|
||||||
assertEquals(mobile, smsCodeUseReqDTO.getMobile());
|
assertEquals(mobile, smsCodeUseReqDTO.getMobile());
|
||||||
|
|||||||
Reference in New Issue
Block a user