Compare commits
9 Commits
master
...
1.5.0-u1-S
| Author | SHA1 | Date | |
|---|---|---|---|
| cbb4173f36 | |||
| 41ee24d0c4 | |||
| 04ae6ceda6 | |||
| fd735dd90a | |||
| 8838462f8a | |||
| 310d51fa5e | |||
| fcd05038fe | |||
| 512ecba4e0 | |||
| 00255d57a6 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -38,5 +38,4 @@ application-local.yml
|
||||
*.log
|
||||
|
||||
rebel.xml
|
||||
.flattened-pom.xml
|
||||
.DS_Store
|
||||
.flattened-pom.xml
|
||||
14
Changelog.md
14
Changelog.md
@ -1,18 +1,4 @@
|
||||
# Change logs
|
||||
### 1.5.1-SNAPSHOT
|
||||
|
||||
> - 集成表单引擎
|
||||
> - 新增表单组件文本框和附件的支撑
|
||||
|
||||
### 1.5.0-SNAPSHOT
|
||||
|
||||
> - 新增 ElasticSearch 组件支撑
|
||||
> - 提供 ES 相关的搜索查询功能
|
||||
|
||||
### 1.4.1-SNAPSHOT
|
||||
|
||||
> - 配合 REQ-2616 完成工程完结需求
|
||||
> - 新增业务节点定时回调功能
|
||||
|
||||
### 1.4.0-SNAPSHOT
|
||||
|
||||
|
||||
40
pom.xml
40
pom.xml
@ -13,13 +13,12 @@
|
||||
<artifactId>workflow-engine</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>${revision}</version>
|
||||
<name>Workflow Engine</name>
|
||||
<name>workflow-engine</name>
|
||||
|
||||
<properties>
|
||||
<revision>1.5.4-SNAPSHOT</revision>
|
||||
<revision>1.5.0-SNAPSHOT</revision>
|
||||
<axzo-bom.version>2.0.0-SNAPSHOT</axzo-bom.version>
|
||||
<axzo-dependencies.version>2.0.0-SNAPSHOT</axzo-dependencies.version>
|
||||
<axzo-dependencies.org.version>1.0.0-SNAPSHOT</axzo-dependencies.org.version>
|
||||
<feign-httpclient.version>11.8</feign-httpclient.version>
|
||||
<lombok.version>1.18.22</lombok.version>
|
||||
<mapstruct.version>1.4.2.Final</mapstruct.version>
|
||||
@ -30,9 +29,6 @@
|
||||
<javaparse.version>3.26.0</javaparse.version>
|
||||
<elasticsearch.version>7.10.2</elasticsearch.version>
|
||||
<easy-es.version>2.0.0</easy-es.version>
|
||||
<xxl-job.version>2.5.0</xxl-job.version>
|
||||
<workflow-engine-common.version>0.0.1-SNAPSHOT</workflow-engine-common.version>
|
||||
<adapter.version>2.0.1-SNAPSHOT</adapter.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@ -51,12 +47,6 @@
|
||||
<version>${axzo-dependencies.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.xuxueli</groupId>
|
||||
<artifactId>xxl-job-core</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.openfeign</groupId>
|
||||
@ -76,11 +66,6 @@
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>workflow-engine-common</artifactId>
|
||||
<version>${workflow-engine-common.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>workflow-engine-form</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -165,26 +150,6 @@
|
||||
<artifactId>riven-api</artifactId>
|
||||
<version>${axzo-dependencies.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.org</groupId>
|
||||
<artifactId>org-api</artifactId>
|
||||
<version>${axzo-dependencies.org.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.xuxueli</groupId>
|
||||
<artifactId>xxl-job-core</artifactId>
|
||||
<version>${xxl-job.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.nanopart</groupId>
|
||||
<artifactId>doc-api</artifactId>
|
||||
<version>${axzo-dependencies.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.infra</groupId>
|
||||
<artifactId>adapter</artifactId>
|
||||
<version>${adapter.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
@ -228,7 +193,6 @@
|
||||
<module>workflow-engine-api</module>
|
||||
<module>workflow-engine-axzo-ext</module>
|
||||
<module>workflow-engine-common</module>
|
||||
<module>workflow-engine-form</module>
|
||||
<module>workflow-engine-core</module>
|
||||
<module>workflow-engine-elasticsearch</module>
|
||||
<module>workflow-engine-server</module>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>workflow-engine-common</artifactId>
|
||||
<version>${workflow-engine-common.version}</version>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.openfeign</groupId>
|
||||
|
||||
@ -13,6 +13,7 @@ import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.FileSystem;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
@ -83,7 +84,7 @@ public class WorkflowEngineClientAutoConfiguration {
|
||||
Map<String, String> env = new HashMap<>();
|
||||
env.put("create", "true");
|
||||
try {
|
||||
FileSystems.newFileSystem(location.toURI(), env);
|
||||
FileSystem zipfs = FileSystems.newFileSystem(location.toURI(), env);
|
||||
} catch (Exception e1) {
|
||||
log.error("linux env create new FS error: {}", e1.getMessage());
|
||||
}
|
||||
@ -101,7 +102,7 @@ public class WorkflowEngineClientAutoConfiguration {
|
||||
Map<String, String> env = new HashMap<>();
|
||||
env.put("create", "true");
|
||||
try {
|
||||
FileSystems.newFileSystem(location.toURI(), env);
|
||||
FileSystem zipfs = FileSystems.newFileSystem(location.toURI(), env);
|
||||
} catch (Exception e) {
|
||||
log.error("linux env create new FS error: {}", e.getMessage());
|
||||
}
|
||||
|
||||
@ -24,7 +24,6 @@ public class WorkflowRequestInterceptor implements RequestInterceptor {
|
||||
public static final String HEADER_HTTP_CLIENT_VALUE = "WorkflowEngine-Feign";
|
||||
public static final String HEADER_API_VERSION = "Service-Version";
|
||||
public static final String HEADER_SERVER_NAME = "X-SERVER-NAME";
|
||||
public static final String HEADER_W_E = "WE";
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package cn.axzo.workflow.client.feign.bpmn;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.activity.BpmnActivityTimeoutCallbackDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.activity.BpmnActivityTimeoutTriggerDTO;
|
||||
@ -17,9 +16,6 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.ASYNC;
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
/**
|
||||
* 流程活动的 API
|
||||
*
|
||||
@ -37,8 +33,6 @@ public interface ProcessActivityApi {
|
||||
*/
|
||||
@Deprecated
|
||||
@GetMapping("/api/process/activity/trigger")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> trigger(@NotBlank(message = "触发 ID 不能为空") @RequestParam String triggerId);
|
||||
|
||||
/**
|
||||
@ -48,7 +42,6 @@ public interface ProcessActivityApi {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/activity/trigger")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> trigger(@Validated @RequestBody BpmnActivityTriggerDTO dto);
|
||||
|
||||
|
||||
@ -64,7 +57,6 @@ public interface ProcessActivityApi {
|
||||
*/
|
||||
@PostMapping("/api/process/activity/assignee/set")
|
||||
@Operation(summary = "业务节点设置审批人,不支持重复调用设置审批人,需一次性传入所有审批人")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> setAssignee(@Validated @RequestBody BpmnActivitySetAssigneeDTO dto);
|
||||
|
||||
/**
|
||||
@ -73,8 +65,8 @@ public interface ProcessActivityApi {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/activity/timeout/trigger")
|
||||
@Manageable
|
||||
@Operation(summary = "设置指定业务节点定时继续往下执行")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> setTimeoutTrigger(@Validated @RequestBody BpmnActivityTimeoutTriggerDTO dto);
|
||||
|
||||
/**
|
||||
@ -82,8 +74,8 @@ public interface ProcessActivityApi {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Manageable
|
||||
@PostMapping("/api/process/activity/timeout/callback")
|
||||
@Operation(summary = "设置指定业务节点定时回调")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> setTimeoutCallback(@Validated @RequestBody BpmnActivityTimeoutCallbackDTO dto);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.workflow.client.feign.bpmn;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO;
|
||||
@ -9,6 +10,7 @@ import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessDefinitionP
|
||||
import cn.axzo.workflow.common.model.response.BpmPageResult;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
@ -18,7 +20,6 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID;
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
/**
|
||||
@ -80,8 +81,7 @@ public interface ProcessDefinitionApi {
|
||||
*/
|
||||
@GetMapping("/api/process/definition/active/getByKey")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<BpmnProcessDefinitionVO> getActiveProcessDefinitionByKey(@NotBlank(message = "模型定义KEY不能为空") @RequestParam String key,
|
||||
@RequestParam(required = false, defaultValue = NO_TENANT_ID) String tenantId);
|
||||
CommonResponse<BpmnProcessDefinitionVO> getActiveProcessDefinitionByKey(@NotBlank(message = "模型定义KEY不能为空") @RequestParam String key);
|
||||
|
||||
|
||||
/**
|
||||
@ -113,7 +113,7 @@ public interface ProcessDefinitionApi {
|
||||
@GetMapping("/api/process/definition/active/json/model")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<BpmnModelUpdateDTO> getActiveProcessDefinitionJsonModel(@NotBlank(message = "模型 ID 不能为空") @RequestParam(required = false) String modelId,
|
||||
@NotBlank(message = "分类不能为空") @RequestParam(required = false) String key,
|
||||
@NotBlank(message = "分类不能为空") @RequestParam(required = false) String category,
|
||||
@RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
|
||||
@ -3,37 +3,23 @@ package cn.axzo.workflow.client.feign.bpmn;
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.dto.SignFileDTO;
|
||||
import cn.axzo.workflow.common.model.dto.SimpleDocDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BeforeProcessInstanceCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAdminPageReqVO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceBatchQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCancelDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCarbonCopyDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCheckApproverDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCreateWithFormDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceLogQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceMyPageReqVO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.SuperBpmnProcessInstanceCancelDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.doc.ApproverReadStatusDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.doc.ChangeApproverReadStatusDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.doc.ProcessDocQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskButtonSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.form.instance.FormVariablesUpdateDTO;
|
||||
import cn.axzo.workflow.common.model.response.BpmPageResult;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceAdminPageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceLogVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.ExtProcessLogVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.NodesByModelVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.ProcessNodeDetailVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.doc.DocPendingVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskButtonVo;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@ -51,7 +37,6 @@ import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.ASYNC;
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
/**
|
||||
@ -63,18 +48,6 @@ import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
//@FeignClient(name = "workflow-engine", url = "${axzo.service.workflow-engine:http://workflow-engine:8080}", configuration = CommonFeignConfiguration.class)
|
||||
@WorkflowEngineFeignClient
|
||||
public interface ProcessInstanceApi {
|
||||
|
||||
/**
|
||||
* 创建流程前的节点列表
|
||||
* 用于发起人自选
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "创建审批流程前,返回模型节点列表以及节点能否设置审批人")
|
||||
@PostMapping("/api/process/instance/create/before")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<NodesByModelVO>> nodesBeforeCreateProcessInstance(@Validated @RequestBody BeforeProcessInstanceCreateDTO dto);
|
||||
|
||||
/**
|
||||
* 创建审批流程
|
||||
*
|
||||
@ -105,13 +78,8 @@ public interface ProcessInstanceApi {
|
||||
*/
|
||||
@Operation(summary = "发起人主动撤回审核,MQ 触发规则:1. 当前流程实例中现存的任务会依次触发 process-task-deleted 事件,2. 当前流程实例会触发 process-instance-cancelled 事件")
|
||||
@DeleteMapping("/api/process/instance/cancel")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> cancelProcessInstance(@Validated @RequestBody BpmnProcessInstanceCancelDTO dto);
|
||||
|
||||
@DeleteMapping("/api/process/instance/super/cancel")
|
||||
@Manageable
|
||||
CommonResponse<Boolean> superCancelProcessInstance(@Validated @RequestBody SuperBpmnProcessInstanceCancelDTO dto);
|
||||
|
||||
/**
|
||||
* 中止流程实例
|
||||
*
|
||||
@ -120,7 +88,6 @@ public interface ProcessInstanceApi {
|
||||
*/
|
||||
@Operation(summary = "中止流程实例")
|
||||
@DeleteMapping("/api/process/instance/abort")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> abortProcessInstance(@Validated @RequestBody BpmnProcessInstanceAbortDTO dto);
|
||||
|
||||
/**
|
||||
@ -131,7 +98,6 @@ public interface ProcessInstanceApi {
|
||||
*/
|
||||
@Operation(summary = "批量中止流程实例")
|
||||
@DeleteMapping("/api/process/instance/batch/abort")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<BatchOperationResultVO> batchAbortProcessInstance(@Validated @RequestBody List<BpmnProcessInstanceAbortDTO> dtos);
|
||||
|
||||
/**
|
||||
@ -156,17 +122,6 @@ public interface ProcessInstanceApi {
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<BpmnProcessInstanceVO> getProcessInstanceVO(@Validated @RequestBody BpmnProcessInstanceQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 批量获得流程实例
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "批量获得流程实例")
|
||||
@PostMapping("/api/process/instance/batch/get")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<BpmnProcessInstanceVO>> getBatchProcessInstanceVO(@Validated @RequestBody BpmnProcessInstanceBatchQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定流程实例的流程变量
|
||||
*
|
||||
@ -180,6 +135,18 @@ public interface ProcessInstanceApi {
|
||||
CommonResponse<Map<String, Object>> getProcessVariables(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam String processInstanceId,
|
||||
@Nullable @RequestParam(required = false) String tenantId);
|
||||
|
||||
/**
|
||||
* 创建审批流程并带上表单
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "创建审批流程并带上表单")
|
||||
@PostMapping("/api/process/instance/form/create")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<String> createProcessInstanceWith(@Validated @RequestBody BpmnProcessInstanceCreateWithFormDTO dto);
|
||||
|
||||
/**
|
||||
* 查询所有的审批流
|
||||
*
|
||||
@ -267,12 +234,13 @@ public interface ProcessInstanceApi {
|
||||
CommonResponse<List<String>> getTenantIds();
|
||||
|
||||
/**
|
||||
* 校验指定流程实例下,是否存在指定的审批人正处理待审批
|
||||
* 校验指定流程实例下,是否存在指定的审批人
|
||||
*
|
||||
* @return true 是在当前流程实例中,存在指定的审批人
|
||||
*/
|
||||
@Operation(summary = "校验指定流程实例下,是否存在指定的审批人")
|
||||
@PostMapping("/api/process/instance/check/approver")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> checkInstanceApprover(@Validated @RequestBody BpmnProcessInstanceCheckApproverDTO dto);
|
||||
|
||||
@ -286,76 +254,4 @@ public interface ProcessInstanceApi {
|
||||
@PostMapping("/api/process/instance/logs")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<BpmnProcessInstanceLogVO> getProcessInstanceLogs(@Validated @RequestBody BpmnProcessInstanceLogQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 根据任务id查询任务状态,按钮详情
|
||||
*
|
||||
* @param taskButtonsSearchDTO 请求参数
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "根据任务id查询任务状态,按钮详情")
|
||||
@PostMapping("/api/process/instance/task/buttons/find")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<BpmnTaskButtonVo> findProcessSingleTaskButtons(@Validated @RequestBody BpmnTaskButtonSearchDTO taskButtonsSearchDTO);
|
||||
|
||||
/**
|
||||
* 更新指定流程表单最后一次编辑的内容
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "更新指定流程表单最后一次编辑的内容")
|
||||
@PostMapping("/api/process/instance/form/variable/update")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> updateInstanceFormVariables(@Validated @RequestBody FormVariablesUpdateDTO dto);
|
||||
|
||||
/**
|
||||
* 签署业务流程实例在审批待办中查询使用的文档列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "签署业务流程实例在审批待办中查询使用的文档列表")
|
||||
@PostMapping("/api/process/instance/select/doc/list")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<DocPendingVO>> processInstanceSelectDocs(@Validated @RequestBody ProcessDocQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 获取审批人阅读状态
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取审批人阅读状态")
|
||||
@PostMapping("/api/process/instance/approver/read/status")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<SimpleDocDTO>> approverReadStatus(@Validated @RequestBody ApproverReadStatusDTO dto);
|
||||
|
||||
/**
|
||||
* 修改审批人关联文档阅读状态
|
||||
*/
|
||||
@Operation(summary = "修改审批人关联文档阅读状态")
|
||||
@PostMapping("/api/process/instance/approver/read/status/change")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> approveReadStatusChange(@Validated @RequestBody ChangeApproverReadStatusDTO dto);
|
||||
|
||||
/**
|
||||
* 获取签署业务流程最后替换的文档 fileKey 集合
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取签署业务流程最后替换的文档 fileKey 集合")
|
||||
@GetMapping("/api/process/instance/final/docs")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<SignFileDTO>> getProcessInstanceFinalDocs(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam(required = false) String processInstanceId);
|
||||
|
||||
/**
|
||||
* 查询 ExtAxProcessLog 表中审批人的冗余信息
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "查询 ExtAxProcessLog 表中审批人的冗余信息")
|
||||
@GetMapping("/api/process/instance/log/approve/ext")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<ExtProcessLogVO>> getProcessLogByInstanceIdAndPersonId(@Validated @RequestBody LogApproveSearchDTO dto);
|
||||
}
|
||||
|
||||
@ -1,29 +1,18 @@
|
||||
package cn.axzo.workflow.client.feign.bpmn;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelUpdateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocByIdDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocOrderDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocResetDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocStatusDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocTenantQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocUpdateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintTemplateConfigQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.RestPrintTemplateConfigDTO;
|
||||
import cn.axzo.workflow.common.model.response.BpmPageResult;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelDetailVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelExtVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.model.doc.DocBaseVO;
|
||||
import cn.axzo.workflow.common.model.response.print.PrintModelDTO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@ -180,24 +169,9 @@ public interface ProcessModelApi {
|
||||
@Operation(summary = "修改模型状态")
|
||||
@PostMapping("/api/process/model/changeStatus")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> changeStatus(@NotBlank(message = "模型 ID 不能为空") @RequestParam String modelId,
|
||||
@NotNull(message = "状态不能为空") @RequestParam Integer status,
|
||||
@RequestParam(required = false) String operator);
|
||||
|
||||
/**
|
||||
* 修改模型打印开关状态
|
||||
*
|
||||
* @param modelId
|
||||
* @param status
|
||||
* @param operator
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改模型打印开关状态")
|
||||
@PostMapping("/api/process/model/print/changeStatus")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> changePrintStatus(@NotBlank(message = "模型 ID 不能为空") @RequestParam String modelId,
|
||||
@NotNull(message = "状态不能为空") @RequestParam Integer status,
|
||||
@RequestParam(required = false) String operator);
|
||||
CommonResponse<Void> changeStatus(@NotBlank(message = "模型 ID 不能为空") @RequestParam String modelId,
|
||||
@NotNull(message = "状态不能为空") @RequestParam Integer status,
|
||||
@RequestParam(required = false) String operator);
|
||||
|
||||
/**
|
||||
* 查询流程模型使用的分类列表
|
||||
@ -218,163 +192,4 @@ public interface ProcessModelApi {
|
||||
@GetMapping("/api/process/model/tenant/ids")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<String>> getModelTenantIds();
|
||||
|
||||
/**
|
||||
* 获取打印模板配置内容
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取打印模板配置内容")
|
||||
@PostMapping("/api/process/model/print/template/config/query")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<PrintModelDTO> getPrintTemplateConfig(@Validated @RequestBody PrintTemplateConfigQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 代运营充值的打印模板
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "代运营重置打印模板")
|
||||
@PostMapping(value = "/api/process/model/print/template/config/reset")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> resetPrintTemplateConfig(@Validated @RequestBody RestPrintTemplateConfigDTO dto);
|
||||
|
||||
/**
|
||||
* 搜索文档列表
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "搜索文档列表")
|
||||
@PostMapping(value = "/api/process/model/doc/page")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<BpmPageResult<DocBaseVO>> docPage(@Validated @RequestBody DocSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定 docIds 文档列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取指定 docIds 文档列表")
|
||||
@PostMapping(value = "/api/process/model/doc/ids")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<DocBaseVO>> docByIds(@Validated @RequestBody DocByIdDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定模板的原始文档列表
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "根据业务 ID 获取模型文档列表,自动适配公共模板和代运营")
|
||||
@PostMapping(value = "/api/process/model/doc/list")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<DocBaseVO>> docList(@Validated @RequestBody DocQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 获取关联 HiPrint 类型文档模板内容
|
||||
*
|
||||
* @param fileRelationId
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取关联 HiPrint 类型文档模板内容")
|
||||
@PostMapping(value = "/api/process/model/hi-print/content/get")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<String> getHiPrintContent(@RequestParam String fileRelationId);
|
||||
|
||||
/**
|
||||
* 添加关联文档
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "添加关联文档")
|
||||
@PutMapping(value = "/api/process/model/doc/create")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> createDoc(@Validated @RequestBody DocCreateDTO dto);
|
||||
|
||||
/**
|
||||
* 修改关联文档
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "修改关联文档")
|
||||
@PostMapping(value = "/api/process/model/doc/update")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> updateDoc(@Validated @RequestBody DocUpdateDTO dto);
|
||||
|
||||
/**
|
||||
* 克隆关联文档
|
||||
*
|
||||
* @param docId
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "克隆关联文档")
|
||||
@PostMapping(value = "/api/process/model/doc/clone")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> cloneDoc(@RequestParam("id") Long docId);
|
||||
|
||||
/**
|
||||
* 删除关联文档
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "删除指定文档")
|
||||
@DeleteMapping(value = "/api/process/model/doc/delete")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> deleteDoc(@RequestParam("id") Long docId);
|
||||
|
||||
/**
|
||||
* 关联文档配置排序
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "关联文档配置排序")
|
||||
@PostMapping(value = "/api/process/model/doc/order")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> orderDoc(@Validated @RequestBody DocOrderDTO dto);
|
||||
|
||||
/**
|
||||
* 重置关联文档
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "重置关联文档配置")
|
||||
@PostMapping(value = "/api/process/model/doc/reset")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> resetDoc(@Validated @RequestBody DocResetDTO dto);
|
||||
|
||||
/**
|
||||
* 设置关联文档的停启用状态
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "设置关联文档的停启用状态")
|
||||
@PostMapping(value = "/api/process/model/doc/status")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> statusDoc(@Validated @RequestBody DocStatusDTO dto);
|
||||
|
||||
/**
|
||||
* 设置关联文档的必选状态
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "设置关联文档的必选状态")
|
||||
@PostMapping(value = "/api/process/model/doc/require")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> requireDoc(@Validated @RequestBody DocStatusDTO dto);
|
||||
|
||||
/**
|
||||
* 特殊的查询设置过关联过文档的工作台 ID 集合
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "特殊的查询设置过关联过文档的工作台 ID 集合")
|
||||
@PostMapping(value = "/api/process/model/has/docs/tenantId")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<Long>> hasFilesTenantIds(@Validated @RequestBody DocTenantQueryDTO dto);
|
||||
}
|
||||
|
||||
@ -3,19 +3,16 @@ package cn.axzo.workflow.client.feign.bpmn;
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnNodeBackSystemOperateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnOptionalNodeDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAttachmentDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditWithFormDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskBackAuditDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCountersignDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskPageSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskRemindDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskResetApproversDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskTransferDTO;
|
||||
import cn.axzo.workflow.common.model.response.BpmPageResult;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
|
||||
@ -38,7 +35,6 @@ import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.ASYNC;
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
|
||||
@ -65,20 +61,8 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "同意,MQ 触发规则:1. 当前审批任务会依次触发 process-task-completed 和 process-task-deleted 事件(如果有下一级审批,则会触发第 2.1 点中的事件,如果当前审核任务最后一级审批,则会触发第 2.2 点中的事件),2.1. 下一级审批任务会依次触发 process-task-assigned 和 process-task-created 事件,2.2. 流程实例正常结束会触发 process-instance-completed 事件")
|
||||
@PostMapping("/api/process/task/approve")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> approveTask(@Validated @RequestBody BpmnTaskAuditDTO dto);
|
||||
|
||||
/**
|
||||
* 同意时并提交表单数据
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "同意时并提交表单")
|
||||
@PostMapping("/api/process/task/form/approve")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> approveTaskWithForm(@Validated @RequestBody BpmnTaskAuditWithFormDTO dto);
|
||||
|
||||
/**
|
||||
* 批量同意
|
||||
*
|
||||
@ -87,42 +71,26 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "批量同意")
|
||||
@PostMapping("/api/process/task/batch/approve")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<BatchOperationResultVO> batchApproveTask(@Validated @RequestBody List<BpmnTaskAuditDTO> dtos);
|
||||
|
||||
/**
|
||||
* 获取当前节点可回退节点选项列表
|
||||
*
|
||||
* @param taskId 当前任务id
|
||||
* @return 可以回退节点列表
|
||||
*/
|
||||
@Operation(summary = "获取当前节点可回退节点选项列表")
|
||||
@GetMapping("/api/process/task/back/optional/nodes")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<BpmnOptionalNodeDTO>> getBackOptionalNodes(@RequestParam @NotBlank(message = "任务id不能为空") String taskId);
|
||||
|
||||
/**
|
||||
* 回退到指定节点
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "回退")
|
||||
@PostMapping("/api/process/task/back")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> backTask(@Validated @RequestBody BpmnTaskBackAuditDTO dto);
|
||||
|
||||
/**
|
||||
* 用于系统内部操作,跳转到指定节点
|
||||
*
|
||||
* @param dto 请求参数
|
||||
* @return 是否成功
|
||||
*/
|
||||
@Operation(summary = "系统操作回退任务到指定节点")
|
||||
@PostMapping("/api/process/task/system/back")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> systemBackTask(@Validated @RequestBody BpmnNodeBackSystemOperateDTO dto);
|
||||
|
||||
/**
|
||||
* 驳回
|
||||
*
|
||||
@ -134,7 +102,6 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "驳回,MQ 触发规则:1. 当前审批任务会触发 process-task-deleted 事件, 2. 当前流程实例会触发 process-instance-rejected 事件")
|
||||
@PostMapping("/api/process/task/reject")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> rejectTask(@Validated @RequestBody BpmnTaskAuditDTO dto);
|
||||
|
||||
/**
|
||||
@ -144,7 +111,6 @@ public interface ProcessTaskApi {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/process/task/batch/reject")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<BatchOperationResultVO> batchRejectTask(@Validated @RequestBody List<BpmnTaskAuditDTO> dtos);
|
||||
|
||||
/**
|
||||
@ -155,7 +121,6 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "直接修改审批任务的审批人")
|
||||
@PostMapping("/api/process/task/transfer")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> transferTask(@Validated @RequestBody BpmnTaskTransferDTO dto);
|
||||
|
||||
/**
|
||||
@ -166,7 +131,6 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "批量修改审批任务的审批人")
|
||||
@PostMapping("/api/process/task/batch/transfer")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<BatchOperationResultVO> batchTransferTask(@Validated @RequestBody List<BpmnTaskTransferDTO> dtos);
|
||||
|
||||
/**
|
||||
@ -177,7 +141,6 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "审批流程评论")
|
||||
@PostMapping("/api/process/task/comment")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> commentTask(@Validated @RequestBody BpmnTaskCommentDTO dto);
|
||||
|
||||
/**
|
||||
@ -188,20 +151,8 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "审批流程加签")
|
||||
@PostMapping("/api/process/task/countersign")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> countersignTask(@Validated @RequestBody BpmnTaskCountersignDTO dto);
|
||||
|
||||
/**
|
||||
* 重置节点审批人(提级审批)
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "重置节点审批人(提级审批)")
|
||||
@PostMapping("/api/process/task/approvers/reset")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> resetTaskApprovers(@Validated @RequestBody BpmnTaskResetApproversDTO dto);
|
||||
|
||||
/**
|
||||
* 催办
|
||||
*
|
||||
@ -210,6 +161,7 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "审批流程催办")
|
||||
@PostMapping("/api/process/task/remind")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> remindTask(@Validated @RequestBody BpmnTaskRemindDTO dto);
|
||||
|
||||
@ -221,7 +173,6 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "创建机器人节点, 暂停流程任务")
|
||||
@PostMapping("/api/process/task/robot/create")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<String> createRobotTask(@Validated @RequestBody BpmnRobotTaskCreateDTO dto);
|
||||
|
||||
/**
|
||||
@ -232,7 +183,6 @@ public interface ProcessTaskApi {
|
||||
*/
|
||||
@Operation(summary = "完成机器人节点, 继续流程任务")
|
||||
@PostMapping("/api/process/task/robot/complete")
|
||||
@InvokeMode(ASYNC)
|
||||
CommonResponse<Boolean> completeRobotTask(@Validated @RequestBody BpmnRobotTaskCompleteDTO dto);
|
||||
|
||||
/**
|
||||
@ -321,5 +271,4 @@ public interface ProcessTaskApi {
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Map<String, String>> findTaskIdByInstanceIdsAndPersonId(@RequestParam(required = false) @NotEmpty(message = "流程实例 ID列表 不能为空") List<String> processInstanceIds,
|
||||
@RequestParam(required = false) @NotBlank(message = "自然人 ID 不能为空") String personId);
|
||||
|
||||
}
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
package cn.axzo.workflow.client.feign.bpmn;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.RestBpmnProcessVariable;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
|
||||
@ -1,83 +0,0 @@
|
||||
package cn.axzo.workflow.client.feign.manage;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.dto.print.PrintFieldDTO;
|
||||
import cn.axzo.workflow.common.model.request.form.definition.StartFormSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.form.instance.FormDetailDTO;
|
||||
import cn.axzo.workflow.common.model.request.form.instance.FormSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.form.instance.FromDataSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.form.model.WpsFileConfigVariableDTO;
|
||||
import cn.axzo.workflow.common.model.response.form.FormVO;
|
||||
import cn.axzo.workflow.common.model.response.form.definition.FormDefinitionVO;
|
||||
import cn.axzo.workflow.common.model.response.form.instance.FormDataVO;
|
||||
import cn.axzo.workflow.common.model.response.form.instance.FormInstanceVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
/**
|
||||
* 表达实例相关 API, 这里主要用于表单与流程的集成所需的 API。
|
||||
* <p>
|
||||
* 如果想单独创建表单实例,建议在 Form 包中单独提供 API。
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024-11-11 20:08
|
||||
*/
|
||||
@WorkflowEngineFeignClient
|
||||
public interface FormAdminApi {
|
||||
|
||||
@PostMapping("/api/form/admin/form/page")
|
||||
@InvokeMode(SYNC)
|
||||
@Manageable
|
||||
CommonResponse<List<FormVO>> formPage(@Validated @RequestBody FormSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定审批业务的流程表单设置,
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/form/admin/start/form")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<FormDefinitionVO> getFormDefinition(@Validated @RequestBody StartFormSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 查询指定审批实例的表单模型和数据
|
||||
* <p>
|
||||
* dto 中的 processInstanceId 与 taskId,至少有一个属性有值,一般建议直接使用实例 ID。
|
||||
* 当传入 taskId 时,将只查询该任务绑定的表单模型和数据。
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/form/admin/instance/render")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<FormInstanceVO> getFormInstance(@Validated @RequestBody FormDetailDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定表单审批的实例数据
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/form/admin/instance/form/data")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<FormDataVO>> getFormData(@Validated @RequestBody FromDataSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 获取 WPS 文档中所有可配置的流程相关变量
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/form/admin/wps/file/config/variables")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<PrintFieldDTO>> getWpsFileConfigVariables(@Validated @RequestBody WpsFileConfigVariableDTO dto);
|
||||
}
|
||||
@ -1,50 +0,0 @@
|
||||
package cn.axzo.workflow.client.feign.manage;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.enums.AdminDataSource;
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.common.model.request.feature.DingTalkStarterAlterDTO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
/**
|
||||
* 一些功能性 API
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-09-02 14:40
|
||||
*/
|
||||
@WorkflowEngineFeignClient
|
||||
public interface FunctionApi {
|
||||
|
||||
@Operation(summary = "获取指定枚举类型的枚举值信息")
|
||||
@GetMapping("/api/function/enum/admin-data-source/get")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<AdminDataSource> getAdminDataSourceEnum(@RequestParam String enumValue);
|
||||
|
||||
@Operation(summary = "获取指定枚举类型的枚举值信息")
|
||||
@GetMapping("/api/function/enum/process-instance-result/get")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<BpmnProcessInstanceResultEnum> getFileTypeEnum(@RequestParam String enumValue);
|
||||
|
||||
/**
|
||||
* 用于 Starter 检测必接事件的告警
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "发送钉钉消息")
|
||||
@PostMapping("/api/function/dingtalk/alter")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> sendDingtalk(@Validated @RequestBody DingTalkStarterAlterDTO dto);
|
||||
}
|
||||
@ -1,77 +0,0 @@
|
||||
package cn.axzo.workflow.client.feign.manage;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.dto.print.PrintFieldDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintFieldQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintTemplateConfigUpsertDTO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
/**
|
||||
* 打印相关的 API
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-16 17:35
|
||||
*/
|
||||
@WorkflowEngineFeignClient
|
||||
public interface PrintAdminApi {
|
||||
/**
|
||||
* 查询指定审批流程是否能打印,打印开关是否开启,是否存在打印模板
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "查询指定审批流程是否能打印,打印开关是否开启,是否存在打印模板")
|
||||
@GetMapping("/api/print/admin/template/exists")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> hasPrintTemplate(@NotBlank(message = "流程实例不能为空") @RequestParam String processInstanceId);
|
||||
|
||||
/**
|
||||
* 打印模板配置内容更新保存
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "打印模板配置内容更新保存")
|
||||
@PostMapping("/api/print/admin/template/upsert")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Void> printTemplateConfig(@Validated @RequestBody PrintTemplateConfigUpsertDTO dto);
|
||||
|
||||
/**
|
||||
* 获取打印模板中可打印的字段
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取打印模板中可打印的字段")
|
||||
@PostMapping("/api/print/admin/fields")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<PrintFieldDTO>> getPrintFields(@Validated @RequestBody PrintFieldQueryDTO dto);
|
||||
|
||||
/**
|
||||
* 获取指定流程下用于替换打印的相关变量
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "获取指定流程下用于替换打印的相关变量")
|
||||
@GetMapping("/api/print/admin/field/variables")
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Map<String, Object>> getPrintFieldVariables(@NotBlank(message = "流程实例不能为空") @RequestParam String processInstanceId,
|
||||
@RequestParam(required = false, defaultValue = "true") Boolean throwException);
|
||||
}
|
||||
@ -1,20 +1,31 @@
|
||||
package cn.axzo.workflow.client.feign.manage;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.category.*;
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryConfigCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryConfigSearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryCreateDTO;
|
||||
import cn.axzo.workflow.common.model.request.category.CategorySearchDTO;
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryUpdateDTO;
|
||||
import cn.axzo.workflow.common.model.response.BpmPageResult;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryConfigItemVO;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryGroupVarItemVo;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryItemVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.*;
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
|
||||
/**
|
||||
@ -166,21 +177,4 @@ public interface ProcessCategoryApi {
|
||||
@GetMapping("/api/process/category/check/status")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> checkCategoryStatus(@RequestParam Long tenantId, @RequestParam String categoryCode);
|
||||
|
||||
/**
|
||||
* 查询分类对应的分组以及分组下的变量
|
||||
* @param dto 请求参数
|
||||
* @return 分组以及分组下的变量
|
||||
*/
|
||||
@PostMapping("/api/process/category/group-with-vars/list")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<CategoryGroupVarItemVo>> searchCategoryGroupAndVars(@Validated @RequestBody CategoryGroupVarSearchDto dto);
|
||||
|
||||
/**
|
||||
* 新增或者更新分组或者变量
|
||||
* @param dto 请求参数
|
||||
* @return 是否成功
|
||||
*/
|
||||
@PostMapping("/api/process/category/group-with-vars/upsert")
|
||||
CommonResponse<Boolean> upsertCategoryGroupAndVars(@Validated @RequestBody CategoryGroupVarUpsertDto dto);
|
||||
}
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
package cn.axzo.workflow.client.feign.manage;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonMetaInfo;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.axzo.workflow</groupId>
|
||||
<artifactId>workflow-engine-common</artifactId>
|
||||
<version>${workflow-engine-common.version}</version>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.basics</groupId>
|
||||
|
||||
@ -4,6 +4,7 @@ import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
|
||||
import cn.axzo.workflow.common.enums.AdminDataSource;
|
||||
import cn.axzo.workflow.common.enums.AdminRoleType;
|
||||
import cn.axzo.workflow.common.enums.AdminTypeEnum;
|
||||
import cn.axzo.workflow.common.enums.WorkspaceType;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@ -12,7 +12,6 @@
|
||||
<artifactId>workflow-engine-common</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>workflow Engine Common</name>
|
||||
<version>${workflow-engine-common.version}</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
package cn.axzo.workflow.common.code;
|
||||
|
||||
import cn.axzo.framework.domain.web.code.IModuleRespCode;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 表单实例相关响应码
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024-11-13 14:34
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum FormInstanceRespCode implements IModuleRespCode {
|
||||
FORM_PARAM_ERROR("001", "流程实例 ID 和任务 ID 不能都为空"),
|
||||
FORM_FIELD_NOT_FOUND("002", "无法获取全量表单字段权限配置信息"),
|
||||
FORM_FIELD_VALIDATOR_ERROR("003", "表单字段校验不通过"),
|
||||
FORM_INSTANCE_PARSE_ERROR("004", "表单实例数据解析错误"),
|
||||
FORM_INSTANCE_DATA_NOT_FOUND("005", "未找到指定实例【{}】的表单数据"),
|
||||
FORM_DATA_PARSE_ERROR("006", "表单数据解析异常"),
|
||||
FORM_DATA_PARSE_ERROR_BY_UPLOAD("007", "表单上传组件的数据解析异常"),
|
||||
FORM_DATA_PARSE_ERROR_BY_IMAGE("008", "表单图片组件的数据解析异常"),
|
||||
FORM_DATA_PARSE_ERROR_BY_CUSTOM_COMPONENT("009", "表单自定义组件的数据解析异常"),
|
||||
FORM_DATA_PARSE_ERROR_BY_AMOUNT("010", "表单金额组件的数据解析异常"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
private final String message;
|
||||
|
||||
@Override
|
||||
public String getModuleCode() {
|
||||
return "13";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getProjectCode() {
|
||||
return "998";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -9,7 +9,6 @@ public interface BpmnConstants {
|
||||
/**
|
||||
* 引擎自己的隐藏指令
|
||||
*/
|
||||
String ADSCRIPTION_TENANT_ID = "adscriptionTenantId";
|
||||
String FLOWABLE_SKIP_EXPRESSION_ENABLE = "[_FLOWABLE_SKIP_EXPRESSION_ENABLED_]";
|
||||
String MQ_UNIQUE_ID = "[_MQ_UNIQUE_ID_]";
|
||||
String PROCESS_OWNERSHIP_APPLICATION = "[_PROCESS_OWNERSHIP_APPLICATION_]";
|
||||
@ -34,7 +33,6 @@ public interface BpmnConstants {
|
||||
String INTERNAL_PROCESS_AGENT = "[_INTERNAL_PROCESS_AGENT]";
|
||||
String CREATE_INSTANCE_PARAMS = "[_CREATE_INSTANCE_PARAMS]";
|
||||
String INTERNAL_PROCESS_WORKSPACE_TYPE = "[_INTERNAL_PROCESS_WORKSPACE_TYPE]";
|
||||
String INTERNAL_PROCESS_BIZ_TYPE = "[_INTERNAL_PROCESS_BIZ_TYPE]";
|
||||
// 用于多实例审批时,保存计算出来的审批人
|
||||
String INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO = "[_ASSIGNEE_LIST_INFO_]";
|
||||
// 单任务节点,
|
||||
@ -43,8 +41,6 @@ public interface BpmnConstants {
|
||||
String OLD_INTERNAL_TASK_RELATION_ASSIGNEE_INFO_SNAPSHOT = "[_ASSIGNEE_INFO_SNAPSHOT_]";
|
||||
String INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT = "[_ACTIVITY_INFO_SNAPSHOT_]";
|
||||
String BIZ_NODE_ALTER = "[_BIZ_NODE_ALTER_]";
|
||||
String INITIATOR_SPECIFY = "[_INITIATOR_SPECIFY_]";
|
||||
String SIGNATURE_COLLECTION = "[_SIGNATURE_COLLECTION_]";
|
||||
String PROCESS_PREFIX = "Flowable";
|
||||
@Deprecated
|
||||
String OLD_TASK_ASSIGNEE_SKIP_FLAT = "taskSkip";
|
||||
@ -58,15 +54,12 @@ public interface BpmnConstants {
|
||||
String ROBOT_ASSIGNEE_ID = NO_TENANT_ID + "|" + ROBOT_ASSIGNEE + "|" + ROBOT_ASSIGNEE_TYPE;
|
||||
String HIDDEN_ASSIGNEE_ID = NO_TENANT_ID + "|hidden|" + TASK_ASSIGNEE_SKIP_FLAT;
|
||||
String NO_ASSIGNEE = "|";
|
||||
String FLOW_MODEL_BIZ_TYPE = "modelType";
|
||||
String FLOW_NODE_JSON = "jsonValue";
|
||||
String FLOW_SERVER_VERSION = "serverVersion";
|
||||
String FLOW_SERVER_VERSION_121 = "1.2.1";
|
||||
String FLOW_SERVER_VERSION_130 = "1.3.0";
|
||||
// 1.4.2 开始启用新版本日志
|
||||
String FLOW_SERVER_VERSION_142 = "1.4.2";
|
||||
String FLOW_CATEGORY_VERSION = "categoryVersion";
|
||||
String CONFIG_SIGN = "signConfig";
|
||||
String CONFIG_NOTICE = "noticeConfig";
|
||||
String CONFIG_APPROVE = "approveConfig";
|
||||
String TEMPLATE_NOTICE_MESSAGE_CONFIG = "noticeMessageConfig";
|
||||
@ -78,12 +71,8 @@ public interface BpmnConstants {
|
||||
String TEMPLATE_NOTICE_MESSAGE_DESTINATION_POSITIONS = "positions";
|
||||
String TEMPLATE_NOTICE_MESSAGE_DESTINATION_ASSIGNERS = "assigners";
|
||||
String TEMPLATE_PENDING_MESSAGE_ID = "pendingMessageId";
|
||||
String TEMPLATE_SIGN_PENDING_MESSAGE_ID = "signPendingMessageId";
|
||||
String TEMPLATE_CARBON_COPY_MESSAGE_ID = "carbonCopyMessageId";
|
||||
String TEMPLATE_SMS_MESSAGE_ID = "smsMessageId";
|
||||
String TEMPLATE_UPGRADE_APPROVAL_CONF = "upgradeApprovalConf";
|
||||
String TEMPLATE_UPGRADE_APPROVAL_LIMIT_CONF = "limitConfig";
|
||||
String TEMPLATE_UPGRADE_APPROVAL_SPECIFY_VALUE = "specifyValue";
|
||||
String APPROVE_SUPPORT_BATCH_OPERATION = "supportBatchOperation";
|
||||
String APPROVE_USER_AGREE_SIGNATURE = "userAgreeSignature";
|
||||
String CONFIG_BUTTON = "buttonConfig";
|
||||
@ -95,23 +84,10 @@ public interface BpmnConstants {
|
||||
String CONFIG_BUTTON_META = "button";
|
||||
String CONFIG_FIELD = "fieldConfig";
|
||||
String CONFIG_APPROVAL_METHOD = "approvalMethod";
|
||||
String CONFIG_SIGN_APPROVER_LIMIT = "signApproverLimit";
|
||||
String CONFIG_SIGN_APPROVER_ORG_LIMIT = "orgLimit";
|
||||
String CONFIG_SIGN_APPROVER_ROLE_LIMIT = "roleLimit";
|
||||
String CONFIG_APPROVER_SCOPE = "approverScope";
|
||||
String CONFIG_APPROVER_SPECIFY = "approverSpecify";
|
||||
String CONFIG_APPROVE_SPECIFY_RANGE = "approverSpecifyRange";
|
||||
String CONFIG_APPROVE_SPECIFY_COOPERATE_TYPE = "approverSpecifyCooperateType";
|
||||
String CONFIG_APPROVE_SPECIFY_RANGE_ORG_LIMIT = "approverSpecifyRangeOrgLimit";
|
||||
String CONFIG_APPROVE_SPECIFY_RANGE_UNIT = "approverSpecifyRangeUnit";
|
||||
String CONFIG_INITIATOR_SPECIFIED_RANGE = "initiatorSpecifiedRange";
|
||||
String CONFIG_INITIATOR_SPECIFIED_FILTER = "initiatorSpecifiedFilter";
|
||||
String CONFIG_INITIATOR_SPECIFIED_EXCLUDE_IDENTITY_TYPES = "excludeIdentityTypes";
|
||||
String CONFIG_INITIATOR_SPECIFIED_EXCLUDE_COOPERATE_TYPES = "excludeCooperateShipTypes";
|
||||
String CONFIG_INITIATOR_LEADER_RANGE_UNIT = "initiatorLeaderRangeUnit";
|
||||
String CONFIG_APPROVER_MODE_TYPE = "approverModeType";
|
||||
String CONFIG_APPROVER_EMPTY_HANDLE_TYPE = "approverEmptyHandleType";
|
||||
String CONFIG_ACTIVITY_SIGNATURE = "signature";
|
||||
String CONFIG_FIELD_META = "field";
|
||||
String CONFIG_FIELD_PERMISSION = "fieldPermission";
|
||||
String CONFIG_FIELD_OPTION = "option";
|
||||
@ -120,9 +96,6 @@ public interface BpmnConstants {
|
||||
String CONFIG_BUTTON_TYPE_CURRENT = "current";
|
||||
String CONFIG_BUTTON_TYPE_HISTORY = "history";
|
||||
String CONFIG_BUTTON_TYPE_CARBON_COPY = "carbonCopy";
|
||||
String CONFIG_SIGN_TYPE = "signType";
|
||||
String CONFIG_AREA_FILTER_ENABLE = "areaFilterEnable";
|
||||
String CONFIG_SPECIALTY_FILTER_ENABLE = "specialtyFilterEnable";
|
||||
String ELEMENT_ATTRIBUTE_NAME = "name";
|
||||
String ELEMENT_ATTRIBUTE_VALUE = "value";
|
||||
String ELEMENT_ATTRIBUTE_DESC = "desc";
|
||||
@ -132,9 +105,6 @@ public interface BpmnConstants {
|
||||
String ELEMENT_ATTRIBUTE_CHECKED = "checked";
|
||||
String ELEMENT_ATTRIBUTE_DISABLED = "disabled";
|
||||
String ELEMENT_ATTRIBUTE_TYPE = "type";
|
||||
String ELEMENT_ATTRIBUTE_ORG_LIMIT = "orgLimit";
|
||||
String ELEMENT_ATTRIBUTE_APPROVER_SPECIFY = "approverSpecify";
|
||||
String ELEMENT_ATTRIBUTE_APPROVER_SPECIFY_RANGE = "approverSpecifyRange";
|
||||
String START_EVENT_ID = "startEventNode";
|
||||
String SEQUENCE_FLOW_ID = "SequenceFlowId";
|
||||
String END_EVENT_ID = "endEventNode";
|
||||
@ -142,7 +112,6 @@ public interface BpmnConstants {
|
||||
String BPM_ALLOW_SKIP_USER_TASK = "_INTERNAL_SKIP_USER_TASK_";
|
||||
String AUTO_APPROVAL_TYPE = "autoApprovalType";
|
||||
String PROCESS_CLOSING_TYPE = "[_PROCESS_CLOSING_TYPE]";
|
||||
String SKIP_MQ = "skipMQ";
|
||||
/**
|
||||
* 用于国内审批节点填写审批建议
|
||||
* <p>
|
||||
@ -215,10 +184,6 @@ public interface BpmnConstants {
|
||||
* 加签显示人员数量
|
||||
*/
|
||||
Integer COUNTERSIGN_ASSIGNER_SHOW_NUMBER = 2;
|
||||
/**
|
||||
* 重置任务审批人显示人员数量
|
||||
*/
|
||||
Integer RESET_TASK_ASSIGNER_SHOW_NUMBER = 2;
|
||||
|
||||
/**
|
||||
* 回退操作次数上限
|
||||
@ -234,32 +199,4 @@ public interface BpmnConstants {
|
||||
* ouId+workspaceId 下限制人员数量为20
|
||||
*/
|
||||
Integer MAX_ORG_WORKSPACE_ADMIN_COUNT = 20;
|
||||
|
||||
/**
|
||||
* 发起人撤回时,当前流程停留住的节点定义key
|
||||
*/
|
||||
String CANCEL_PROCESS_NODE_DEF_KEY_NAME = "[_CANCEL_PROCESS_NODE_DEF_KEY_]";
|
||||
// 被转交人
|
||||
String TRANSFER_TO = "[TRANSFER_TO_]";
|
||||
// 转交时的意见
|
||||
String TRANSFER_TO_ADVICE = "[TRANSFER_TO_ADVICE]";
|
||||
// 结束流程的最后一个操作人
|
||||
String CLOSE_PROCESS_ASSIGNER = "[_CLOSE_PROCESS_ASSIGNER_]";
|
||||
/**
|
||||
* 签署业务发起流程实例时,重新选择的文档tag 集合
|
||||
*/
|
||||
String SIGN_PROCESS_ENABLE_DOC_IDS = "[_SIGN_PROCESS_ENABLE_DOC_IDS_]";
|
||||
/**
|
||||
* 签署业务,基于业务自定义变量的传入
|
||||
*/
|
||||
String SIGN_VARIABLE = "[_SIGN_VARIABLES_]";
|
||||
/**
|
||||
* 签署人
|
||||
*/
|
||||
String SIGNATORIES = "[_SIGNATORIES_]";
|
||||
String TASK_SUBMIT_FORM_VARIABLE = "[_TASK_SUBMIT_FORM_VARIABLE_]";
|
||||
/**
|
||||
* 提级审批变量标识
|
||||
*/
|
||||
String SUPPORT_UPGRADE_VARIABLE = "[_SUPPORT_UPGRADE_]";
|
||||
}
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
package cn.axzo.workflow.common.constant;
|
||||
|
||||
/**
|
||||
* 表单引擎相关的常量
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024-11-05 10:20
|
||||
*/
|
||||
public interface FormConstants {
|
||||
|
||||
String FIELD_PROPERTY_REQUIRED = "required";
|
||||
|
||||
String FIELD_PROPERTY_EDITABLE = "editable";
|
||||
|
||||
String FIELD_PROPERTY_READONLY = "readonly";
|
||||
|
||||
String FIELD_PROPERTY_HIDDEN = "hidden";
|
||||
|
||||
String FIELD_PROPERTY_DEFAULT_VALUE= "defaultValue";
|
||||
|
||||
String FORM_FIELD_TYPE_INPUT = "input";
|
||||
String FORM_FIELD_TYPE_TEXTAREA = "textarea";
|
||||
String FORM_FIELD_TYPE_IMAGE = "image";
|
||||
String FORM_FIELD_TYPE_CUSTOM_COMPONENT = "customComponent";
|
||||
String FORM_FIELD_TYPE_TASK_ORDER = "taskOrder";
|
||||
String FORM_FIELD_TYPE_RECTIFY_ORDER = "rectifyOrder";
|
||||
String FORM_FIELD_TYPE_CHANGE_SIGNATURE_ORDER = "changeSignatureOrder";
|
||||
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
package cn.axzo.workflow.common.constant;
|
||||
|
||||
/**
|
||||
* 自定义的流程回退及转发事件常亮
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-20 14:06
|
||||
*/
|
||||
public interface TaskListenerExtConstants {
|
||||
String EVENTNAME_TRANSFER = "process-task-transfer";
|
||||
String EVENTNAME_FALLBACK = "process-task-fallback";
|
||||
}
|
||||
@ -25,40 +25,4 @@ public interface VariableConstants {
|
||||
String VAR_PROCESS_RESULT = "processResult";
|
||||
String VAR_OPERATOR_TYPE = "operatorType";
|
||||
String VAR_USER_AGREE_SIGNATURE = "userAgreeSignature";
|
||||
|
||||
|
||||
//=============== 打印时的变量集合中 key 的命名 =================
|
||||
String VAR_PREFIX = "业务变量";
|
||||
String PRINT_VAR_PROCESS_DEFINITION_KEY = "processDefinitionKey";
|
||||
String PRINT_VAR_PROCESS_DEFINITION_KEY_DESC = "业务名称";
|
||||
String PRINT_VAR_PROCESS_INSTANCE_ID = "processInstanceId";
|
||||
String PRINT_VAR_PROCESS_INSTANCE_ID_DESC = "审批编号";
|
||||
String PRINT_VAR_PROCESS_START_TIME = "startTime";
|
||||
String PRINT_VAR_PROCESS_START_TIME_DESC = "发起时间";
|
||||
String PRINT_VAR_PROCESS_END_TIME = "endTime";
|
||||
String PRINT_VAR_PROCESS_END_TIME_DESC = "审批结束时间";
|
||||
String PRINT_VAR_PROCESS_INITIATOR = "initiator";
|
||||
String PRINT_VAR_PROCESS_INITIATOR_DESC = "发起者";
|
||||
String PRINT_VAR_PROCESS_INITIATOR_NAME = "initiatorName";
|
||||
String PRINT_VAR_PROCESS_INITIATOR_NAME_DESC = "发起人姓名";
|
||||
String PRINT_VAR_PROCESS_INITIATOR_POSITION = "initiatorPosition";
|
||||
String PRINT_VAR_PROCESS_INITIATOR_POSITION_DESC = "发起人岗位";
|
||||
String PRINT_VAR_PROCESS_INITIATOR_PHONE = "initiatorPhone";
|
||||
String PRINT_VAR_PROCESS_INITIATOR_PHONE_DESC = "发起人联系方式";
|
||||
String PRINT_VAR_PROCESS_LOGS = "processLogs";
|
||||
String PRINT_VAR_PROCESS_LOGS_DESC = "审批日志";
|
||||
String PRINT_VAR_PROCESS_LOG_ACTIVITY_NAME = "activityName";
|
||||
String PRINT_VAR_PROCESS_LOG_ACTIVITY_NAME_DESC = "节点名称";
|
||||
String PRINT_VAR_PROCESS_LOG_APPROVER_NAME = "approverName";
|
||||
String PRINT_VAR_PROCESS_LOG_APPROVER_NAME_DESC = "审批人";
|
||||
String PRINT_VAR_PROCESS_LOG_UNIT = "unit";
|
||||
String PRINT_VAR_PROCESS_LOG_UNIT_DESC = "单位";
|
||||
String PRINT_VAR_PROCESS_LOG_POSITION = "position";
|
||||
String PRINT_VAR_PROCESS_LOG_POSITION_DESC = "岗位";
|
||||
String PRINT_VAR_PROCESS_LOG_ADVICE = "advice";
|
||||
String PRINT_VAR_PROCESS_LOG_ADVICE_DESC = "审批意见";
|
||||
String PRINT_VAR_PROCESS_LOG_OPERATION_TIME = "operationTime";
|
||||
String PRINT_VAR_PROCESS_LOG_OPERATION_TIME_DESC = "审批时间";
|
||||
String PRINT_VAR_PROCESS_LOG_SIGNATURE = "signature";
|
||||
String PRINT_VAR_PROCESS_LOG_SIGNATURE_DESC = "电子签名";
|
||||
}
|
||||
|
||||
@ -1,72 +0,0 @@
|
||||
package cn.axzo.workflow.common.constraint;
|
||||
|
||||
import cn.axzo.workflow.common.enums.AttachmentTypeEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.AttachmentDTO;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 附件校验器
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024/4/22 15:15
|
||||
*/
|
||||
public class AttachmentConstraintValidator implements ConstraintValidator<AttachmentValidator, List<AttachmentDTO>> {
|
||||
|
||||
private AttachmentTypeValidator[] typeConstraints;
|
||||
|
||||
@Override
|
||||
public void initialize(AttachmentValidator constraintAnnotation) {
|
||||
this.typeConstraints = constraintAnnotation.types();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid(List<AttachmentDTO> attachments, ConstraintValidatorContext context) {
|
||||
if (attachments == null || attachments.isEmpty()) {
|
||||
return true; // No attachments, so no validation needed
|
||||
}
|
||||
boolean isValid = true;
|
||||
|
||||
for (AttachmentTypeValidator typeConstraint : typeConstraints) {
|
||||
AttachmentTypeEnum type = typeConstraint.type();
|
||||
int minAllowed = typeConstraint.min();
|
||||
int maxAllowed = typeConstraint.max();
|
||||
int count = getCountOfType(attachments, type);
|
||||
|
||||
// Check if min or max is not limited
|
||||
boolean minNotLimited = minAllowed == -1;
|
||||
boolean maxNotLimited = maxAllowed == Integer.MAX_VALUE;
|
||||
|
||||
if (!minNotLimited && count < minAllowed) {
|
||||
addErrorMessage(context, typeConstraint.type().getDesc() + "数量最小支持" + minAllowed + "个");
|
||||
isValid = false; // Validation failed due to min limit
|
||||
}
|
||||
|
||||
if (!maxNotLimited && count > maxAllowed) {
|
||||
addErrorMessage(context, typeConstraint.type().getDesc() + "数量最大支持" + maxAllowed + "个");
|
||||
isValid = false; // Validation failed due to max limit
|
||||
}
|
||||
}
|
||||
|
||||
return isValid; // Validation passed
|
||||
}
|
||||
|
||||
// Helper method to count attachments of a specific type
|
||||
private int getCountOfType(List<AttachmentDTO> attachments, AttachmentTypeEnum type) {
|
||||
int count = 0;
|
||||
for (AttachmentDTO attachment : attachments) {
|
||||
if (attachment.getType().equals(type)) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
private void addErrorMessage(ConstraintValidatorContext context, String message) {
|
||||
context.disableDefaultConstraintViolation();
|
||||
context.buildConstraintViolationWithTemplate(message)
|
||||
.addConstraintViolation();
|
||||
}
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
package cn.axzo.workflow.common.constraint;
|
||||
|
||||
import cn.axzo.workflow.common.enums.AttachmentTypeEnum;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* 工作流主要操作时, 附件的校验
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024/4/22 15:17
|
||||
*/
|
||||
@Target({ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface AttachmentTypeValidator {
|
||||
|
||||
/**
|
||||
* 指定的附件类型
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
AttachmentTypeEnum type();
|
||||
|
||||
/**
|
||||
* 最小个数: -1 不限制
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
int min() default -1;
|
||||
|
||||
/**
|
||||
* 最大个数: -1 不限制
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
int max() default Integer.MAX_VALUE;
|
||||
|
||||
}
|
||||
@ -1,31 +0,0 @@
|
||||
package cn.axzo.workflow.common.constraint;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* 工作流主要操作时, 附件的校验
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024/4/22 15:17
|
||||
*/
|
||||
|
||||
@Target({ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Constraint(validatedBy = AttachmentConstraintValidator.class)
|
||||
@Documented
|
||||
public @interface AttachmentValidator {
|
||||
|
||||
String message() default "附件校验不通过";
|
||||
|
||||
Class<?>[] groups() default {};
|
||||
|
||||
Class<? extends Payload>[] payload() default {};
|
||||
|
||||
AttachmentTypeValidator[] types();
|
||||
}
|
||||
@ -1,18 +1,11 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Getter
|
||||
public enum AdminDataSource {
|
||||
SYSTEM_ENTRY("systemEntry", "系统录入"),
|
||||
USER_ENTRY("userEntry", "用户手动录入"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("unknown", "未知"),
|
||||
;
|
||||
USER_ENTRY("userEntry", "用户手动录入");
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
@ -21,15 +14,4 @@ public enum AdminDataSource {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static AdminDataSource fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(AdminDataSource.values())
|
||||
.filter(v -> v.getType().equalsIgnoreCase(value) || v.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,19 +1,13 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Getter
|
||||
public enum AdminRoleType {
|
||||
ORGANIZATION_ADMIN("organizationAdmin", "单位超管"),
|
||||
ORG_WORKSPACE_ADMIN("organizationWorkspaceAdmin", "项目内单位负责人"),
|
||||
WORKSPACE_ADMIN("workspaceAdmin", "项目超管"),
|
||||
OTHER("other", "其他用户"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("unknown", "未知");
|
||||
OTHER("other", "其他用户");
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
@ -22,15 +16,4 @@ public enum AdminRoleType {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static AdminRoleType fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(AdminRoleType.values())
|
||||
.filter(v -> v.getType().equalsIgnoreCase(value) || v.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,21 +1,14 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 审批管理员类型
|
||||
*/
|
||||
@Getter
|
||||
public enum AdminTypeEnum {
|
||||
SUPER_ADMIN("super_admin", "超级管理员"),
|
||||
COMMON_ADMIN("common_admin", "普通管理员"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("unknown", "未知"),
|
||||
;
|
||||
COMMON_ADMIN("common_admin", "普通管理员");
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
@ -24,15 +17,4 @@ public enum AdminTypeEnum {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static AdminTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(AdminTypeEnum.values())
|
||||
.filter(v -> v.getType().equalsIgnoreCase(value) || v.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,7 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 审批方式枚举
|
||||
@ -12,23 +9,18 @@ import java.util.Arrays;
|
||||
* @author wangli
|
||||
* @since 2023/11/16 10:10
|
||||
*/
|
||||
@Getter
|
||||
public enum ApprovalMethodEnum {
|
||||
|
||||
human("human", "人工审批", ""),
|
||||
autoPassed("autoPassed", "自动通过", "[仅审批节点可能选该值]"),
|
||||
autoPassed_empty("autoPassed", "自动通过", "该枚举仅日志处理使用"),
|
||||
autoRejection("autoRejection", "自动驳回", "[仅审批节点可能选该值]"),
|
||||
autoRejection_empty("autoRejection", "自动驳回", "该枚举仅日志处理使用"),
|
||||
nobody("nobody", "不设置审批人", "[仅业务节点可能有该值]"),
|
||||
bizSpecify("bizSpecify", "业务指定审批人", "[仅业务节点可能有该值]"),
|
||||
transferToAdmin("transferToAdmin", "转办给管理员", "该枚举仅日志处理使用"),
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "未知", "兜底");
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private final String remark;
|
||||
private String type;
|
||||
private String desc;
|
||||
private String remark;
|
||||
|
||||
ApprovalMethodEnum(String type, String desc, String remark) {
|
||||
this.type = type;
|
||||
@ -36,18 +28,34 @@ public enum ApprovalMethodEnum {
|
||||
this.remark = remark;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ApprovalMethodEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getRemark() {
|
||||
return remark;
|
||||
}
|
||||
|
||||
public void setRemark(String remark) {
|
||||
this.remark = remark;
|
||||
}
|
||||
|
||||
public static ApprovalMethodEnum valueOfType(String type) {
|
||||
return fromValue(type);
|
||||
return Arrays.stream(ApprovalMethodEnum.values())
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,26 +1,17 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 审批人为空时的处理方式枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/11/16 10:22
|
||||
*/
|
||||
@Getter
|
||||
public enum ApproverEmptyHandleTypeEnum {
|
||||
autoPassed("autoPassed", "自动通过"),
|
||||
autoRejection("autoRejection", "自动驳回"),
|
||||
autoSkipped("autoSkipped", "自动跳过"),
|
||||
transferToAdmin("transferToAdmin", "转交给管理员"),
|
||||
specifyAssignee("specifyAssignee", "指定审批人"),
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "未知"),
|
||||
;
|
||||
private String type;
|
||||
private String desc;
|
||||
@ -30,15 +21,19 @@ public enum ApproverEmptyHandleTypeEnum {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ApproverEmptyHandleTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,5 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
@ -13,15 +9,12 @@ import java.util.Objects;
|
||||
* @author wangli
|
||||
* @since 2023/11/16 10:14
|
||||
*/
|
||||
@Getter
|
||||
public enum ApproverScopeEnum {
|
||||
entWorkspace("entWorkspace", "企业工作台", "entWorkspaceProcessor"),
|
||||
govWorkspace("govWorkspace", "政务工作台", "govWorkspaceProcessor"),
|
||||
projectWorkspace("projectWorkspace", "项目工作台", "projectWorkspaceProcessor"),
|
||||
preTaskUser("preTaskUser", "上节点审批人所在单位", "preTaskUserProcessor"),
|
||||
preTaskSpecified("preTaskSpecified", "上节点审批人指定", "preTaskUserProcessor"),
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "未知", "unknownProcessor"),
|
||||
projectWorkspace("projectWorkspace", "项目工作台","projectWorkspaceProcessor"),
|
||||
preTaskUser("preTaskUser", "上节点审批人所在单位","preTaskUserProcessor"),
|
||||
preTaskSpecified("preTaskSpecified", "上节点审批人指定","preTaskUserProcessor"),
|
||||
;
|
||||
private final String type;
|
||||
private final String desc;
|
||||
@ -33,15 +26,20 @@ public enum ApproverScopeEnum {
|
||||
this.processor = processor;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ApprovalMethodEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return ApprovalMethodEnum.unknown;
|
||||
}
|
||||
return Arrays.stream(ApprovalMethodEnum.values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(ApprovalMethodEnum.unknown);
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public String getProcessor() {
|
||||
return processor;
|
||||
}
|
||||
|
||||
public boolean selectWorkspace() {
|
||||
return this == ApproverScopeEnum.projectWorkspace;
|
||||
}
|
||||
|
||||
public static ApproverScopeEnum valueOfProcessor(String processor) {
|
||||
|
||||
@ -1,62 +1,42 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 审批人指定枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/11/16 10:16
|
||||
*/
|
||||
@Getter
|
||||
public enum ApproverSpecifyEnum {
|
||||
|
||||
position("position", "指定岗位", 1),
|
||||
role("role", "指定角色", 1),
|
||||
identity("identity", "指定身份", 1),
|
||||
initiatorLeader("initiatorLeader", "发起人主管", 1),
|
||||
initiatorLeaderRecursion("initiatorLeaderRecursion", "发起人多级主管", 1),
|
||||
fixedPerson("fixedPerson", "固定人员", 1),
|
||||
preNodeSpecified("preNodeSpecified", "上级节点指定", 1),
|
||||
initiatorSpecified("initiatorSpecified", "发起时指定", 1),
|
||||
// 该枚举,目前主要为了区别签署业务与审批业务的不同配法,选择该项时,意味着该节点是由二方后端自由消费 BpmnSignApproverLimit 配置
|
||||
signerRelated("signerRelated", "签署人相关组织", 1),
|
||||
|
||||
// 新配置规则的审批人指定方式
|
||||
position_v2("position_v2", "指定岗位", 2),
|
||||
role_v2("role_v2", "指定角色", 2),
|
||||
identity_v2("identity_v2", "指定身份", 2),
|
||||
initiatorSpecified_v2("initiatorSpecified_v2", "发起人自选", 2),
|
||||
initiator_v2("initiator_v2", "发起人自己", 2),
|
||||
initiatorLeader_v2("initiatorLeader_v2", "发起人主管", 2),
|
||||
fixedPerson_v2("fixedPerson_v2", "固定人员", 2),
|
||||
preAllNodeApprover_v2("preAllNodeApprover_v2", "所有前序节点审批人", 2),
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "未知", 1),
|
||||
position("position", "指定岗位"),
|
||||
role("role", "指定角色"),
|
||||
identity("identity", "指定身份"),
|
||||
initiatorLeader("initiatorLeader", "发起人主管"),
|
||||
initiatorLeaderRecursion("initiatorLeaderRecursion", "发起人多级主管"),
|
||||
fixedPerson("fixedPerson", "固定人员"),
|
||||
preNodeSpecified("preNodeSpecified", "上级节点指定"),
|
||||
;
|
||||
private String type;
|
||||
private String desc;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private final Integer version;
|
||||
|
||||
ApproverSpecifyEnum(String type, String desc, Integer version) {
|
||||
ApproverSpecifyEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ApproverSpecifyEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,45 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 审批人指定的二次范围限定枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-08-13 14:32
|
||||
*/
|
||||
@Getter
|
||||
public enum ApproverSpecifyRangeEnum {
|
||||
|
||||
within_the_project("within_the_project", "项目内岗位"),
|
||||
within_the_project_construction_units("within_the_project_construction_units", "项目内参建单位的企业岗位"),
|
||||
specified_org("specified_org", "审批单指定的末级组织"),
|
||||
initiator("initiator", "审批单发起人"),
|
||||
pre_node_approver("pre_node_approver", "上节点审批人"),
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "未知"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
ApproverSpecifyRangeEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ApproverSpecifyRangeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
}
|
||||
}
|
||||
@ -1,46 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 审批人指定的范围“单位”枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-08-13 15:05
|
||||
*/
|
||||
@Getter
|
||||
public enum ApproverSpecifyRangeUnitEnum {
|
||||
in_project("in_project", "项目内", null),
|
||||
in_ent("in_ent", "企业内", null),
|
||||
in_group_lv_1("in_group_lv_1", "集团岗位,上一级", 1),
|
||||
in_group_lv_2("in_group_lv_2", "集团岗位,上二级", 2),
|
||||
in_group_lv_3("in_group_lv_3", "集团岗位,上三级", 3),
|
||||
in_group_lv_4("in_group_lv_4", "集团岗位,上四级", 4),
|
||||
in_group_lv_top("in_group_lv_top", "集团岗位,总公司", Integer.MAX_VALUE),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知范围", null);
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private final Integer value;
|
||||
|
||||
ApproverSpecifyRangeUnitEnum(String type, String desc, Integer value) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ApproverSpecifyRangeUnitEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,43 +1,39 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 附件类型枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/11/22 23:19
|
||||
*/
|
||||
@Getter
|
||||
public enum AttachmentTypeEnum {
|
||||
|
||||
image("image", "图片"),
|
||||
file("file", "文件"),
|
||||
signature("signature", "签名"),
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "未知"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private String type;
|
||||
private String desc;
|
||||
|
||||
AttachmentTypeEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static AttachmentTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,7 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* 自动过审参数
|
||||
@ -14,10 +11,7 @@ import java.util.Arrays;
|
||||
public enum AutoApprovalTypeEnum {
|
||||
|
||||
NO_AUTO_APPROVAL("noAutoApproval", "不自动过审"),
|
||||
CONTINUOUS_NODES_AUTO_APPROVAL("continuousNodesAutoApproval", "连续节点自动过审"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("unknown", "未知"),
|
||||
;
|
||||
CONTINUOUS_NODES_AUTO_APPROVAL("continuousNodesAutoApproval", "连续节点自动过审");
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
@ -28,17 +22,14 @@ public enum AutoApprovalTypeEnum {
|
||||
}
|
||||
|
||||
public static AutoApprovalTypeEnum fromType(String type) {
|
||||
return fromValue(type);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static AutoApprovalTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
if (!StringUtils.hasText(type)) {
|
||||
return null;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
for (AutoApprovalTypeEnum typeEnum : AutoApprovalTypeEnum.values()) {
|
||||
if (typeEnum.type.equals(type)) {
|
||||
return typeEnum;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,106 +1,72 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.BusinessTypeEnum.APPROVAL;
|
||||
import static cn.axzo.workflow.common.enums.BusinessTypeEnum.SIGN;
|
||||
|
||||
/**
|
||||
* Flowable Event Enum For RocketMQ
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/9/4 10:38
|
||||
*/
|
||||
@Getter
|
||||
public enum BpmnButtonEnum {
|
||||
/**
|
||||
* 同意按钮
|
||||
*/
|
||||
BPMN_APPROVE(1, "BPMN_APPROVE", "同意", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
BPMN_APPROVE(1, "BPMN_APPROVE", "同意"),
|
||||
/**
|
||||
* 驳回按钮
|
||||
*/
|
||||
BPMN_REJECT(2, "BPMN_REJECT", "驳回", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 确认签字
|
||||
*/
|
||||
BPMN_CONFIRM_SIGN(3, "BPMN_CONFIRM_SIGN", "确认签字", Lists.newArrayList(SIGN)),
|
||||
/**
|
||||
* 查看文档
|
||||
*/
|
||||
BPMN_VIEW_DOC(4, "BPMN_VIEW_DOC", "查看文档", Lists.newArrayList(SIGN)),
|
||||
BPMN_REJECT(2, "BPMN_REJECT", "驳回"),
|
||||
/**
|
||||
* 撤回按钮
|
||||
*/
|
||||
BPMN_REVOCATION(5, "BPMN_REVOCATION", "撤回", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
BPMN_REVOCATION(3, "BPMN_REVOCATION", "撤回"),
|
||||
/**
|
||||
* 转交按钮
|
||||
*/
|
||||
BPMN_TRANSFER(6, "BPMN_TRANSFER", "转交", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
BPMN_TRANSFER(4, "BPMN_TRANSFER", "转交"),
|
||||
/**
|
||||
* 加签按钮
|
||||
*/
|
||||
BPMN_COUNTERSIGN(7, "BPMN_COUNTERSIGN", "加签", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
BPMN_COUNTERSIGN(5, "BPMN_COUNTERSIGN", "加签"),
|
||||
/**
|
||||
* 评论按钮
|
||||
*/
|
||||
BPMN_COMMENT(8, "BPMN_COMMENT", "评论", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
BPMN_COMMENT(6, "BPMN_COMMENT", "评论"),
|
||||
/**
|
||||
* 回退按钮
|
||||
*/
|
||||
BPMN_ROLLBACK(9, "BPMN_ROLLBACK", "回退", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
BPMN_ROLLBACK(7, "BPMN_ROLLBACK", "回退"),
|
||||
/**
|
||||
* 抄送按钮
|
||||
*/
|
||||
BPMN_COPY(10, "BPMN_COPY", "抄送", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 提级审批按钮
|
||||
*/
|
||||
BPMN_UPGRADE(12, "BPMN_UPGRADE", "提级审批", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 催办按钮
|
||||
*/
|
||||
BPMN_REMIND(11, "BPMN_REMIND", "催办", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
BPMN_COPY(8, "BPMN_COPY", "抄送"),
|
||||
/**
|
||||
* 管理员转交按钮
|
||||
*/
|
||||
BPMN_ADMIN_TRANSFER(90, "BPMN_ADMIN_TRANSFER", "管理员转交", Lists.newArrayList()),
|
||||
/**
|
||||
* 兜底
|
||||
*/
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN(99, "UNKNOWN", "未知", Lists.newArrayList()),
|
||||
;
|
||||
BPMN_ADMIN_TRANSFER(9, "BPMN_ADMIN_TRANSFER", "管理员转交");
|
||||
|
||||
|
||||
public int getOrder() {
|
||||
return order;
|
||||
}
|
||||
|
||||
public String getBtnKey() {
|
||||
return btnKey;
|
||||
}
|
||||
|
||||
public String getBtnName() {
|
||||
return btnName;
|
||||
}
|
||||
|
||||
private final int order;
|
||||
private final String btnKey;
|
||||
private final String btnName;
|
||||
private final List<BusinessTypeEnum> supportBizType;
|
||||
|
||||
|
||||
BpmnButtonEnum(int order, String btnKey, String btnName, List<BusinessTypeEnum> supportBizType) {
|
||||
BpmnButtonEnum(int order, String btnKey, String btnName) {
|
||||
this.order = order;
|
||||
this.btnKey = btnKey;
|
||||
this.btnName = btnName;
|
||||
this.supportBizType = supportBizType;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnButtonEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getBtnKey().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,18 +1,12 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 加签类型
|
||||
*
|
||||
* @author zuoqinbo
|
||||
*/
|
||||
@Getter
|
||||
public enum BpmnCountersignTypeEnum {
|
||||
/**
|
||||
* 向前加签
|
||||
@ -26,11 +20,6 @@ public enum BpmnCountersignTypeEnum {
|
||||
* 共享加签
|
||||
*/
|
||||
SHARE_COUNTERSIGN("SHARE_COUNTERSIGN", "共享加签"),
|
||||
/**
|
||||
* 兜底
|
||||
*/
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOW("UNKNOW", "未知"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
@ -41,6 +30,14 @@ public enum BpmnCountersignTypeEnum {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public static BpmnCountersignTypeEnum valueOfType(String countersignType) {
|
||||
if (StringUtils.isBlank(countersignType)) {
|
||||
return null;
|
||||
@ -53,15 +50,4 @@ public enum BpmnCountersignTypeEnum {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnCountersignTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOW;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(v -> v.getType().equalsIgnoreCase(value) || v.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOW);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,42 +1,48 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
@Getter
|
||||
public enum BpmnFlowNodeMode {
|
||||
GENERAL("GENERAL", "普通节点"),
|
||||
OR("OR", "或签节点"),
|
||||
AND("AND", "会签节点"),
|
||||
EXCEPTIONAL("EXCEPTIONAL", "异常"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private String type;
|
||||
private String desc;
|
||||
|
||||
BpmnFlowNodeMode(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static BpmnFlowNodeMode valueOfType(String type) {
|
||||
return fromValue(type);
|
||||
public boolean isEqual(String type) {
|
||||
return this.type.equals(type);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnFlowNodeMode fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static BpmnFlowNodeMode valueOfType(String type) {
|
||||
return Arrays.stream(BpmnFlowNodeMode.values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,14 +1,11 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
@Getter
|
||||
public enum BpmnFlowNodeType {
|
||||
|
||||
//0 发起人 1审批 2抄送 3条件 4路由
|
||||
@ -19,7 +16,6 @@ public enum BpmnFlowNodeType {
|
||||
NODE_PARALLEL("NODE_PARALLEL", "并行节点 - 隶属于并行网关"),
|
||||
NODE_TASK("NODE_TASK", "审核节点"),
|
||||
NODE_BUSINESS("NODE_BUSINESS", "业务节点"),
|
||||
NODE_SIGN("NODE_SIGN", "签署确认节点"),
|
||||
NODE_CARBON_COPY("NODE_CARBON_COPY", "抄送节点"),
|
||||
NODE_TRIGGER("NODE_TRIGGER", "触发器节点"),
|
||||
NODE_ROBOT("NODE_ROBOT", "机器人节点"),
|
||||
@ -28,33 +24,53 @@ public enum BpmnFlowNodeType {
|
||||
NODE_ALTER("NODE_ALTER", "告警节点"),
|
||||
NODE_CANCEL("NODE_CANCEL", "撤回节点"),
|
||||
NODE_EMPTY("NODE_EMPTY", "空节点"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知");
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private String type;
|
||||
private String desc;
|
||||
|
||||
BpmnFlowNodeType(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public boolean isEqual(String type) {
|
||||
return this.type.equals(type);
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static BpmnFlowNodeType getByType(String type) {
|
||||
return fromValue(type);
|
||||
if (!StringUtils.hasText(type)) {
|
||||
return null;
|
||||
}
|
||||
BpmnFlowNodeType[] values = BpmnFlowNodeType.values();
|
||||
for (BpmnFlowNodeType value : values) {
|
||||
if (value.getType().equals(type)) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static BpmnFlowNodeType valueOfType(String type) {
|
||||
return fromValue(type);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnFlowNodeType fromValue(String value) {
|
||||
if (!StringUtils.hasText(value)) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(BpmnFlowNodeType.values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,11 +1,5 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.TEMPLATE_NOTICE_MESSAGE_CONFIG;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.TEMPLATE_PENDING_MESSAGE_ID;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.TEMPLATE_SMS_MESSAGE_ID;
|
||||
@ -16,14 +10,11 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.TEMPLATE_SMS_MESSAG
|
||||
* @author wangli
|
||||
* @since 2023/11/22 11:02
|
||||
*/
|
||||
@Getter
|
||||
public enum BpmnNoticeEnum {
|
||||
|
||||
notice("notice", TEMPLATE_NOTICE_MESSAGE_CONFIG, "通知模板"),
|
||||
pending("pending", TEMPLATE_PENDING_MESSAGE_ID, "待办模板"),
|
||||
sms("sms", TEMPLATE_SMS_MESSAGE_ID, "短信模板"),
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "unknown", "未知类型"),
|
||||
;
|
||||
private final String key;
|
||||
private final String configName;
|
||||
@ -35,14 +26,15 @@ public enum BpmnNoticeEnum {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnNoticeEnum fromValue(String key) {
|
||||
if (key == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getKey().equalsIgnoreCase(key) || e.name().equalsIgnoreCase(key))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public String getConfigName() {
|
||||
return configName;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,12 +1,7 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Getter
|
||||
public enum BpmnProcessInstanceResultEnum {
|
||||
PROCESSING("PROCESSING", "审批中"),
|
||||
APPROVED("APPROVED", "已通过"),
|
||||
@ -16,11 +11,8 @@ public enum BpmnProcessInstanceResultEnum {
|
||||
ABORTED("ABORTED", "已中止"),
|
||||
TRANSFER("TRANSFER", "已转交"),
|
||||
COUNTERSIGN("COUNTERSIGN", "已加签"),
|
||||
UPGRADED("UPGRADED", "已提级"),
|
||||
COMMENTED("COMMENTED", "已评论"),
|
||||
DELETED("DELETED", "已删除"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知"),
|
||||
;
|
||||
/**
|
||||
* 结果
|
||||
@ -36,8 +28,25 @@ public enum BpmnProcessInstanceResultEnum {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static BpmnProcessInstanceResultEnum valueOfDesc(String desc) {
|
||||
return Arrays.stream(values()).filter(it -> it.getDesc().equals(desc)).findFirst().orElse(DELETED);
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断该结果是否已经处于 End 最终结果
|
||||
* <p>
|
||||
* 主要用于一些结果更新的逻辑,如果已经是最终结果,就不再进行更新
|
||||
*
|
||||
* @param result 结果
|
||||
* @return 是否
|
||||
*/
|
||||
public static boolean isEndResult(Integer result) {
|
||||
return Arrays.asList(PROCESSING.getStatus(), APPROVED.getStatus(), REJECTED.getStatus(),
|
||||
CANCELLED.getStatus()).contains(result);
|
||||
}
|
||||
|
||||
public static BpmnProcessInstanceResultEnum valueOfStatus(String status) {
|
||||
@ -45,15 +54,8 @@ public enum BpmnProcessInstanceResultEnum {
|
||||
.orElse(DELETED);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnProcessInstanceResultEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(BpmnProcessInstanceResultEnum.values())
|
||||
.filter(e -> e.getStatus().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
public static BpmnProcessInstanceResultEnum valueOfDesc(String desc) {
|
||||
return Arrays.stream(values()).filter(it -> it.getDesc().equals(desc)).findFirst()
|
||||
.orElse(DELETED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,45 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Getter
|
||||
public enum BpmnProcessTaskResultEnum {
|
||||
PENDING("PENDING", "待处理"),
|
||||
APPROVED("APPROVED", "已同意"),
|
||||
REJECTED("REJECTED", "已驳回"),
|
||||
DELETED("DELETED", "已删除"),
|
||||
CANCELED("CANCELED", "已撤销"),
|
||||
TRANSFERRED("TRANSFERRED", "已转交"),
|
||||
NONE("NONE", "没有执行动作,例如 抄送"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知"),
|
||||
;
|
||||
/**
|
||||
* 结果
|
||||
*/
|
||||
private final String status;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String desc;
|
||||
|
||||
BpmnProcessTaskResultEnum(String status, String desc) {
|
||||
this.status = status;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnProcessTaskResultEnum fromValue(String status) {
|
||||
if (status == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getStatus().equalsIgnoreCase(status) || e.name().equalsIgnoreCase(status))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,17 +1,10 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 加签类型
|
||||
*
|
||||
* @author zuoqinbo
|
||||
*/
|
||||
@Getter
|
||||
public enum BpmnReminderType {
|
||||
/**
|
||||
* 短信
|
||||
@ -20,10 +13,7 @@ public enum BpmnReminderType {
|
||||
/**
|
||||
* 站内信
|
||||
*/
|
||||
INBOX_MESSAGE("INBOX_MESSAGE", "站内信"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知"),
|
||||
;
|
||||
INBOX_MESSAGE("INBOX_MESSAGE", "站内信");
|
||||
|
||||
private String type;
|
||||
private String desc;
|
||||
@ -33,15 +23,24 @@ public enum BpmnReminderType {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnReminderType fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
public boolean isEqual(String type) {
|
||||
return this.type.equals(type);
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 签署方式
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-25 17:00
|
||||
*/
|
||||
@Getter
|
||||
public enum BpmnSignType {
|
||||
|
||||
SINGLE("SINGLE", "指定人群,所有人共同签署一份文件"),
|
||||
MULTI("MULTI", "指定人群,每人签署一份文件"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
BpmnSignType(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static BpmnSignType valueOfType(String type) {
|
||||
return fromValue(type);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BpmnSignType fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(BpmnSignType.values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,35 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Getter
|
||||
public enum BusinessTypeEnum {
|
||||
|
||||
SIGN("sign", "签署业务"),
|
||||
APPROVAL("approval", "审批业务"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("unknown", "未知");
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
BusinessTypeEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static BusinessTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(v -> v.getType().equalsIgnoreCase(value) || v.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Getter
|
||||
public enum ButtonVisibleScopeEnum {
|
||||
|
||||
INITIATOR("INITIATOR", "发起人"),
|
||||
EXECUTOR("EXECUTOR", "当前操作人"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知");
|
||||
|
||||
/**
|
||||
* 结果
|
||||
*/
|
||||
private final String status;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String desc;
|
||||
|
||||
ButtonVisibleScopeEnum(String status, String desc) {
|
||||
this.status = status;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ButtonVisibleScopeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getStatus().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,7 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 抄送对象类型枚举
|
||||
@ -12,7 +9,6 @@ import java.util.Arrays;
|
||||
* @author wangli
|
||||
* @since 12/03/2024 09:33
|
||||
*/
|
||||
@Getter
|
||||
public enum CarbonCopyObjectType {
|
||||
// 单位下
|
||||
ent_role("ent_role", "role", "单位内指定角色", "entWorkspaceProcessor"),
|
||||
@ -37,14 +33,12 @@ public enum CarbonCopyObjectType {
|
||||
approver("approver", "approver", "审批人", "common"),
|
||||
ent_initiator_leader("ent_initiator_leader", "initiatorLeader", "单位内发起人主管", "entWorkspaceProcessor"),
|
||||
project_initiator_leader("project_initiator_leader", "initiatorLeader", "项目部内发起人主管", "projectWorkspaceProcessor"),
|
||||
;
|
||||
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "unknown", "未知", "unknownProcessor");
|
||||
|
||||
private final String type;
|
||||
private final String simpleType;
|
||||
private final String desc;
|
||||
private final String processor;
|
||||
private String type;
|
||||
private String simpleType;
|
||||
private String desc;
|
||||
private String processor;
|
||||
|
||||
CarbonCopyObjectType(String type, String simpleType, String desc, String processor) {
|
||||
this.type = type;
|
||||
@ -53,19 +47,43 @@ public enum CarbonCopyObjectType {
|
||||
this.processor = processor;
|
||||
}
|
||||
|
||||
public static CarbonCopyObjectType valueOfType(String type) {
|
||||
return fromValue(type);
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static CarbonCopyObjectType fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getSimpleType() {
|
||||
return simpleType;
|
||||
}
|
||||
|
||||
public void setSimpleType(String simpleType) {
|
||||
this.simpleType = simpleType;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getProcessor() {
|
||||
return processor;
|
||||
}
|
||||
|
||||
public void setProcessor(String processor) {
|
||||
this.processor = processor;
|
||||
}
|
||||
|
||||
public static CarbonCopyObjectType valueOfType(String type) {
|
||||
return Arrays.stream(CarbonCopyObjectType.values())
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 参建单位类型枚举
|
||||
* <p>
|
||||
* 拷贝自 cn.axzo.orgmanax.dto.cooperateship.enums.CooperateShipTypeEnum
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-08-13 14:51
|
||||
*/
|
||||
@Getter
|
||||
public enum CooperateShipTypeEnum {
|
||||
PROJ_PRIMARY_CONTRACTING_UNIT(1, "施工总承包"),
|
||||
PROJ_CONSTRUCTION_UNIT(2, "建设单位"),
|
||||
PROJ_SUPERVISION_UNIT(3, "监理单位"),
|
||||
PROJ_LABOR_SUBCONTRACTING(4, "劳务分包"),
|
||||
PROJ_PROFESSIONAL_SUBCONTRACTING(5, "专业承包"),
|
||||
OMS(6, "OMS"),
|
||||
ENT_COMMON(7, "企业通用"),
|
||||
ENT_TEAM(8, "企业内班组"),
|
||||
PROJ_TEAM(9, "项目内班组"),
|
||||
ENT_GROUP(10, "企业内小组"),
|
||||
PROJ_GROUP(11, "项目内小组"),
|
||||
SURVEY_UNIT(12, "地勘单位"),
|
||||
DESIGN_UNIT(13, "设计单位"),
|
||||
OTHER(30, "其他"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN(99, "未知");
|
||||
|
||||
private final Integer code;
|
||||
private final String desc;
|
||||
|
||||
CooperateShipTypeEnum(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static CooperateShipTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(v -> v.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
|
||||
/**
|
||||
* 流程模型关联的文档变更 MQ 事件枚举定义
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-07 16:46
|
||||
*/
|
||||
public enum DocChangeEventEnum {
|
||||
DOC_CHANGE("doc", "doc-change", "模型关联文档变更"),
|
||||
;
|
||||
|
||||
private final String module;
|
||||
private final String tag;
|
||||
private final String desc;
|
||||
private Event.EventCode eventCode;
|
||||
|
||||
DocChangeEventEnum(String module, String tag, String desc) {
|
||||
this.eventCode = Event.EventCode.builder()
|
||||
.module(module)
|
||||
.name(tag)
|
||||
.build();
|
||||
this.module = module;
|
||||
this.tag = tag;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getModule() {
|
||||
return module;
|
||||
}
|
||||
|
||||
public String getTag() {
|
||||
return tag;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Event.EventCode getEventCode() {
|
||||
return eventCode;
|
||||
}
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 模型扩展表的状态枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-15 09:46
|
||||
*/
|
||||
@Getter
|
||||
public enum ExtModelStateFieldEnum {
|
||||
status,
|
||||
printStatus,
|
||||
@JsonEnumDefaultValue
|
||||
unknown,
|
||||
;
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ExtModelStateFieldEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(ExtModelStateFieldEnum.values())
|
||||
.filter(e -> e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,59 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 文档类型枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-27 09:55
|
||||
*/
|
||||
@Getter
|
||||
public enum FileTypeEnum {
|
||||
WORD("word", "文本", ".docx"),
|
||||
EXCEL("excel", "表格", ".xlsx"),
|
||||
HIPRINT("hiprint", "智能文档", ""),
|
||||
PDF("pdf", "PDF", ".pdf"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("unknown", "未知", ""),
|
||||
;
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private final String suffix;
|
||||
|
||||
FileTypeEnum(String type, String desc, String suffix) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
this.suffix = suffix;
|
||||
}
|
||||
|
||||
public static FileTypeEnum valueOfType(String type) {
|
||||
return fromValue(type);
|
||||
}
|
||||
|
||||
public static FileTypeEnum valueOfLikeSuffix(String suffix) {
|
||||
if (suffix == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(FileTypeEnum.values())
|
||||
.filter(e -> e.getSuffix().contains(suffix))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static FileTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(FileTypeEnum.values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,143 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import cn.axzo.workflow.common.model.dto.AmountFieldDTO;
|
||||
import cn.axzo.workflow.common.model.dto.ContactsPersonDTO;
|
||||
import cn.axzo.workflow.common.model.dto.UploadFieldDTO;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 流程引擎表单字段类型枚举
|
||||
* <p>
|
||||
* 参考文档:{@see https://alidocs.dingtalk.com/i/nodes/ZgpG2NdyVXKy17o6fQ5nKGvMWMwvDqPk}
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-08-04 11:44
|
||||
*/
|
||||
public enum FormFieldTypeEnum {
|
||||
input("input", "文本", new TypeReference<String>() {
|
||||
}),
|
||||
textarea("textarea", "多行文本", new TypeReference<String>() {
|
||||
}),
|
||||
upload("upload", "上传文件", new TypeReference<List<UploadFieldDTO>>() {
|
||||
}),
|
||||
image("image", "图片", new TypeReference<List<UploadFieldDTO>>() {
|
||||
}),
|
||||
date("date", "日期", new TypeReference<String>() {
|
||||
}),
|
||||
customComponent("customComponent", "自定义组件", new TypeReference<List<Map<String, Object>>>() {
|
||||
}),
|
||||
taskOrder("taskOrder", "任务顺序", new TypeReference<Map<String, Object>>() {
|
||||
}),
|
||||
rectifyOrder("rectifyOrder", "整改顺序", new TypeReference<Map<String, Object>>() {
|
||||
}),
|
||||
changeSignatureOrder("changeSignatureOrder", "变更签署顺序", new TypeReference<Map<String, Object>>() {
|
||||
}),
|
||||
contacts("contacts", "联系人", new TypeReference<List<ContactsPersonDTO>>() {
|
||||
}),
|
||||
amount("amount", "金额", new TypeReference<AmountFieldDTO>() {
|
||||
}),
|
||||
decimal("decimal", "小数", new TypeReference<Map<String, Object>>() {
|
||||
}),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private final TypeReference<?> typeReference;
|
||||
|
||||
FormFieldTypeEnum(String type, String desc, TypeReference<?> typeReference) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
this.typeReference = typeReference;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public TypeReference<?> getTypeReference() {
|
||||
return typeReference;
|
||||
}
|
||||
|
||||
public static FormFieldTypeEnum valueOfType(String type) {
|
||||
return Arrays.stream(FormFieldTypeEnum.values())
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
public static Object parseValue(String type, Object fieldValue, Map<String, Object> fieldParams) {
|
||||
FormFieldTypeEnum fieldType = valueOfType(type);
|
||||
if (fieldType == null) {
|
||||
return null;
|
||||
}
|
||||
TypeReference<?> typeReference = fieldType.getTypeReference();
|
||||
if (typeReference == null || typeReference.getType() == null) {
|
||||
return fieldValue;
|
||||
}
|
||||
if (fieldValue == null) {
|
||||
return null;
|
||||
}
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
// 如果已经是目标类型,直接返回
|
||||
if (objectMapper.constructType(typeReference.getType()).getRawClass().isInstance(fieldValue)) {
|
||||
return fieldValue;
|
||||
}
|
||||
// 先转为字符串再反序列化
|
||||
String json = fieldValue.toString();
|
||||
if (!(fieldValue instanceof String)) {
|
||||
json = objectMapper.writeValueAsString(fieldValue);
|
||||
}
|
||||
Object defaultValue = handleDefault(fieldParams, json, fieldType);
|
||||
if (Objects.nonNull(defaultValue)) {
|
||||
return fieldValue;
|
||||
}
|
||||
if (Objects.equals(type, "decimal")) {
|
||||
// 特殊处理 decimal 类型,确保返回的 Map 包含 unit 字段
|
||||
Map<String, Object> decimalMap = new HashMap<>();
|
||||
decimalMap.put("value", fieldValue);
|
||||
decimalMap.put("unit", fieldParams.getOrDefault("unit", ""));
|
||||
return decimalMap;
|
||||
}
|
||||
return objectMapper.readValue(json, typeReference);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("字段值解析失败: " + fieldValue, e);
|
||||
}
|
||||
}
|
||||
|
||||
private static Object handleDefault(Map<String, Object> fieldParams, String json, FormFieldTypeEnum fieldType) {
|
||||
if (Objects.equals("[]", json)) {
|
||||
switch (fieldType) {
|
||||
case upload:
|
||||
case image:
|
||||
case customComponent:
|
||||
case taskOrder:
|
||||
case rectifyOrder:
|
||||
case changeSignatureOrder:
|
||||
case contacts:
|
||||
// 对于这些类型,返回空列表而不是空字符串
|
||||
return Collections.emptyList();
|
||||
case decimal:
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("value", 0);
|
||||
map.put("unit", fieldParams.getOrDefault("unit", ""));
|
||||
return map;
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -1,42 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 新版配置下的发起人自选的范围限定枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-08-13 15:13
|
||||
*/
|
||||
@Getter
|
||||
public enum InitiatorSpecifiedRangeEnum {
|
||||
self_and_children_in_project("self_and_children_in_project", "项目内本组织及其下属组织所有成员"),
|
||||
self_in_project("self_in_project", "项目内本组织所有成员"),
|
||||
in_project("in_project", "项目内所有成员"),
|
||||
in_ent("in_ent", "企业内所有成员"),
|
||||
@JsonEnumDefaultValue
|
||||
unknown("unknown", "未知"),
|
||||
;
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
InitiatorSpecifiedRangeEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static InitiatorSpecifiedRangeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
}
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 模型业务类型枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-26 11:49
|
||||
*/
|
||||
@Getter
|
||||
public enum ModelBizTypeEnum {
|
||||
|
||||
SIGN("SIGN", "签署业务"),
|
||||
FLOWABLE("FLOWABLE", "审批业务"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知"),
|
||||
;
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
ModelBizTypeEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static ModelBizTypeEnum valueOfType(String type) {
|
||||
return fromValue(type);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static ModelBizTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 顺序操作枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-31 16:35
|
||||
*/
|
||||
@Getter
|
||||
public enum OrderEnum {
|
||||
|
||||
UP, DOWN,
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN;
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static OrderEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,42 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 打印字段的类型枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-16 18:19
|
||||
*/
|
||||
@Getter
|
||||
public enum PrintFieldCategoryEnum {
|
||||
|
||||
// 表单变量
|
||||
form,
|
||||
// 流程内系统变量
|
||||
system,
|
||||
// 电子签名变量
|
||||
signature,
|
||||
// 签署业务自定义变量
|
||||
sign,
|
||||
// 审批业务的变量
|
||||
biz_variable,
|
||||
@JsonEnumDefaultValue
|
||||
unknown,
|
||||
;
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static PrintFieldCategoryEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return unknown;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(unknown);
|
||||
}
|
||||
}
|
||||
@ -17,7 +17,6 @@ public enum ProcessMessagePushEventEnum {
|
||||
PROCESS_CARBON_COPY("process-push", "process-carbon-copy", "抄送流程"),
|
||||
PROCESS_CARBON_COPY_COMPLETE("process-push", "process-carbon-copy-complete", "完成抄送"),
|
||||
PROCESS_PUSH_SMS("process-push", "process-push-sms", "短信推送"),
|
||||
PROCESS_PUSH_IM("process-push", "process-push-im", "IM 推送"),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@ -2,9 +2,6 @@ package cn.axzo.workflow.common.enums;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.TaskListenerExtConstants.EVENTNAME_FALLBACK;
|
||||
import static cn.axzo.workflow.common.constant.TaskListenerExtConstants.EVENTNAME_TRANSFER;
|
||||
|
||||
/**
|
||||
* 流程任务节点相关的 MQ 事件枚举定义
|
||||
*
|
||||
@ -15,8 +12,6 @@ public enum ProcessTaskEventEnum {
|
||||
|
||||
PROCESS_TASK_ASSIGNED("process-task", "process-task-assigned", "流程任务已分配"),
|
||||
PROCESS_TASK_CREATED("process-task", "process-task-created", "流程任务已创建"),
|
||||
PROCESS_TASK_TRANSFER("process-task", EVENTNAME_TRANSFER, "流程任务已转交"),
|
||||
PROCESS_TASK_FALLBACK("process-task", EVENTNAME_FALLBACK, "流程任务已回退"),
|
||||
PROCESS_TASK_COMPLETED("process-task", "process-task-completed", "流程任务已结束"),
|
||||
PROCESS_TASK_DELETED("process-task", "process-task-deleted", "流程任务已删除"),
|
||||
;
|
||||
@ -50,5 +45,4 @@ public enum ProcessTaskEventEnum {
|
||||
public Event.EventCode getEventCode() {
|
||||
return eventCode;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 签署确认节点的审批人层级范围限制
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-26 14:30
|
||||
*/
|
||||
@Getter
|
||||
public enum SignApproverOrgLimitEnum {
|
||||
LV_0("LV_0", "当前组织", 0),
|
||||
LV_1("LV_1", "上1级组织", 1),
|
||||
LV_2("LV_2", "上2级组织", 2),
|
||||
LV_3("LV_3", "上3级组织", 3),
|
||||
LV_4("LV_4", "上4级组织", 4),
|
||||
LV_5("LV_5", "上5级组织", 5),
|
||||
LV_ALL("LV_ALL", "所有组织", -1),
|
||||
LV_TOP("LV_TOP", "顶层组织", Integer.MAX_VALUE),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知层级", null);
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
private final Integer code;
|
||||
|
||||
SignApproverOrgLimitEnum(String type, String desc, Integer code) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public static SignApproverOrgLimitEnum valueOfType(String type) {
|
||||
return fromValue(type);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static SignApproverOrgLimitEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,47 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 签署确认节点的审批人层级范围限制
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-26 14:30
|
||||
*/
|
||||
@Getter
|
||||
public enum SignApproverRoleLimitEnum {
|
||||
LEADER("LEADER", "负责人"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知");
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
SignApproverRoleLimitEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static SignApproverRoleLimitEnum valueOfType(String type) {
|
||||
return Arrays.stream(SignApproverRoleLimitEnum.values())
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static SignApproverRoleLimitEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,11 +1,5 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 时间查询方向
|
||||
* <p>
|
||||
@ -15,22 +9,8 @@ import java.util.Arrays;
|
||||
* @author wangli
|
||||
* @since 2024-09-29 09:56
|
||||
*/
|
||||
@Getter
|
||||
public enum TimeQueryDirection {
|
||||
BEFORE,
|
||||
AFTER,
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN,
|
||||
;
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static TimeQueryDirection fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,39 +0,0 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 模版上变量字段类型
|
||||
*/
|
||||
@Getter
|
||||
public enum VarTypeEnum {
|
||||
|
||||
TEXT("text", "文本"),
|
||||
PICTURE("picture", "图片"),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("unknown", "未知"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
VarTypeEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static VarTypeEnum fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getType().equalsIgnoreCase(value) || e.name().equalsIgnoreCase(value))
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,6 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
@ -11,6 +10,7 @@ import java.util.Arrays;
|
||||
* @date 2023/11/21
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum WorkspaceType {
|
||||
|
||||
/**
|
||||
@ -21,30 +21,15 @@ public enum WorkspaceType {
|
||||
PROJECT(2, "项目"),
|
||||
GOVERNMENT(3, "政务监管平台"),
|
||||
OMS(6, "oms工作台"),
|
||||
@JsonEnumDefaultValue
|
||||
UN_KNOW(0, "未知"),
|
||||
;
|
||||
|
||||
private final Integer code;
|
||||
private final String desc;
|
||||
|
||||
WorkspaceType(Integer code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static WorkspaceType getType(Integer code) {
|
||||
return fromValue(String.valueOf(code));
|
||||
}
|
||||
|
||||
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
|
||||
public static WorkspaceType fromValue(String value) {
|
||||
if (value == null) {
|
||||
return UN_KNOW;
|
||||
}
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getCode().toString().equalsIgnoreCase(value))
|
||||
return Arrays.stream(values()).filter(it -> it.getCode().equals(code))
|
||||
.findFirst()
|
||||
.orElse(UN_KNOW);
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,23 +0,0 @@
|
||||
package cn.axzo.workflow.common.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 节点检测告警对象
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024-09-13 11:37
|
||||
*/
|
||||
@Data
|
||||
public class NextNodePreCheckAlterDTO {
|
||||
|
||||
private String processDefinitionKey;
|
||||
|
||||
private String processDefinitionName;
|
||||
|
||||
private String processInstanceId;
|
||||
|
||||
private String activityId;
|
||||
|
||||
private String errorMsg;
|
||||
}
|
||||
@ -12,11 +12,6 @@ import java.util.Date;
|
||||
*/
|
||||
@Data
|
||||
public class AlterDTO {
|
||||
|
||||
private String processDefinitionKey;
|
||||
|
||||
private String processDefinitionName;
|
||||
|
||||
private String processInstanceId;
|
||||
|
||||
private String activityId;
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 金额字段值类型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-05-16 17:21
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class AmountFieldDTO implements Serializable {
|
||||
private static final long serialVersionUID = -3519991080707599177L;
|
||||
|
||||
/**
|
||||
* 小写
|
||||
*/
|
||||
private BigDecimal standardNumerals;
|
||||
|
||||
/**
|
||||
* 大写
|
||||
*/
|
||||
private String uppercaseNumerals;
|
||||
}
|
||||
@ -1,28 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 模型关联文档变更事件内部传输对象
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-07 16:53
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class BizDocDTO implements Serializable {
|
||||
|
||||
private String archiveName;
|
||||
|
||||
private String archiveCode;
|
||||
|
||||
private Boolean enabled;
|
||||
|
||||
}
|
||||
@ -1,28 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 模型与表单的创建模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024-11-07 18:48
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class BpmnFormRelationCreateDTO {
|
||||
|
||||
@ApiModelProperty(value = "业务标识")
|
||||
private String key;
|
||||
|
||||
@ApiModelProperty(value = "模型定义ID")
|
||||
private String bpmnDefinitionId;
|
||||
|
||||
@ApiModelProperty(value = "表单部署ID")
|
||||
private String formDeploymentId;
|
||||
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
private String tenantId;
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID;
|
||||
|
||||
/**
|
||||
* 搜索
|
||||
*
|
||||
* @author wangli
|
||||
* @date 2024/11/08
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class BpmnFormRelationSearchDTO extends BpmPageParam {
|
||||
|
||||
/**
|
||||
* 业务标识
|
||||
*/
|
||||
@ApiModelProperty(value = "业务标识")
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 审批模型定义 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "审批模型定义 ID")
|
||||
private String bpmnDefinitionId;
|
||||
|
||||
/**
|
||||
* 表单定义部署 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "表单定义部署 ID")
|
||||
private String formDeploymentId;
|
||||
|
||||
/**
|
||||
* 租户 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
private String tenantId = NO_TENANT_ID;
|
||||
}
|
||||
@ -1,71 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 通讯录组件返回的人员信息模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-05-15 14:04
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class ContactsPersonDTO {
|
||||
/**
|
||||
* xx:xx:xx
|
||||
*/
|
||||
private String nodeId;
|
||||
|
||||
/**
|
||||
* 身份 ID
|
||||
*/
|
||||
private Long identityId;
|
||||
|
||||
/**
|
||||
* 身份类型
|
||||
*/
|
||||
private Integer identityType;
|
||||
|
||||
/**
|
||||
* 真实姓名
|
||||
*/
|
||||
private String realName;
|
||||
|
||||
/**
|
||||
* 自然人 ID
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 人员所在的节点 ID
|
||||
*/
|
||||
private Long orgNodeId;
|
||||
|
||||
/**
|
||||
* 人员所在的单位 ID
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 人员所在的单位名称
|
||||
*/
|
||||
private String ouName;
|
||||
|
||||
/**
|
||||
* 人员所在的工作台 ID
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 人员所在的工作台类型
|
||||
*/
|
||||
private Integer workspaceType;
|
||||
|
||||
}
|
||||
@ -23,22 +23,6 @@ import java.util.List;
|
||||
@Builder
|
||||
public class CooperationOrgDTO implements Serializable {
|
||||
private static final long serialVersionUID = 4739924705980062997L;
|
||||
/**
|
||||
* 叶子节点ID(末级节点),仅限用于新的项目配置模式
|
||||
* <p>
|
||||
* 该参数的用意是基于组织架构的一条线审批,而叶子节点则是为了确认最底层,人岗架会基于 nodeId 向上推出“线”的范围。
|
||||
*/
|
||||
private Long nodeId;
|
||||
|
||||
/**
|
||||
* 基于人权事的,指定某些管理管辖人员
|
||||
*/
|
||||
private List<String> includeAreaCodes;
|
||||
|
||||
/**
|
||||
* 基于人权事的,指定专业管辖人员
|
||||
*/
|
||||
private List<String> includeSpecialtyCodes;
|
||||
|
||||
/**
|
||||
* 企业组织架构范围
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 岗位信息
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-06-23 19:35
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class JobInfo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -6092011348559752255L;
|
||||
/**
|
||||
* 岗位名称
|
||||
*/
|
||||
private String jobName;
|
||||
|
||||
/**
|
||||
* 岗位编码
|
||||
*/
|
||||
private String jobCode;
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 岗位信息
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-06-23 19:35
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class NodeInfo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -6092011348559752255L;
|
||||
/**
|
||||
* 岗位名称
|
||||
*/
|
||||
private Long nodeId;
|
||||
|
||||
/**
|
||||
* 岗位编码
|
||||
*/
|
||||
private String nodeName;
|
||||
}
|
||||
@ -1,71 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 组织架构中的项目快照信息
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-06-23 18:31
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class OrgSnapshotInfo implements Serializable {
|
||||
private static final long serialVersionUID = -2898438378034300663L;
|
||||
|
||||
/**
|
||||
* 工作台名称
|
||||
*/
|
||||
private String workspaceName;
|
||||
|
||||
/**
|
||||
* 工作台 ID
|
||||
*/
|
||||
private String workspaceId;
|
||||
|
||||
/**
|
||||
* 工作台类型
|
||||
*/
|
||||
private Integer workspaceType;
|
||||
|
||||
/**
|
||||
* 参建单位类型
|
||||
*/
|
||||
private Integer cooperationType;
|
||||
|
||||
/**
|
||||
* 参建单位名称
|
||||
*/
|
||||
private String ouName;
|
||||
|
||||
/**
|
||||
* 参建单位 ID
|
||||
*/
|
||||
private String ouId;
|
||||
|
||||
/**
|
||||
* 顶级节点 ID
|
||||
*/
|
||||
private String topNodeId;
|
||||
|
||||
/**
|
||||
* 部门快照信息集合
|
||||
*/
|
||||
private List<NodeInfo> nodeInfos;
|
||||
|
||||
/**
|
||||
* 岗位快照信息集合
|
||||
*/
|
||||
private List<JobInfo> jobInfos;
|
||||
|
||||
}
|
||||
@ -1,55 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 审批人员的组织架构信息
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-06-23 18:23
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class OrgStructureSnapshotInfo implements Serializable {
|
||||
private static final long serialVersionUID = 4199079714585922731L;
|
||||
|
||||
/**
|
||||
* 审批人姓名
|
||||
*/
|
||||
private String personName;
|
||||
|
||||
/**
|
||||
* 头像(仅为审批任务被接受那一刻的电话,不可作为对外展示数据)
|
||||
*/
|
||||
private String avatarUrl;
|
||||
|
||||
/**
|
||||
* 手机号(仅为审批任务被接受那一刻的电话,不可作为对外展示数据)
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 审批人顶级节点 ID
|
||||
*/
|
||||
private Long topNodeId;
|
||||
|
||||
/**
|
||||
* 工作台类型
|
||||
*/
|
||||
private int workspaceType;
|
||||
|
||||
/**
|
||||
* 组织快照信息
|
||||
*/
|
||||
private OrgSnapshotInfo snapshotInfo;
|
||||
|
||||
}
|
||||
@ -1,60 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import cn.axzo.workflow.common.enums.FileTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 签署文件记录信息
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-03 11:21
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SignFileDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -8709597975507074853L;
|
||||
/**
|
||||
* 文件模板主键 ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 文件名称,可能会包含变量
|
||||
*/
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 模板名称
|
||||
*/
|
||||
private String templateName;
|
||||
|
||||
/**
|
||||
* 文件的标签
|
||||
*/
|
||||
private String fileTag;
|
||||
|
||||
/**
|
||||
* 文件 code
|
||||
*/
|
||||
private String fileCode;
|
||||
|
||||
/**
|
||||
* 文件的类型
|
||||
*/
|
||||
private FileTypeEnum fileType;
|
||||
|
||||
/**
|
||||
* 替换变量后的文件 fileKey
|
||||
*/
|
||||
private String fileKey;
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 节点的电子签名数据
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-15 20:11
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SignatureDTO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* 节点 ID
|
||||
*/
|
||||
private String activityId;
|
||||
/**
|
||||
* 节点名称
|
||||
*/
|
||||
private String activityName;
|
||||
/**
|
||||
* 签名图片数据有序集合
|
||||
*/
|
||||
private List<SignDetail> signatures;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class SignDetail implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String signature;
|
||||
private String advice;
|
||||
}
|
||||
}
|
||||
@ -1,37 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 审批人在不同任务下,关联文档的阅读状态
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-08 13:59
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SimpleDocDTO implements Serializable {
|
||||
/**
|
||||
* 关联的文档 ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联的文档业务标签
|
||||
*/
|
||||
private String tag;
|
||||
|
||||
/**
|
||||
* 阅读状态: true 已读
|
||||
*/
|
||||
private Boolean readStatus;
|
||||
}
|
||||
@ -1,26 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 简单的任务模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024-12-09 14:30
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SimpleTaskDTO {
|
||||
/**
|
||||
* 流程实例 ID
|
||||
*/
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 任务 ID
|
||||
*/
|
||||
private String taskId;
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 业务节点添加定时任务的模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-19 16:33
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class TermNodeAddTimerJobDTO implements Serializable {
|
||||
private String processInstanceId;
|
||||
private String processDefinitionId;
|
||||
private String activityId;
|
||||
private String activityName;
|
||||
private Integer delayTime;
|
||||
private String timeUnit;
|
||||
}
|
||||
@ -1,38 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 上传附件字段类型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024-11-22 14:48
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class UploadFieldDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -1L;
|
||||
/**
|
||||
* 文件名称
|
||||
*/
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 文件类型
|
||||
*/
|
||||
private String fileUrl;
|
||||
|
||||
/**
|
||||
* 文件 oss 的 key
|
||||
*/
|
||||
private String fileKey;
|
||||
|
||||
}
|
||||
@ -1,44 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 从流程实例中获取变量,携带数据类型的对象
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-09 11:46
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class VariableObjectDTO {
|
||||
|
||||
public enum Type {
|
||||
img, text, obj, signatureAndAdvice
|
||||
}
|
||||
|
||||
/**
|
||||
* 变量 key
|
||||
*/
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 变量中文名
|
||||
*/
|
||||
private String desc;
|
||||
|
||||
/**
|
||||
* 变量值
|
||||
*/
|
||||
private Object value;
|
||||
|
||||
/**
|
||||
* 变量类型
|
||||
*/
|
||||
@Builder.Default
|
||||
private Type type = Type.text;
|
||||
}
|
||||
@ -68,7 +68,6 @@ public class HistoricProcessInstanceSearchForEsDTO {
|
||||
* <p>
|
||||
* 默认是查询开始时间之后
|
||||
*/
|
||||
@Builder.Default
|
||||
private TimeQueryDirection startTimeDirection = TimeQueryDirection.AFTER;
|
||||
|
||||
/**
|
||||
@ -81,19 +80,16 @@ public class HistoricProcessInstanceSearchForEsDTO {
|
||||
* <p>
|
||||
* 默认是查询结束时间点之前
|
||||
*/
|
||||
@Builder.Default
|
||||
private TimeQueryDirection endTimeDirection = TimeQueryDirection.BEFORE;
|
||||
|
||||
/**
|
||||
* 是否包含流程变量
|
||||
*/
|
||||
@Builder.Default
|
||||
private Boolean hasVariables = false;
|
||||
|
||||
/**
|
||||
* 用于覆盖同步逻辑中的PageSize,一般不需要传
|
||||
*/
|
||||
@Builder.Default
|
||||
private Integer overPageSize = 50;
|
||||
|
||||
}
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto.print;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 字段属性
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-16 17:31
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("打印时的字段的扩展属性模型")
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class FieldAttributeDTO {
|
||||
|
||||
/**
|
||||
* 属性 code
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 属性名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
private String fieldFormType;
|
||||
}
|
||||
@ -1,46 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.dto.print;
|
||||
|
||||
import cn.axzo.workflow.common.enums.PrintFieldCategoryEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 打印时的字段模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-16 17:09
|
||||
*/
|
||||
@ApiModel("打印时的字段模型")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class PrintFieldDTO {
|
||||
/**
|
||||
* 字段中文名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 字段类型(表单字段、系统字段)
|
||||
*/
|
||||
private PrintFieldCategoryEnum fieldCategoryType;
|
||||
|
||||
/**
|
||||
* 用于替换是变量名
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 字段的表单的类型
|
||||
*/
|
||||
private String fieldFormType;
|
||||
|
||||
/**
|
||||
* 复杂组件的扩展字段,例如“自定义组件”,“审批日志”组件等
|
||||
*/
|
||||
private List<FieldAttributeDTO> attributes;
|
||||
|
||||
}
|
||||
@ -10,7 +10,6 @@ import java.io.Serializable;
|
||||
|
||||
@ApiModel("分页参数")
|
||||
public class BpmPageParam implements Serializable {
|
||||
private static final long serialVersionUID = -7002013785995706695L;
|
||||
private static final Integer PAGE_NO = 1;
|
||||
private static final Integer PAGE_SIZE = 10;
|
||||
@ApiModelProperty(value = "页码,从 1 开始", required = true, example = "1")
|
||||
|
||||
@ -9,9 +9,6 @@ import lombok.experimental.Accessors;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.BpmnButtonEnum.BPMN_UPGRADE;
|
||||
|
||||
/**
|
||||
* 流程定义中的按钮配置
|
||||
@ -81,11 +78,4 @@ public class BpmnButtonConf implements Serializable {
|
||||
this.carbonCopy = carbonCopy;
|
||||
}
|
||||
|
||||
public void removeUpGradeButton() {
|
||||
// 移除升级按钮
|
||||
this.initiator.removeIf(button -> Objects.equals(BPMN_UPGRADE.getBtnKey(), button.getType()));
|
||||
this.current.removeIf(button -> Objects.equals(BPMN_UPGRADE.getBtnKey(), button.getType()));
|
||||
this.history.removeIf(button -> Objects.equals(BPMN_UPGRADE.getBtnKey(), button.getType()));
|
||||
this.carbonCopy.removeIf(button -> Objects.equals(BPMN_UPGRADE.getBtnKey(), button.getType()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,12 +1,9 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BusinessTypeEnum;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 按钮元数据
|
||||
@ -18,11 +15,6 @@ import java.util.List;
|
||||
@Accessors(chain = true)
|
||||
public class BpmnButtonMetaInfo implements Serializable {
|
||||
|
||||
public static final String BUTTON_TYPE_SYSTEM = "SYSTEM";
|
||||
public static final String BUTTON_TYPE_CUSTOM = "CUSTOM";
|
||||
|
||||
private static final long serialVersionUID = -5224316166904752829L;
|
||||
|
||||
/**
|
||||
* 按钮顺序
|
||||
*/
|
||||
@ -47,19 +39,10 @@ public class BpmnButtonMetaInfo implements Serializable {
|
||||
* 是否禁用勾选
|
||||
*/
|
||||
private Boolean disabled;
|
||||
/**
|
||||
* 是否隐藏按钮
|
||||
*/
|
||||
private Boolean hidden = false;
|
||||
|
||||
/**
|
||||
* 按钮类型 SYSTEM/CUSTOM
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 按钮支持的业务类型
|
||||
*/
|
||||
private List<BusinessTypeEnum> supportBizType = new ArrayList<>();
|
||||
|
||||
}
|
||||
|
||||
@ -27,11 +27,6 @@ public class BpmnJsonModel implements Serializable {
|
||||
@ApiModelProperty(value = "流程的 Json 结构")
|
||||
private BpmnJsonNode node;
|
||||
|
||||
/**
|
||||
* 签署配置, 可为空,只有签署业务才有该配置
|
||||
*/
|
||||
@ApiModelProperty(value = "签署配置")
|
||||
private BpmnSignConf signConf;
|
||||
/**
|
||||
* 通知管理配置
|
||||
*/
|
||||
|
||||
@ -4,13 +4,8 @@ import cn.axzo.workflow.common.enums.ApprovalMethodEnum;
|
||||
import cn.axzo.workflow.common.enums.ApproverEmptyHandleTypeEnum;
|
||||
import cn.axzo.workflow.common.enums.ApproverScopeEnum;
|
||||
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
|
||||
import cn.axzo.workflow.common.enums.ApproverSpecifyRangeEnum;
|
||||
import cn.axzo.workflow.common.enums.ApproverSpecifyRangeUnitEnum;
|
||||
import cn.axzo.workflow.common.enums.AutoApprovalTypeEnum;
|
||||
import cn.axzo.workflow.common.enums.BpmnFlowNodeMode;
|
||||
import cn.axzo.workflow.common.enums.CooperateShipTypeEnum;
|
||||
import cn.axzo.workflow.common.enums.InitiatorSpecifiedRangeEnum;
|
||||
import cn.axzo.workflow.common.enums.SignApproverOrgLimitEnum;
|
||||
import cn.axzo.workflow.common.model.request.form.FormPermissionMetaInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@ -50,56 +45,13 @@ public class BpmnJsonNodeProperty {
|
||||
//************* 审批人指定Start **************//
|
||||
/**
|
||||
* 审批人指定: position(指定岗位), role(指定角色), identity(指定身份), initiatorLeader(发起人主管), initiatorLeaderRecursion(发起人多级主管),
|
||||
* fixedPerson(固定人员) initiatorSpecified(发起人自选) signerRelated(签署人相关组织)
|
||||
* fixedPerson(固定人员)
|
||||
*/
|
||||
@ApiModelProperty(value = "任务节点: 审批人指定", notes = "position: 指定岗位, role: 指定角色, identity: 指定身份, initiatorLeader: " +
|
||||
"发起人主管, initiatorLeaderRecursion: 发起人多级主管, fixedPerson: 固定人员, initiatorSpecified: 发起人自选, signerRelated: 签署人相关组织")
|
||||
"发起人主管, initiatorLeaderRecursion: 发起人多级主管, fixedPerson: 固定人员")
|
||||
@NotBlank(message = "审批人指定不能为空")
|
||||
private ApproverSpecifyEnum approverSpecify;
|
||||
|
||||
//*************** 针对新配置中的岗位、角色、身份的扩展配置 Start ****************
|
||||
@ApiModelProperty(value = "任务节点:对选择的 approverSpecify 做的二次范围限定配置")
|
||||
private ApproverSpecifyRangeEnum approverSpecifyRange;
|
||||
/**
|
||||
* cn.axzo.orgmanax.dto.cooperateship.enums.CooperateShipTypeEnum
|
||||
*/
|
||||
@ApiModelProperty(value = "任务节点: 当选择approverSpecifyRange的值为positions_within_the_project_construction_units,做的二次范围限定配置的级联选择")
|
||||
private CooperateShipTypeEnum cooperateShipType;
|
||||
|
||||
@ApiModelProperty(value = "任务节点: 当选择approverSpecifyRange的值为specified_org,做的二次范围限定配置的级联选择的值")
|
||||
private SignApproverOrgLimitEnum approverSpecifyRangeOrgLimit;
|
||||
|
||||
/**
|
||||
* 该属性,当 approverSpecify = initiatorLeader_v2 时,也会被应用为限定单位内主管还是项目内主管
|
||||
*/
|
||||
@ApiModelProperty(value = "任务节点: 当选择approverSpecifyRange的值为specified_org,做的二次范围限定配置的级联选择的值")
|
||||
private ApproverSpecifyRangeUnitEnum approverSpecifyRangeUnit;
|
||||
|
||||
//*************** 针对新配置中的岗位、角色、身份的扩展配置 End ****************
|
||||
|
||||
//*************** approverSpecify 为 initiatorSpecified_v2 发起人自选时的一些扩展配置 Start ****************
|
||||
@ApiModelProperty(value = "任务节点: 当选择approverSpecify的值为 initiatorSpecified_v2,做的范围选择的值")
|
||||
private InitiatorSpecifiedRangeEnum initiatorSpecifyRange;
|
||||
@ApiModelProperty(value = "是否开起发起人的筛选策略")
|
||||
private Boolean initiatorSpecifiedFilter;
|
||||
/**
|
||||
* 需要排除的身份类型
|
||||
*/
|
||||
@ApiModelProperty(value = "需要排除的身份类型")
|
||||
private List<String> excludeIdentityTypes;
|
||||
/**
|
||||
* 需要排查的参建单位类型
|
||||
*/
|
||||
@ApiModelProperty(value = "需要排除的参建单位类型")
|
||||
private List<String> excludeCooperateShipTypes;
|
||||
//*************** approverSpecify 为 initiatorSpecified_v2 发起人自选时的一些扩展配置 End ****************
|
||||
|
||||
/**
|
||||
* 签署确认节点的审批人限定规则
|
||||
*/
|
||||
@ApiModelProperty(value = "签署确认节点的审批人限定规则")
|
||||
private BpmnSignApproverLimit signApproverLimit;
|
||||
|
||||
/**
|
||||
* 具体的配置值
|
||||
* <p>
|
||||
@ -142,17 +94,12 @@ public class BpmnJsonNodeProperty {
|
||||
private String emptyApproverSpecify;
|
||||
//************* 审批人为空时的策略End **************//
|
||||
|
||||
/**
|
||||
* 电子签名开关
|
||||
*/
|
||||
@ApiModelProperty(value = "电子签名")
|
||||
private Boolean signature;
|
||||
|
||||
/**
|
||||
* 提级审批配置
|
||||
* 表单字段权限, JSON 格式,按照 UI 进行自定义组装, 引擎不做任何解析, 之后的需求会让业务方前端开发来消费这里的配置
|
||||
*/
|
||||
@ApiModelProperty(value = "提级审批配置")
|
||||
private BpmnUpgradeApprovalConf upgradeApprovalConf;
|
||||
@ApiModelProperty(value = "发起人节点/任务节点: 字段权限集合", notes = "后端不做任何解析, 前端给什么样,就返什么样")
|
||||
private String fieldPermission;
|
||||
|
||||
/**
|
||||
* 按钮权限
|
||||
@ -189,28 +136,15 @@ public class BpmnJsonNodeProperty {
|
||||
|
||||
//************* 抄送节点Start **************//
|
||||
/**
|
||||
* 抄送节点配置,(老的配置)
|
||||
* 抄送节点配置
|
||||
*/
|
||||
@ApiModelProperty(value = "抄送节点: 多组配置,最多五组")
|
||||
private List<BpmnCarbonCopyConf> carbonCopyConf;
|
||||
//************* 抄送节点Start **************//
|
||||
|
||||
/**
|
||||
* 表单字段权限配置
|
||||
* 发起时使用的表单 key
|
||||
*/
|
||||
@ApiModelProperty(value = "表单字段权限控制")
|
||||
private List<FormPermissionMetaInfo> fieldPermission;
|
||||
|
||||
/**
|
||||
* 区域过滤开关
|
||||
*/
|
||||
@ApiModelProperty(value = "区域过滤开关", notes = "true: 开启区域过滤, false: 关闭区域过滤")
|
||||
private Boolean areaFilterEnable;
|
||||
|
||||
/**
|
||||
* 专业过滤开关
|
||||
*/
|
||||
@ApiModelProperty(value = "专业过滤开关", notes = "true: 开启专业过滤, false: 关闭专业过滤")
|
||||
private Boolean specialtyFilterEnable;
|
||||
|
||||
@ApiModelProperty(value = "发起时使用的表单 key")
|
||||
private String formKey;
|
||||
}
|
||||
|
||||
@ -1,44 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn;
|
||||
|
||||
import cn.axzo.workflow.common.enums.SignApproverOrgLimitEnum;
|
||||
import cn.axzo.workflow.common.enums.SignApproverRoleLimitEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* JSON 版本的 BPMN 协议模型中的确认人限定规则
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-26 20:05
|
||||
*/
|
||||
@ApiModel("JSON 版本的 BPMN 协议模型中的确认人限定规则")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class BpmnSignApproverLimit {
|
||||
|
||||
/**
|
||||
* 签署确认节点下人的组织限定规则
|
||||
* <p>
|
||||
* LV_0("LV_0", "当前组织"),
|
||||
* LV_1("LV_1", "上1级组织"),
|
||||
* LV_2("LV_2", "上2级组织"),
|
||||
* LV_3("LV_3", "上3级组织"),
|
||||
* LV_4("LV_4", "上4级组织"),
|
||||
* LV_5("LV_5", "上5级组织"),
|
||||
*/
|
||||
@ApiModelProperty(value = "签署确认节点下人的组织限定规则")
|
||||
private SignApproverOrgLimitEnum orgLimit;
|
||||
|
||||
/**
|
||||
* 签署确认节点下人的角色限定规则
|
||||
* <p>
|
||||
* INITIATOR_SPECIFIED("INITIATOR_SPECIFIED", "发起人自选"),
|
||||
* LEADER("LEADER", "负责人"),
|
||||
*/
|
||||
@ApiModelProperty(value = "签署确认节点下人的角色限定规则")
|
||||
private SignApproverRoleLimitEnum roleLimit;
|
||||
}
|
||||
@ -1,40 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BpmnSignType;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程定义中的签署配置
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-25 16:56
|
||||
*/
|
||||
@ApiModel("JSON 版本的 BPMN 协议模型中的签署管理")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class BpmnSignConf implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -6015492451455020117L;
|
||||
|
||||
/**
|
||||
* 签署方式
|
||||
* <p>
|
||||
* SINGLE("SINGLE", "指定人群,所有人共同签署一份文件"),
|
||||
* MULTI("MULTI", "指定人群,每人签署一份文件"),
|
||||
*/
|
||||
@ApiModelProperty(value = "签署方式")
|
||||
private BpmnSignType signType;
|
||||
|
||||
/**
|
||||
* 签署业务待办模板
|
||||
*/
|
||||
@ApiModelProperty(value = "签署业务待办模板")
|
||||
private BpmnSignPendingProperty signPendingProperty;
|
||||
}
|
||||
@ -1,37 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* JSON 版本的 BPMN 协议模型中的签署的待办
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-25 17:09
|
||||
*/
|
||||
@ApiModel("JSON 版本的 BPMN 协议模型中的签署的待办")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class BpmnSignPendingProperty implements Serializable {
|
||||
private static final long serialVersionUID = -6015492451455020117L;
|
||||
|
||||
/**
|
||||
* 待办消息模板 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "待办消息模板 ID")
|
||||
@NotBlank(message = "待办消息模板 ID 不能为空")
|
||||
private String pendingMessageId;
|
||||
|
||||
/**
|
||||
* 用于前端回显数据, 服务端不解析
|
||||
*/
|
||||
@ApiModelProperty(value = "用于前端回显数据, 服务端不解析")
|
||||
private String viewJson;
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn;
|
||||
|
||||
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
|
||||
import cn.axzo.workflow.common.enums.SignApproverOrgLimitEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* JSON 版本的 BPMN 协议模型中的提级审批配置模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-06-20 11:32
|
||||
*/
|
||||
@ApiModel("JSON 版本的 BPMN 协议模型中的提级审批配置模型")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class BpmnUpgradeApprovalConf implements Serializable {
|
||||
private static final long serialVersionUID = 36282987684860776L;
|
||||
|
||||
/**
|
||||
* 是否已开启
|
||||
*/
|
||||
private Boolean enabled;
|
||||
|
||||
/**
|
||||
* 提级审批的审批人层级范围限制
|
||||
*/
|
||||
private SignApproverOrgLimitEnum orgLimit;
|
||||
|
||||
/**
|
||||
* 提级审批的审批人指定方式
|
||||
*/
|
||||
private ApproverSpecifyEnum approverSpecify;
|
||||
|
||||
/**
|
||||
* 提级审批的审批人指定具体值
|
||||
*/
|
||||
private String specifyValue;
|
||||
|
||||
}
|
||||
@ -47,12 +47,6 @@ public class BpmnProcessDefinitionUpdateDTO {
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 表单 KEY
|
||||
*/
|
||||
@ApiModelProperty(value = "表单 KEY")
|
||||
private String formKey;
|
||||
|
||||
/**
|
||||
* 模型定义内容
|
||||
*/
|
||||
|
||||
@ -1,57 +0,0 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.log;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 用于查询审批日志的人的模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-07-07 19:40
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class LogApproveSearchDTO {
|
||||
|
||||
@ApiModelProperty("流程实例 ID")
|
||||
@NotBlank(message = "流程实例 ID 不能为空")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 审批任务 ID,如果有值,优先使用 taskId 查询
|
||||
* <p>
|
||||
* 如果没有值,则 personId、tenantId、ouId 一定不能为 null
|
||||
*/
|
||||
@ApiModelProperty("审批任务 ID")
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 如果没传 taskId,那么该属性必有值
|
||||
*/
|
||||
@ApiModelProperty("审批人 PersonId")
|
||||
private String personId;
|
||||
|
||||
/**
|
||||
* 如果没传 taskId,那么该属性必有值
|
||||
*/
|
||||
@ApiModelProperty("审批人 tenantId")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 如果没传 taskId,那么该属性应该有值,如果是“工人”可以没有值
|
||||
*/
|
||||
@ApiModelProperty("审批人 ouId")
|
||||
private String ouId;
|
||||
|
||||
@ApiModelProperty("指定状态,如果为空,默认指定审批中状态的数据")
|
||||
private BpmnProcessInstanceResultEnum status;
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user