Merge branch '1.5.2-SNAPSHOT'
This commit is contained in:
commit
3a8e82d203
3
.gitignore
vendored
3
.gitignore
vendored
@ -38,4 +38,5 @@ application-local.yml
|
||||
*.log
|
||||
|
||||
rebel.xml
|
||||
.flattened-pom.xml
|
||||
.flattened-pom.xml
|
||||
.DS_Store
|
||||
19
pom.xml
19
pom.xml
@ -16,7 +16,7 @@
|
||||
<name>Workflow Engine</name>
|
||||
|
||||
<properties>
|
||||
<revision>1.5.1-SNAPSHOT</revision>
|
||||
<revision>1.5.2-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>
|
||||
@ -30,6 +30,7 @@
|
||||
<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>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@ -48,6 +49,12 @@
|
||||
<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>
|
||||
@ -161,6 +168,16 @@
|
||||
<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>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
|
||||
@ -13,7 +13,6 @@ import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.FileSystem;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
@ -84,7 +83,7 @@ public class WorkflowEngineClientAutoConfiguration {
|
||||
Map<String, String> env = new HashMap<>();
|
||||
env.put("create", "true");
|
||||
try {
|
||||
FileSystem zipfs = FileSystems.newFileSystem(location.toURI(), env);
|
||||
FileSystems.newFileSystem(location.toURI(), env);
|
||||
} catch (Exception e1) {
|
||||
log.error("linux env create new FS error: {}", e1.getMessage());
|
||||
}
|
||||
@ -102,7 +101,7 @@ public class WorkflowEngineClientAutoConfiguration {
|
||||
Map<String, String> env = new HashMap<>();
|
||||
env.put("create", "true");
|
||||
try {
|
||||
FileSystem zipfs = FileSystems.newFileSystem(location.toURI(), env);
|
||||
FileSystems.newFileSystem(location.toURI(), env);
|
||||
} catch (Exception e) {
|
||||
log.error("linux env create new FS error: {}", e.getMessage());
|
||||
}
|
||||
|
||||
@ -24,6 +24,7 @@ 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
|
||||
|
||||
@ -3,7 +3,6 @@ package cn.axzo.workflow.client.feign.bpmn;
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.enums.RpcInvokeModeEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.activity.BpmnActivityTimeoutCallbackDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.activity.BpmnActivityTimeoutTriggerDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnActivitySetAssigneeDTO;
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package cn.axzo.workflow.client.feign.bpmn;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO;
|
||||
@ -10,7 +9,6 @@ import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessDefinitionP
|
||||
import cn.axzo.workflow.common.model.response.BpmPageResult;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
@ -20,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID;
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
|
||||
/**
|
||||
@ -81,7 +80,8 @@ public interface ProcessDefinitionApi {
|
||||
*/
|
||||
@GetMapping("/api/process/definition/active/getByKey")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<BpmnProcessDefinitionVO> getActiveProcessDefinitionByKey(@NotBlank(message = "模型定义KEY不能为空") @RequestParam String key);
|
||||
CommonResponse<BpmnProcessDefinitionVO> getActiveProcessDefinitionByKey(@NotBlank(message = "模型定义KEY不能为空") @RequestParam String key,
|
||||
@RequestParam(required = false, defaultValue = NO_TENANT_ID) String tenantId);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@ -3,23 +3,34 @@ 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.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.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.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;
|
||||
@ -48,6 +59,18 @@ 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);
|
||||
|
||||
/**
|
||||
* 创建审批流程
|
||||
*
|
||||
@ -80,6 +103,10 @@ public interface ProcessInstanceApi {
|
||||
@DeleteMapping("/api/process/instance/cancel")
|
||||
CommonResponse<Boolean> cancelProcessInstance(@Validated @RequestBody BpmnProcessInstanceCancelDTO dto);
|
||||
|
||||
@DeleteMapping("/api/process/instance/super/cancel")
|
||||
@Manageable
|
||||
CommonResponse<Boolean> superCancelProcessInstance(@Validated @RequestBody SuperBpmnProcessInstanceCancelDTO dto);
|
||||
|
||||
/**
|
||||
* 中止流程实例
|
||||
*
|
||||
@ -222,7 +249,7 @@ public interface ProcessInstanceApi {
|
||||
CommonResponse<List<String>> getTenantIds();
|
||||
|
||||
/**
|
||||
* 校验指定流程实例下,是否存在指定的审批人
|
||||
* 校验指定流程实例下,是否存在指定的审批人正处理待审批
|
||||
*
|
||||
* @return true 是在当前流程实例中,存在指定的审批人
|
||||
*/
|
||||
@ -242,4 +269,64 @@ 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);
|
||||
}
|
||||
|
||||
@ -6,9 +6,23 @@ 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.PrintTemplateConfigUpsertDTO;
|
||||
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.validation.annotation.Validated;
|
||||
@ -168,8 +182,23 @@ public interface ProcessModelApi {
|
||||
@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);
|
||||
@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);
|
||||
|
||||
/**
|
||||
* 查询流程模型使用的分类列表
|
||||
@ -190,4 +219,174 @@ 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/upsert")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Void> printTemplateConfig(@Validated @RequestBody PrintTemplateConfigUpsertDTO dto);
|
||||
|
||||
/**
|
||||
* 获取打印模板配置内容
|
||||
*
|
||||
* @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,25 +3,10 @@ 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.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.BpmnTaskTransferDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.*;
|
||||
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.task.BpmnHistoricTaskInstanceGroupVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnHistoricTaskInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskTodoPageItemVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.*;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -104,6 +89,15 @@ public interface ProcessTaskApi {
|
||||
@PostMapping("/api/process/task/back")
|
||||
CommonResponse<Boolean> backTask(@Validated @RequestBody BpmnTaskBackAuditDTO dto);
|
||||
|
||||
/**
|
||||
* 用于系统内部操作,跳转到指定节点
|
||||
* @param dto 请求参数
|
||||
* @return 是否成功
|
||||
*/
|
||||
@Operation(summary = "系统操作回退任务到指定节点")
|
||||
@PostMapping("/api/process/task/system/back")
|
||||
CommonResponse<Boolean> systemBackTask(@Validated @RequestBody BpmnNodeBackSystemOperateDTO dto);
|
||||
|
||||
/**
|
||||
* 驳回
|
||||
*
|
||||
@ -284,4 +278,5 @@ 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,12 +1,10 @@
|
||||
package cn.axzo.workflow.client.feign.bpmn;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.RestBpmnProcessVariable;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
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.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
|
||||
@Manageable
|
||||
public interface PrintAdminApi {
|
||||
@Operation(summary = "查询指定审批流程是否能打印,打印开关是否开启,是否存在打印模板")
|
||||
@GetMapping("/api/print/admin/template/exists")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Boolean> hasPrintTemplate(@NotBlank(message = "流程实例不能为空") @RequestParam String processInstanceId);
|
||||
|
||||
@Operation(summary = "获取打印模板中可打印的字段")
|
||||
@PostMapping("/api/print/admin/fields")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<List<PrintFieldDTO>> getPrintFields(@Validated @RequestBody PrintFieldQueryDTO dto);
|
||||
|
||||
@Operation(summary = "获取指定流程下用于替换打印的相关变量")
|
||||
@GetMapping("/api/print/admin/field/variables")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<Map<String, Object>> getPrintFieldVariables(@NotBlank(message = "流程实例不能为空") @RequestParam String processInstanceId);
|
||||
}
|
||||
@ -1,31 +1,20 @@
|
||||
package cn.axzo.workflow.client.feign.manage;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.category.CategoryConfigCreateDTO;
|
||||
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.request.category.*;
|
||||
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.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 org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
|
||||
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.*;
|
||||
|
||||
|
||||
/**
|
||||
@ -177,4 +166,21 @@ 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,12 +1,10 @@
|
||||
package cn.axzo.workflow.client.feign.manage;
|
||||
|
||||
import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient;
|
||||
import cn.axzo.workflow.client.config.CommonFeignConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonMetaInfo;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -4,7 +4,6 @@ import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
|
||||
import cn.axzo.workflow.common.enums.AdminDataSource;
|
||||
import cn.axzo.workflow.common.enums.AdminRoleType;
|
||||
import cn.axzo.workflow.common.enums.AdminTypeEnum;
|
||||
import cn.axzo.workflow.common.enums.WorkspaceType;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@ -26,8 +26,12 @@ public enum BpmnInstanceRespCode implements IModuleRespCode {
|
||||
PROCESS_INSTANCE_CANT_START("011", "流程实例不能启动"),
|
||||
TASK_CANT_COMMENT_INSTANCE_NOT_EXISTS("012", "流程实例【{}】不存在, 不能评论"),
|
||||
RUNNING_INSTANCE_ONLY_FORECAST("013", "仅运行中的实例可以推测"),
|
||||
ENGINE_EXEC_EXCEPTION("014", "引擎内部异常"),
|
||||
ENGINE_EXEC_EXCEPTION("014", "引擎内部异常:【{}】"),
|
||||
PROCESS_TASK_NOT_EXISTS("015", "流程任务不存在或已处理"),
|
||||
PROCESS_DOC_READ_PARAM_ERROR("016", "查询审批人阅读状态参数丢失自然人 ID 数据"),
|
||||
PROCESS_DOC_ID_NOT_IN_MODEL("017", "当前流程中,不存在指定文档"),
|
||||
PROCESS_SIGN_DATA_NOT_EXISTS("018", "签署业务审批未获取到初始模板复制数据"),
|
||||
PROCESS_INSTANCE_CANT_REMIND("019", "流程实例【{}】不存在, 不能评论"),
|
||||
;
|
||||
private final String code;
|
||||
private final String message;
|
||||
|
||||
@ -18,7 +18,16 @@ public enum BpmnModelRespCode implements IModuleRespCode {
|
||||
MODEL_KEY_NOT_EXISTS("003", "流程模型KEY【{}】不存在"),
|
||||
MODEL_NOT_EXISTS("004", "流程模型不存在"),
|
||||
BPMN_BYTES_NOT_EXISTS("005", "模型定义内容字节码不存在"),
|
||||
MODEL_IS_DISABLE("006", "模型已经被停用")
|
||||
MODEL_IS_DISABLE("006", "模型已经被停用"),
|
||||
MODEL_FILE_TAG_DUPLICATE("007", "模型关联的文档业务标签重复"),
|
||||
MODEL_FILE_TAG_EXISTS("008", "模型关联的文档业务标签已存在"),
|
||||
MODEL_FILE_NOT_EXISTS("009", "模型关联的文档不存在或已被删除"),
|
||||
MODEL_FILE_CLONE_ERROR("010", "克隆文档失败, 原因:【{}】"),
|
||||
MODEL_FILE_TYPE_CLONE_NOT_SUPPORT("011", "不支持的文档类型克隆"),
|
||||
MODEL_FILE_CONTENT_DATA_ERROR("012", "文档内容数据异常"),
|
||||
MODEL_FILE_QUERY_ERROR("013", "文档搜索参数实例 ID 和业务 ID 不能同时为空"),
|
||||
MODEL_FILE_HIPRINT_ID_INVAILD("014", "查询HiPrint文档主键参数非法"),
|
||||
MODEL_FILE_REPLACE_CONTENT_ERROR("015", "替换文档变量失败,原因:【{}】"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
|
||||
@ -22,7 +22,8 @@ public enum BpmnProcessDefinitionRespCode implements IModuleRespCode {
|
||||
PROCESS_DEFINITION_KEY_NOT_MATCH("007", "流程定义的标识不一致, 请修改 BPMN 流程图"),
|
||||
PROCESS_DEFINITION_NAME_NOT_MATCH("008", "流程定义的名字期望是({}),当前是({}),请修改 BPMN 流程图"),
|
||||
PROCESS_DEFINITION_HAS_DIRTY_DATA("009", "流程定义KEY【{}】存在脏数据,当前模型没有流程定义内容"),
|
||||
PROCESS_DEFINITION_IS_INVALID("010", "暂时无法发起,请先配置流程模型")
|
||||
PROCESS_DEFINITION_IS_INVALID("010", "暂时无法发起,请先配置流程模型"),
|
||||
PROCESS_DEFINITION_ID_ILLEGAL("011", "流程定义 ID 数据不合法")
|
||||
;
|
||||
private final String code;
|
||||
private final String message;
|
||||
|
||||
@ -41,6 +41,7 @@ public enum BpmnTaskRespCode implements IModuleRespCode {
|
||||
BACK_NODE_CANNOT_REACHABLE("024", "退回节点【{}】不可达,不允许退回"),
|
||||
REACHED_BACKED_MAXIMUM_NUM("025", "达到回退操作次数上限【{}】次"),
|
||||
TRANSFER_TO_SELF("026", "任务不能转交给自己"),
|
||||
REMIND_TASK_TOO_MANY("027", "催办任务数据异常")
|
||||
;
|
||||
|
||||
private final String code;
|
||||
|
||||
@ -16,6 +16,13 @@ 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;
|
||||
|
||||
@ -13,7 +13,7 @@ import lombok.Getter;
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum FormModelRespCode implements IModuleRespCode {
|
||||
FORM_MODEL_NOT_EXISTS("001", "表单模型不存在"),
|
||||
FORM_MODEL_NOT_EXISTS("001", "表单模型不存在,请检查审批模板的字段管理Tab页"),
|
||||
FORM_MODEL_ID_NOT_EXISTS("002", "表单模型ID【{}】不存在"),
|
||||
FORM_MODEL_EXISTS("003", "表单模型已存在"),
|
||||
;
|
||||
|
||||
@ -19,7 +19,9 @@ public enum OtherRespCode implements IModuleRespCode {
|
||||
CLIENT_VERSION_SUPPORT("004", "客户端 JAR 包版本不支持,请升级到 {} 版本, 当前版本 {}"),
|
||||
MICRO_SERVER_NEED_REBUILD("005", "微服务 {} 需要重新编译发布, 如果是本地调用,请访问 WebApi 接口,在现有的接口地址前加上“web/v1/”即可"),
|
||||
MESSAGE_PUSH_EVENT_BUILD_ERROR("006", "不能使用 createEvent 函数创建`发送待办`的事件, 请调用 createPendingPushEvent 函数"),
|
||||
ASYNC_JOB_EXECUTION_ERROR("007", "获取指定实例 ID【{}】的锁失败")
|
||||
ASYNC_JOB_EXECUTION_ERROR("007", "获取指定实例 ID【{}】的锁失败"),
|
||||
ILLEGAL_PARAM_ERROR("008", "非法的参数:【{}】"),
|
||||
MESSAGE_IM_EVENT_BUILD_ERROR("009", "不能使用 createEvent 函数创建`IM 消息`的事件, 请调用 createIMEvent 函数"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
|
||||
@ -9,6 +9,7 @@ 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_]";
|
||||
@ -33,6 +34,7 @@ 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_]";
|
||||
// 单任务节点,
|
||||
@ -41,6 +43,8 @@ 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";
|
||||
@ -54,12 +58,14 @@ 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 CONFIG_SIGN = "signConfig";
|
||||
String CONFIG_NOTICE = "noticeConfig";
|
||||
String CONFIG_APPROVE = "approveConfig";
|
||||
String TEMPLATE_NOTICE_MESSAGE_CONFIG = "noticeMessageConfig";
|
||||
@ -71,6 +77,7 @@ 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 APPROVE_SUPPORT_BATCH_OPERATION = "supportBatchOperation";
|
||||
@ -84,10 +91,14 @@ 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_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";
|
||||
@ -96,6 +107,7 @@ 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 ELEMENT_ATTRIBUTE_NAME = "name";
|
||||
String ELEMENT_ATTRIBUTE_VALUE = "value";
|
||||
String ELEMENT_ATTRIBUTE_DESC = "desc";
|
||||
@ -112,6 +124,7 @@ 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>
|
||||
@ -199,4 +212,28 @@ 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_]";
|
||||
}
|
||||
|
||||
@ -17,4 +17,13 @@ public interface FormConstants {
|
||||
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";
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
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,4 +25,40 @@ 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 = "电子签名";
|
||||
}
|
||||
|
||||
@ -13,9 +13,12 @@ public enum ApprovalMethodEnum {
|
||||
|
||||
human("human", "人工审批", ""),
|
||||
autoPassed("autoPassed", "自动通过", "[仅审批节点可能选该值]"),
|
||||
autoPassed_empty("autoPassed", "自动通过", "该枚举仅日志处理使用"),
|
||||
autoRejection("autoRejection", "自动驳回", "[仅审批节点可能选该值]"),
|
||||
autoRejection_empty("autoRejection", "自动驳回", "该枚举仅日志处理使用"),
|
||||
nobody("nobody", "不设置审批人", "[仅业务节点可能有该值]"),
|
||||
bizSpecify("bizSpecify", "业务指定审批人", "[仅业务节点可能有该值]"),
|
||||
transferToAdmin("transferToAdmin", "转办给管理员", "该枚举仅日志处理使用"),
|
||||
;
|
||||
|
||||
private String type;
|
||||
|
||||
@ -15,6 +15,9 @@ public enum ApproverSpecifyEnum {
|
||||
initiatorLeaderRecursion("initiatorLeaderRecursion", "发起人多级主管"),
|
||||
fixedPerson("fixedPerson", "固定人员"),
|
||||
preNodeSpecified("preNodeSpecified", "上级节点指定"),
|
||||
initiatorSpecified("initiatorSpecified", "发起时指定"),
|
||||
// 该枚举,目前主要为了区别签署业务与审批业务的不同配法,选择该项时,意味着该节点是由二方后端自由消费 BpmnSignApproverLimit 配置
|
||||
signerRelated("signerRelated", "签署人相关组织"),
|
||||
;
|
||||
private String type;
|
||||
private String desc;
|
||||
|
||||
@ -1,6 +1,13 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
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
|
||||
*
|
||||
@ -11,39 +18,51 @@ public enum BpmnButtonEnum {
|
||||
/**
|
||||
* 同意按钮
|
||||
*/
|
||||
BPMN_APPROVE(1, "BPMN_APPROVE", "同意"),
|
||||
BPMN_APPROVE(1, "BPMN_APPROVE", "同意", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 驳回按钮
|
||||
*/
|
||||
BPMN_REJECT(2, "BPMN_REJECT", "驳回"),
|
||||
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_REVOCATION(3, "BPMN_REVOCATION", "撤回"),
|
||||
BPMN_REVOCATION(5, "BPMN_REVOCATION", "撤回", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 转交按钮
|
||||
*/
|
||||
BPMN_TRANSFER(4, "BPMN_TRANSFER", "转交"),
|
||||
BPMN_TRANSFER(6, "BPMN_TRANSFER", "转交", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 加签按钮
|
||||
*/
|
||||
BPMN_COUNTERSIGN(5, "BPMN_COUNTERSIGN", "加签"),
|
||||
BPMN_COUNTERSIGN(7, "BPMN_COUNTERSIGN", "加签", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 评论按钮
|
||||
*/
|
||||
BPMN_COMMENT(6, "BPMN_COMMENT", "评论"),
|
||||
BPMN_COMMENT(8, "BPMN_COMMENT", "评论", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 回退按钮
|
||||
*/
|
||||
BPMN_ROLLBACK(7, "BPMN_ROLLBACK", "回退"),
|
||||
BPMN_ROLLBACK(9, "BPMN_ROLLBACK", "回退", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 抄送按钮
|
||||
*/
|
||||
BPMN_COPY(8, "BPMN_COPY", "抄送"),
|
||||
BPMN_COPY(10, "BPMN_COPY", "抄送", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 催办按钮
|
||||
*/
|
||||
BPMN_REMIND(11, "BPMN_REMIND", "催办", Lists.newArrayList(APPROVAL, SIGN)),
|
||||
/**
|
||||
* 管理员转交按钮
|
||||
*/
|
||||
BPMN_ADMIN_TRANSFER(9, "BPMN_ADMIN_TRANSFER", "管理员转交");
|
||||
BPMN_ADMIN_TRANSFER(90, "BPMN_ADMIN_TRANSFER", "管理员转交", Lists.newArrayList());
|
||||
|
||||
|
||||
public int getOrder() {
|
||||
@ -58,15 +77,21 @@ public enum BpmnButtonEnum {
|
||||
return btnName;
|
||||
}
|
||||
|
||||
public List<BusinessTypeEnum> getSupportBizType() {
|
||||
return supportBizType;
|
||||
}
|
||||
|
||||
private final int order;
|
||||
private final String btnKey;
|
||||
private final String btnName;
|
||||
private final List<BusinessTypeEnum> supportBizType;
|
||||
|
||||
|
||||
BpmnButtonEnum(int order, String btnKey, String btnName) {
|
||||
BpmnButtonEnum(int order, String btnKey, String btnName, List<BusinessTypeEnum> supportBizType) {
|
||||
this.order = order;
|
||||
this.btnKey = btnKey;
|
||||
this.btnName = btnName;
|
||||
this.supportBizType = supportBizType;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ 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", "机器人节点"),
|
||||
|
||||
@ -44,7 +44,7 @@ public enum BpmnProcessInstanceResultEnum {
|
||||
* @param result 结果
|
||||
* @return 是否
|
||||
*/
|
||||
public static boolean isEndResult(Integer result) {
|
||||
public static boolean isEndResult(String result) {
|
||||
return Arrays.asList(PROCESSING.getStatus(), APPROVED.getStatus(), REJECTED.getStatus(),
|
||||
CANCELLED.getStatus()).contains(result);
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum BpmnProcessTaskResultEnum {
|
||||
PENDING("PENDING", "待处理"),
|
||||
APPROVED("APPROVED", "已同意"),
|
||||
REJECTED("REJECTED", "已驳回"),
|
||||
DELETED("DELETED", "已删除"),
|
||||
CANCELED("CANCELED", "已撤销"),
|
||||
TRANSFERRED("TRANSFERRED", "已转交"),
|
||||
NONE("NONE", "没有执行动作,例如 抄送"),
|
||||
;
|
||||
/**
|
||||
* 结果
|
||||
*/
|
||||
private final String status;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String desc;
|
||||
|
||||
BpmnProcessTaskResultEnum(String status, String desc) {
|
||||
this.status = status;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 签署方式
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-25 17:00
|
||||
*/
|
||||
public enum BpmnSignType {
|
||||
|
||||
SINGLE("SINGLE", "指定人群,所有人共同签署一份文件"),
|
||||
MULTI("MULTI", "指定人群,每人签署一份文件"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
BpmnSignType(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public static BpmnSignType valueOfType(String type) {
|
||||
return Arrays.stream(BpmnSignType.values())
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
public enum BusinessTypeEnum {
|
||||
|
||||
SIGN("sign", "签署业务"),
|
||||
|
||||
APPROVAL("approval", "审批业务");
|
||||
|
||||
private String type;
|
||||
private String desc;
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum ButtonVisibleScopeEnum {
|
||||
|
||||
INITIATOR("INITIATOR", "发起人"),
|
||||
|
||||
EXECUTOR("EXECUTOR", "当前操作人"),
|
||||
;
|
||||
|
||||
/**
|
||||
* 结果
|
||||
*/
|
||||
private final String status;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String desc;
|
||||
|
||||
ButtonVisibleScopeEnum(String status, String desc) {
|
||||
this.status = status;
|
||||
this.desc = desc;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
/**
|
||||
* 模型扩展表的状态枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-15 09:46
|
||||
*/
|
||||
public enum ExtModelStateFieldEnum {
|
||||
status, printStatus
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 文档类型枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-27 09:55
|
||||
*/
|
||||
public enum FileTypeEnum {
|
||||
WORD("word", "文本", ".docx"),
|
||||
EXCEL("excel", "表格", ".xlsx"),
|
||||
HIPRINT("hiprint", "智能文档", ""),
|
||||
PDF("pdf", "PDF", ".pdf"),
|
||||
;
|
||||
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 String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public String getSuffix() {
|
||||
return suffix;
|
||||
}
|
||||
|
||||
public static FileTypeEnum valueOfType(String type) {
|
||||
return Arrays.stream(FileTypeEnum.values())
|
||||
.filter(i -> Objects.equals(i.getType().toUpperCase(), type.toUpperCase()))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 模型业务类型枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-26 11:49
|
||||
*/
|
||||
public enum ModelBizTypeEnum {
|
||||
|
||||
SIGN("SIGN", "签署业务"),
|
||||
FLOWABLE("FLOWABLE", "审批业务"),
|
||||
;
|
||||
private final String type;
|
||||
private final String desc;
|
||||
|
||||
ModelBizTypeEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public static ModelBizTypeEnum valueOfType(String type) {
|
||||
return Arrays.stream(ModelBizTypeEnum.values())
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
/**
|
||||
* 顺序操作枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-31 16:35
|
||||
*/
|
||||
public enum OrderEnum {
|
||||
|
||||
UP, DOWN
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
/**
|
||||
* 打印字段的类型枚举
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-16 18:19
|
||||
*/
|
||||
public enum PrintFieldCategoryEnum {
|
||||
|
||||
// 表单变量
|
||||
form,
|
||||
// 流程内系统变量
|
||||
system,
|
||||
// 电子签名变量
|
||||
signature,
|
||||
// 签署业务自定义变量
|
||||
sign
|
||||
}
|
||||
@ -17,6 +17,7 @@ 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,6 +2,9 @@ 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 事件枚举定义
|
||||
*
|
||||
@ -12,6 +15,8 @@ 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", "流程任务已删除"),
|
||||
;
|
||||
@ -45,4 +50,5 @@ public enum ProcessTaskEventEnum {
|
||||
public Event.EventCode getEventCode() {
|
||||
return eventCode;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 签署确认节点的审批人层级范围限制
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-26 14:30
|
||||
*/
|
||||
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),
|
||||
;
|
||||
|
||||
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 String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public static SignApproverOrgLimitEnum valueOfType(String type) {
|
||||
return Arrays.stream(SignApproverOrgLimitEnum.values())
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 签署确认节点的审批人层级范围限制
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-26 14:30
|
||||
*/
|
||||
public enum SignApproverRoleLimitEnum {
|
||||
LEADER("LEADER", "负责人"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
|
||||
private final String desc;
|
||||
|
||||
SignApproverRoleLimitEnum(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public static SignApproverRoleLimitEnum valueOfType(String type) {
|
||||
return Arrays.stream(SignApproverRoleLimitEnum.values())
|
||||
.filter(i -> Objects.equals(i.getType(), type))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 模版上变量字段类型
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
public enum VarTypeEnum {
|
||||
|
||||
TEXT("text", "文本"),
|
||||
|
||||
PICTURE("picture", "图片");
|
||||
|
||||
private String type;
|
||||
private String desc;
|
||||
}
|
||||
@ -19,6 +19,11 @@ public class WorkflowEngineException extends ServiceException {
|
||||
this.code = code.getRespCode();
|
||||
}
|
||||
|
||||
public WorkflowEngineException(IRespCode code, Throwable cause, String... params) {
|
||||
super(doFormat(code.getCode(), code.getMessage(), params), cause);
|
||||
this.code = code.getRespCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
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;
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
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;
|
||||
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 通讯录组件返回的人员信息模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-05-15 14:04
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
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;
|
||||
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
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;
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
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;
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
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 activityId;
|
||||
private String timeCycle;
|
||||
}
|
||||
@ -1,10 +1,12 @@
|
||||
package cn.axzo.workflow.common.model.dto;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 上传附件字段类型
|
||||
*
|
||||
@ -14,9 +16,10 @@ import lombok.NoArgsConstructor;
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Deprecated // 这个类型不应该产生,建议后面迭代替换为 AttachmentDTO
|
||||
public class UploadFieldDTO {
|
||||
@Builder
|
||||
public class UploadFieldDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -1L;
|
||||
/**
|
||||
* 文件名称
|
||||
*/
|
||||
@ -25,24 +28,11 @@ public class UploadFieldDTO {
|
||||
/**
|
||||
* 文件类型
|
||||
*/
|
||||
private String fileType;
|
||||
private String fileUrl;
|
||||
|
||||
/**
|
||||
* 文件 oss 的 key
|
||||
*/
|
||||
private String fileKey;
|
||||
|
||||
public String toString() {
|
||||
return JSON.toJSONString(this);
|
||||
}
|
||||
|
||||
public String toSpecString() {
|
||||
return this.toString().replaceAll(",", "|");
|
||||
}
|
||||
|
||||
public static UploadFieldDTO toObject(String str) {
|
||||
str = str.trim().replaceAll("\\|",",");
|
||||
return JSON.parseObject(str, UploadFieldDTO.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
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,6 +68,7 @@ public class HistoricProcessInstanceSearchForEsDTO {
|
||||
* <p>
|
||||
* 默认是查询开始时间之后
|
||||
*/
|
||||
@Builder.Default
|
||||
private TimeQueryDirection startTimeDirection = TimeQueryDirection.AFTER;
|
||||
|
||||
/**
|
||||
@ -80,16 +81,19 @@ public class HistoricProcessInstanceSearchForEsDTO {
|
||||
* <p>
|
||||
* 默认是查询结束时间点之前
|
||||
*/
|
||||
@Builder.Default
|
||||
private TimeQueryDirection endTimeDirection = TimeQueryDirection.BEFORE;
|
||||
|
||||
/**
|
||||
* 是否包含流程变量
|
||||
*/
|
||||
@Builder.Default
|
||||
private Boolean hasVariables = false;
|
||||
|
||||
/**
|
||||
* 用于覆盖同步逻辑中的PageSize,一般不需要传
|
||||
*/
|
||||
@Builder.Default
|
||||
private Integer overPageSize = 50;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
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;
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
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,6 +10,7 @@ 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")
|
||||
|
||||
@ -1,9 +1,12 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* 按钮元数据
|
||||
@ -15,6 +18,11 @@ import java.io.Serializable;
|
||||
@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;
|
||||
|
||||
/**
|
||||
* 按钮顺序
|
||||
*/
|
||||
@ -45,4 +53,9 @@ public class BpmnButtonMetaInfo implements Serializable {
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 按钮支持的业务类型
|
||||
*/
|
||||
private List<BusinessTypeEnum> supportBizType = new ArrayList<>();
|
||||
|
||||
}
|
||||
|
||||
@ -27,6 +27,11 @@ public class BpmnJsonModel implements Serializable {
|
||||
@ApiModelProperty(value = "流程的 Json 结构")
|
||||
private BpmnJsonNode node;
|
||||
|
||||
/**
|
||||
* 签署配置, 可为空,只有签署业务才有该配置
|
||||
*/
|
||||
@ApiModelProperty(value = "签署配置")
|
||||
private BpmnSignConf signConf;
|
||||
/**
|
||||
* 通知管理配置
|
||||
*/
|
||||
|
||||
@ -45,13 +45,19 @@ public class BpmnJsonNodeProperty {
|
||||
//************* 审批人指定Start **************//
|
||||
/**
|
||||
* 审批人指定: position(指定岗位), role(指定角色), identity(指定身份), initiatorLeader(发起人主管), initiatorLeaderRecursion(发起人多级主管),
|
||||
* fixedPerson(固定人员)
|
||||
* fixedPerson(固定人员) initiatorSpecified(发起人自选) signerRelated(签署人相关组织)
|
||||
*/
|
||||
@ApiModelProperty(value = "任务节点: 审批人指定", notes = "position: 指定岗位, role: 指定角色, identity: 指定身份, initiatorLeader: " +
|
||||
"发起人主管, initiatorLeaderRecursion: 发起人多级主管, fixedPerson: 固定人员")
|
||||
"发起人主管, initiatorLeaderRecursion: 发起人多级主管, fixedPerson: 固定人员, initiatorSpecified: 发起人自选, signerRelated: 签署人相关组织")
|
||||
@NotBlank(message = "审批人指定不能为空")
|
||||
private ApproverSpecifyEnum approverSpecify;
|
||||
|
||||
/**
|
||||
* 签署确认节点的审批人限定规则
|
||||
*/
|
||||
@ApiModelProperty(value = "签署确认节点的审批人限定规则")
|
||||
private BpmnSignApproverLimit signApproverLimit;
|
||||
|
||||
/**
|
||||
* 具体的配置值
|
||||
* <p>
|
||||
@ -94,6 +100,11 @@ public class BpmnJsonNodeProperty {
|
||||
private String emptyApproverSpecify;
|
||||
//************* 审批人为空时的策略End **************//
|
||||
|
||||
/**
|
||||
* 电子签名开关
|
||||
*/
|
||||
@ApiModelProperty(value = "电子签名")
|
||||
private Boolean signature;
|
||||
|
||||
/**
|
||||
* 按钮权限
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
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;
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
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;
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
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;
|
||||
}
|
||||
@ -20,6 +20,8 @@ import java.io.Serializable;
|
||||
@Accessors(chain = true)
|
||||
public class BpmnModelCreateDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1383240088010310865L;
|
||||
|
||||
@ApiModelProperty(value = "流程模型标识", example = "process_key", hidden = true)
|
||||
@Length(max = 255, message = "流程标识最长只支持255个字符")
|
||||
private String key;
|
||||
|
||||
@ -16,6 +16,8 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
public class BpmnModelUpdateDTO extends BpmnModelCreateDTO {
|
||||
|
||||
private static final long serialVersionUID = 3661214238064751897L;
|
||||
|
||||
@ApiModelProperty(value = "流程模型 ID", required = true)
|
||||
private String processModelId;
|
||||
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 获取文档
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-16 20:18
|
||||
*/
|
||||
@ApiModel("获取文档")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class DocByIdDTO {
|
||||
|
||||
private List<Long> ids;
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 克隆文档
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-18 11:30
|
||||
*/
|
||||
@ApiModel("克隆文档")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class DocCloneDTO {
|
||||
/**
|
||||
* 文档 ID
|
||||
*/
|
||||
private Long docId;
|
||||
/**
|
||||
* 克隆好的文档归属模型 ID
|
||||
*/
|
||||
private String targetModelId;
|
||||
/**
|
||||
* 克隆好的文档归属租户
|
||||
*/
|
||||
private String targetTenantId;
|
||||
|
||||
/**
|
||||
* 克隆好的文档的 tag
|
||||
*/
|
||||
private String targetFileTag;
|
||||
}
|
||||
@ -0,0 +1,121 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import cn.axzo.workflow.common.enums.FileTypeEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.io.Serializable;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID;
|
||||
|
||||
/**
|
||||
* 创建模型关联的文档
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-27 14:50
|
||||
*/
|
||||
@ApiModel("创建模型关联的文档")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class DocCreateDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 关联到的模型 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "文档被关联到的模型 ID")
|
||||
@NotBlank(message = "模型 ID 不能为空")
|
||||
private String modelId;
|
||||
|
||||
/**
|
||||
* 模型对应业务 KEY
|
||||
*/
|
||||
@ApiModelProperty(value = "模型对应的业务 ID")
|
||||
@NotBlank(message = "模型 KEY 不能为空")
|
||||
private String modelKey;
|
||||
/**
|
||||
* 文档关联ID
|
||||
* <p>
|
||||
* word/excel 对应 wps 的 Id,
|
||||
* hp 对应是content 表的主键(前端新建时不回传)
|
||||
* pdf 对应 oss 中的 fileKey
|
||||
*/
|
||||
@ApiModelProperty(value = "底层文件关联标识")
|
||||
private String fileRelationId;
|
||||
|
||||
/**
|
||||
* 文件名称
|
||||
*/
|
||||
@ApiModelProperty(value = "文件名称")
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 模板名称
|
||||
*/
|
||||
@ApiModelProperty(value = "模板名称")
|
||||
private String templateName;
|
||||
|
||||
/**
|
||||
* 自动归档位置(本期不实现)
|
||||
*/
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 文档类型
|
||||
* <p>
|
||||
* WORD("word", "文本"),
|
||||
* EXCEL("excel", "表格"),
|
||||
* HIPRINT("hiprint", "智能文档"),
|
||||
* PDF("pdf", "PDF"),
|
||||
*/
|
||||
@ApiModelProperty(value = "文件类型")
|
||||
private FileTypeEnum fileType;
|
||||
|
||||
/**
|
||||
* 业务标签
|
||||
*/
|
||||
@ApiModelProperty(value = "业务标签")
|
||||
private String tag;
|
||||
|
||||
/**
|
||||
* 启用状态
|
||||
*/
|
||||
@Builder.Default
|
||||
@ApiModelProperty(value = "启用状态")
|
||||
private Boolean status = true;
|
||||
|
||||
/**
|
||||
* 是否是临时文件
|
||||
*/
|
||||
@Builder.Default
|
||||
@ApiModelProperty(value = "是否是临时文件,默认 false")
|
||||
private Boolean tempFile = false;
|
||||
/**
|
||||
* 是否必选
|
||||
*/
|
||||
@Builder.Default
|
||||
@ApiModelProperty(value = "是否必选")
|
||||
private Boolean require = false;
|
||||
|
||||
/**
|
||||
* HiPrint文件类型,需要回传
|
||||
*/
|
||||
@ApiModelProperty(value = "HiPrint文件类型,需要回传,其他类型无视该字段")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 租户 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
@Builder.Default
|
||||
private String tenantId = NO_TENANT_ID;
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import cn.axzo.workflow.common.enums.OrderEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 模型关联的文档排序
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-31 16:32
|
||||
*/
|
||||
@ApiModel("模型关联的文档排序")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class DocOrderDTO implements Serializable {
|
||||
private static final long serialVersionUID = -4783444148609103421L;
|
||||
/**
|
||||
* 文档主键 ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 操作顺序
|
||||
*/
|
||||
private OrderEnum order;
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 流程关联文档搜索入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-31 09:46
|
||||
*/
|
||||
@ApiModel("流程关联文档搜索入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class DocQueryDTO {
|
||||
|
||||
/**
|
||||
* 流程实例 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "流程实例 ID")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 流程定义 KEY(业务 ID)
|
||||
*/
|
||||
@ApiModelProperty(value = "流程定义 KEY(业务 ID)")
|
||||
private String processDefinitionKey;
|
||||
|
||||
/**
|
||||
* 租户 ID,对应工作台 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "租户 ID,对应工作台 ID")
|
||||
private String tenantId;
|
||||
|
||||
@ApiModelProperty(value = "是否包含临时文档")
|
||||
@Builder.Default
|
||||
private Boolean tempFile = false;
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
@ApiModel("流程关联文档重置入参模型")
|
||||
@Data
|
||||
public class DocResetDTO {
|
||||
|
||||
/**
|
||||
* 业务 ID
|
||||
*/
|
||||
@NotBlank(message = "业务 ID 不能为空")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 代运营模型 ID
|
||||
*/
|
||||
@NotBlank(message = "模型 ID 不能为空")
|
||||
private String modelId;
|
||||
|
||||
/**
|
||||
* 代运营的单位或租户ID
|
||||
*/
|
||||
@NotBlank(message = "工作台 ID 不能为空")
|
||||
private String workspaceId;
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID;
|
||||
|
||||
/**
|
||||
* 流程关联文档搜索入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-31 09:46
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("流程关联文档搜索入参模型")
|
||||
@Data
|
||||
public class DocSearchDTO extends BpmPageParam {
|
||||
|
||||
private static final long serialVersionUID = -308388315001754954L;
|
||||
/**
|
||||
* 流程模型 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "模型 ID")
|
||||
private String modelId;
|
||||
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
private String tenantId = NO_TENANT_ID;
|
||||
|
||||
@ApiModelProperty(value = "是否包含临时文档")
|
||||
private Boolean tempFile = false;
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 流程关联文档状态变更入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-07 11:44
|
||||
*/
|
||||
@ApiModel("流程关联文档状态变更入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class DocStatusDTO {
|
||||
/**
|
||||
* 文档 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "文档 ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 状态 true 启用, false 停用
|
||||
*/
|
||||
private Boolean status;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 查询指定业务下设置过关联文档的代运营项目集合入参
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-10 17:57
|
||||
*/
|
||||
@ApiModel("查询指定业务下设置过关联文档的代运营项目集合入参")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class DocTenantQueryDTO {
|
||||
|
||||
/**
|
||||
* 业务ID
|
||||
*/
|
||||
@NotBlank(message = "业务 ID 不能为空")
|
||||
private String processDefinitionKey;
|
||||
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.model.doc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 创建模型关联的文档
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-03-27 14:50
|
||||
*/
|
||||
@ApiModel("创建模型关联的文档")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class DocUpdateDTO extends DocCreateDTO implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.print;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
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-01-16 17:42
|
||||
*/
|
||||
@ApiModel("获取指定打印模板可打印的字段集合的查询入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class PrintFieldQueryDTO {
|
||||
|
||||
/**
|
||||
* 模板定义 KEY
|
||||
*/
|
||||
@ApiModelProperty(value = "流程模板 KEY")
|
||||
@NotBlank(message = "流程模板 KEY 不能为空")
|
||||
private String processDefinitionKey;
|
||||
|
||||
/**
|
||||
* 租户 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 是否抛出内部异常
|
||||
*/
|
||||
@ApiModelProperty(value = "是否报错内部异常")
|
||||
@Builder.Default
|
||||
private Boolean throwException = true;
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.print;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_TENANT_ID;
|
||||
|
||||
/**
|
||||
* 获取打印模板配置内容入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-20 16:53
|
||||
*/
|
||||
@ApiModel("获取打印模板配置内容入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class PrintTemplateConfigQueryDTO {
|
||||
|
||||
/**
|
||||
* 审批模型 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "审批模型 ID")
|
||||
private String modelId;
|
||||
|
||||
/**
|
||||
* 流程实例 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "流程实例 ID")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 业务 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "业务 ID")
|
||||
private String processDefinitionKey;
|
||||
|
||||
/**
|
||||
* 租户 ID,配置 processDefinitionKey 使用
|
||||
*/
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
private String tenantId = NO_TENANT_ID;
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.print;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 打印模板配置内容入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-20 16:44
|
||||
*/
|
||||
@ApiModel("打印模板配置内容入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class PrintTemplateConfigUpsertDTO {
|
||||
|
||||
/**
|
||||
* 审批模型 ID
|
||||
*/
|
||||
@ApiModelProperty("审批模型 ID")
|
||||
private String modelId;
|
||||
|
||||
/**
|
||||
* 打印文件名称
|
||||
*/
|
||||
@ApiModelProperty(value = "打印文件名称")
|
||||
private String printFileName;
|
||||
|
||||
/**
|
||||
* 打印模板名称
|
||||
*/
|
||||
@ApiModelProperty(value = "打印模板名称")
|
||||
private String printTemplateName;
|
||||
|
||||
/**
|
||||
* 打印模板配置内容
|
||||
*/
|
||||
@ApiModelProperty(value = "打印模板配置内容")
|
||||
private String printTemplateConfig;
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.print;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
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-01-20 19:55
|
||||
*/
|
||||
@ApiModel("打印模板配置内容入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class RestPrintTemplateConfigDTO {
|
||||
|
||||
/**
|
||||
* 模板的定义 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "模板的定义 ID")
|
||||
@NotBlank(message = "模型定义 ID 不能为空")
|
||||
private String processDefinitionKey;
|
||||
|
||||
/**
|
||||
* 代运营模型 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "代运营模型 ID")
|
||||
@NotBlank(message = "代运营模板 ID不能为空")
|
||||
private String modelId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.process;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BpmnFlowNodeType;
|
||||
import cn.axzo.workflow.common.model.dto.CooperationOrgDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 创建审批流程前的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-15 10:21
|
||||
*/
|
||||
@ApiModel("创建流程实例前的入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class BeforeProcessInstanceCreateDTO {
|
||||
/**
|
||||
* 流程定义的标识
|
||||
* <p>
|
||||
* [对应 OMS 系统中审批业务的业务 ID]
|
||||
*/
|
||||
@ApiModelProperty(value = "业务 ID")
|
||||
@NotEmpty(message = "流程定义的标识不能为空")
|
||||
private String processDefinitionKey;
|
||||
|
||||
/**
|
||||
* 发起流程实例归属租户 ID
|
||||
* <p>
|
||||
* 为空时,默认是编辑公共流程模型, 如果是代运营创建,则必填
|
||||
* <h1 color=red>建议都传值,在安心筑中对应工作台 ID</h1>
|
||||
*/
|
||||
@ApiModelProperty(value = "发起的审批是属于哪个租户")
|
||||
@NotBlank(message = "工作台 ID 不能为空")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 组织关系
|
||||
* <p>
|
||||
* 用于流程引擎计算对应节点的审批人, 例如第一个审批节点配置的是劳务分包的岗位,第二个审批节点配置的专业分包的角色,
|
||||
* 那么, 组织关系就需要传入劳务分包的信息以及专业分包的信息,如果还有更多的审批节点配置,以此类推.
|
||||
* 同时,该属性还会用于计算抄送人,以及消息通知的目标接收人
|
||||
*/
|
||||
@ApiModelProperty(value = "组织关系")
|
||||
private CooperationOrgDTO cooperationOrg;
|
||||
|
||||
@ApiModelProperty(value = "发起人信息")
|
||||
@Valid
|
||||
private BpmnTaskDelegateAssigner initiator;
|
||||
|
||||
/**
|
||||
* 最后响应的结果中,过滤出需要的类型
|
||||
*/
|
||||
@ApiModelProperty(value = "流程节点过滤类型")
|
||||
private List<BpmnFlowNodeType> filter;
|
||||
}
|
||||
@ -98,5 +98,6 @@ public class BpmnProcessInstanceAbortDTO {
|
||||
* 是否异步执行
|
||||
*/
|
||||
@ApiModelProperty(value = "是否异步", notes = "异步时,只接收请求便返回数据")
|
||||
@Builder.Default
|
||||
private Boolean async = true;
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import cn.axzo.workflow.common.model.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.Date;
|
||||
@ -15,11 +16,13 @@ import java.util.List;
|
||||
* @author wangli
|
||||
* @since 06/03/2024 2:35 pm
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("用于超管查询所有的流程实例入参模型")
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
public class BpmnProcessInstanceAdminPageReqVO extends BpmPageParam {
|
||||
|
||||
private static final long serialVersionUID = 5051264217867881829L;
|
||||
/**
|
||||
* 流程实例 ID
|
||||
*/
|
||||
|
||||
@ -5,12 +5,13 @@ import cn.axzo.workflow.common.constraint.AttachmentValidator;
|
||||
import cn.axzo.workflow.common.enums.AttachmentTypeEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.AttachmentDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import cn.axzo.workflow.common.valid.group.ValidGroup;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
@ -28,21 +29,21 @@ import java.util.List;
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@SuperBuilder
|
||||
public class BpmnProcessInstanceCancelDTO {
|
||||
|
||||
/**
|
||||
* 流程实例的编号
|
||||
*/
|
||||
@ApiModelProperty(value = "流程实例编号", example = "11")
|
||||
@NotBlank(message = "流程实例编号不能为空")
|
||||
@NotBlank(message = "流程实例编号不能为空", groups = {ValidGroup.Insert.class, ValidGroup.Update.class})
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 工作台 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "工作台 ID")
|
||||
@NotBlank(message = "工作台不能为空")
|
||||
@NotBlank(message = "工作台不能为空", groups = ValidGroup.Insert.class)
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
@ -55,12 +56,12 @@ public class BpmnProcessInstanceCancelDTO {
|
||||
* 附件列表
|
||||
*/
|
||||
@ApiModelProperty(value = "附件列表")
|
||||
@Size(max = 11, message = "附件数量超过限制")
|
||||
@Size(max = 11, message = "附件数量超过限制", groups = {ValidGroup.Insert.class, ValidGroup.Update.class})
|
||||
@AttachmentValidator(types = {
|
||||
@AttachmentTypeValidator(type = AttachmentTypeEnum.image, max = 5),
|
||||
@AttachmentTypeValidator(type = AttachmentTypeEnum.file, max = 5),
|
||||
@AttachmentTypeValidator(type = AttachmentTypeEnum.signature, max = 1)}
|
||||
)
|
||||
, groups = {ValidGroup.Insert.class, ValidGroup.Update.class})
|
||||
private List<AttachmentDTO> attachmentList;
|
||||
|
||||
/**
|
||||
@ -75,7 +76,7 @@ public class BpmnProcessInstanceCancelDTO {
|
||||
*/
|
||||
@ApiModelProperty(value = "审批流程发起人信息")
|
||||
@Valid
|
||||
@NotNull(message = "审批流程的发起人不能为空")
|
||||
@NotNull(message = "审批流程的发起人不能为空", groups = {ValidGroup.Insert.class, ValidGroup.Update.class})
|
||||
private BpmnTaskDelegateAssigner initiator;
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.process;
|
||||
|
||||
import cn.axzo.workflow.common.constant.BpmnConstants;
|
||||
import cn.axzo.workflow.common.model.dto.CooperationOrgDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@ -14,6 +15,7 @@ import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -50,14 +52,28 @@ public class BpmnProcessInstanceCreateDTO extends BpmnProcessInstanceCreateWithF
|
||||
@NotBlank(message = "工作台 ID 不能为空")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 流程在发起时指定审批人
|
||||
*/
|
||||
@ApiModelProperty(value = "发起时指定节点的审批人")
|
||||
private Map</*节点标识*/String, List<BpmnTaskDelegateAssigner>> specifyAssignerMap;
|
||||
|
||||
/**
|
||||
* 流程实例关联的变量
|
||||
*/
|
||||
@Builder.Default
|
||||
private Map<String, Object> variables = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 业务管理中定义变量的入参
|
||||
*/
|
||||
@Builder.Default
|
||||
private Map<String, Object> bizCustomVariables = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 待办相关的变量,如路由参数, 模板参数等等
|
||||
*/
|
||||
@Builder.Default
|
||||
private Map<String, Object> pendingVariables = new HashMap<>();
|
||||
|
||||
/**
|
||||
@ -94,6 +110,19 @@ public class BpmnProcessInstanceCreateDTO extends BpmnProcessInstanceCreateWithF
|
||||
* 是否异步执行,该异步是引擎的一种运行模式
|
||||
*/
|
||||
@ApiModelProperty(value = "是否异步", notes = "异步时,只接收请求便返回数据")
|
||||
@Builder.Default
|
||||
private Boolean async = true;
|
||||
|
||||
/**
|
||||
* 签署业务,发起时,可基于模型启用的模板,再勾选使用本次发起时选择的文档标签
|
||||
*/
|
||||
@ApiModelProperty(value = "签署业务发起时,选择的文档")
|
||||
private List<Long> docIds;
|
||||
|
||||
/**
|
||||
* 仅针对签署业务,设置审批完成后的最终签署人列表,该属性仅为透传,业务消费时,请从 MQ 广播事件中的 variables 中通过 key= {@link BpmnConstants#SIGNATORIES } 获取
|
||||
*/
|
||||
@ApiModelProperty(value = "签署业务,最终签署人")
|
||||
private List<BpmnTaskDelegateAssigner> signatories;
|
||||
|
||||
}
|
||||
|
||||
@ -1,12 +1,10 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.process;
|
||||
|
||||
import cn.axzo.workflow.common.model.dto.UploadFieldDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -17,10 +15,23 @@ import java.util.Map;
|
||||
*/
|
||||
@ApiModel("创建工作流实例同时携带表单的入参模型")
|
||||
@Data
|
||||
public class BpmnProcessInstanceCreateWithFormDTO {
|
||||
public class BpmnProcessInstanceCreateWithFormDTO {
|
||||
|
||||
/**
|
||||
* 审批使用了表单,请一定注意传参
|
||||
* <p>
|
||||
* 图片类型和附件类型组件:请用 @see {@link UploadFieldDTO} 对象集合传入
|
||||
* <pre>
|
||||
* // form_image 为表单项的 key, value 为 UploadFileDTO 对象集合,如果前端使用了组件,一般建议回传所有属性;特殊情况下可以只传 fileUrl
|
||||
* "form_image": [{
|
||||
* "fileName": "",
|
||||
* "fileUrl": "http://gips2.baidu.com/it/u=195724436,3554684702&fm=3028&app=3028&f=JPEG&fmt=auto?w=1280&h=960",
|
||||
* "fileKey": 123
|
||||
* }]
|
||||
* </pre>
|
||||
*/
|
||||
@ApiModelProperty(value = "通过表单创建流程时传入的初始表单数据")
|
||||
private Map<String, Object> startFormVariables = new HashMap<>();
|
||||
private Map<String, Object> startFormVariables;
|
||||
/**
|
||||
* 工作流实例集成表单后,可以通过表单 key 组装成的变量存入该变量的值,可用于后续流程的流转
|
||||
* <p>
|
||||
|
||||
@ -44,6 +44,7 @@ public class BpmnProcessInstanceLogQueryDTO {
|
||||
* 返回结果中是否包含按钮
|
||||
*/
|
||||
@ApiModelProperty(value = "返回结果中是否包含按钮", notes = "如果访问者为空,该属性为 true 时,同样也不会返回按钮")
|
||||
@Builder.Default
|
||||
private Boolean hasButton = false;
|
||||
|
||||
/**
|
||||
|
||||
@ -0,0 +1,24 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 获取流程实例中变量集合的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-01-16 17:05
|
||||
*/
|
||||
@ApiModel("获取流程实例中变量集合的入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class BpmnProcessInstanceVariablesDTO {
|
||||
|
||||
private String processInstanceId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 取消流程实例的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/17 09:34
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("取消流程实例的入参模型")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class SuperBpmnProcessInstanceCancelDTO extends BpmnProcessInstanceCancelDTO {
|
||||
|
||||
private Boolean superAdmin;
|
||||
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.process.doc;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 签署业务流程实例,查询审批的关联文档阅读状态入参
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-08 11:27
|
||||
*/
|
||||
@ApiModel("签署业务流程实例,查询审批的关联文档阅读状态入参")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class ApproverReadStatusDTO {
|
||||
|
||||
/**
|
||||
* 流程实例 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "流程实例 ID")
|
||||
@NotBlank(message = "流程实例 ID 不能为空")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 访问人
|
||||
*/
|
||||
@ApiModelProperty(value = "访问人")
|
||||
@NotNull(message = "访问人信息不能为空")
|
||||
private BpmnTaskDelegateAssigner assigner;
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.process.doc;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 签署业务流程实例,更新审批的关联文档阅读状态入参
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-04-08 14:50
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("签署业务流程实例,更新审批的关联文档阅读状态入参")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@SuperBuilder
|
||||
public class ChangeApproverReadStatusDTO extends ApproverReadStatusDTO {
|
||||
/**
|
||||
* 文档ID
|
||||
*/
|
||||
@ApiModelProperty(value = "文档 ID")
|
||||
@NotNull(message = "文档 ID 不能为空")
|
||||
private Long docId;
|
||||
|
||||
@ApiModelProperty(value = "阅读状态")
|
||||
@NotNull(message = "阅读状态不能为空")
|
||||
private Boolean readStatus;
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.process.doc;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
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-04-03 16:30
|
||||
*/
|
||||
@ApiModel("签署业务流程实例,在审批待办中查询文档列表的入参")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class ProcessDocQueryDTO {
|
||||
|
||||
/**
|
||||
* 流程实例 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "流程实例 ID")
|
||||
@NotBlank(message = "流程实例 ID 不能为空")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 只有当该属性传值后,响应模型中才会返回阅读状态信息
|
||||
*/
|
||||
@ApiModelProperty(value = "访问者")
|
||||
private BpmnTaskDelegateAssigner assigner;
|
||||
|
||||
}
|
||||
@ -65,4 +65,10 @@ public class AttachmentDTO implements Serializable {
|
||||
@IndexField(fieldType = FieldType.KEYWORD)
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 文件 OSS 的 fileKey
|
||||
*/
|
||||
@ApiModelProperty(value = "附件 oss 的 fileKey")
|
||||
private String fileKey;
|
||||
|
||||
}
|
||||
|
||||
@ -7,7 +7,6 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.util.List;
|
||||
@ -62,12 +61,14 @@ public class BpmnActivitySetAssigneeDTO {
|
||||
* <p>
|
||||
* 如果业务不能接受,请自己主动去重后提交.
|
||||
*/
|
||||
@Builder.Default
|
||||
private Boolean serverSideDeduplication = false;
|
||||
|
||||
/**
|
||||
* 是否异步执行
|
||||
*/
|
||||
@ApiModelProperty(value = "是否异步", notes = "异步时,只接收请求便返回数据")
|
||||
@Builder.Default
|
||||
private Boolean async = false;
|
||||
|
||||
}
|
||||
|
||||
@ -36,6 +36,7 @@ public class BpmnActivityTriggerDTO implements Serializable {
|
||||
* 是否异步执行
|
||||
*/
|
||||
@ApiModelProperty(value = "是否异步", notes = "异步时,只接收请求便返回数据")
|
||||
@Builder.Default
|
||||
private Boolean async = true;
|
||||
|
||||
/**
|
||||
|
||||
@ -0,0 +1,67 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.task;
|
||||
|
||||
import cn.axzo.workflow.common.constraint.AttachmentTypeValidator;
|
||||
import cn.axzo.workflow.common.constraint.AttachmentValidator;
|
||||
import cn.axzo.workflow.common.enums.AttachmentTypeEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 审批节点退回模型
|
||||
*
|
||||
*/
|
||||
@ApiModel("审批节点退回模型")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BpmnNodeBackSystemOperateDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -4160538355403179298L;
|
||||
|
||||
@ApiModelProperty(value = "流程实例id", required = true)
|
||||
@NotBlank(message = "流程实例id不能为空")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty(value = "当前流程节点id", required = true)
|
||||
@NotBlank(message = "当前节点id不能为空")
|
||||
private String currentActivityId;
|
||||
|
||||
@ApiModelProperty(value = "目标流程节点id", required = true)
|
||||
@NotBlank(message = "目标流程节点id不能为空")
|
||||
private String toActivityId;
|
||||
|
||||
@ApiModelProperty(value = "可以指定任务处理", required = true)
|
||||
private List<String> targetTaskIds;
|
||||
|
||||
@ApiModelProperty(value = "意见")
|
||||
private String advice;
|
||||
|
||||
@ApiModelProperty(value = "操作描述")
|
||||
private String operationDesc;
|
||||
|
||||
@ApiModelProperty(value = "操作人")
|
||||
private BpmnTaskDelegateAssigner operator;
|
||||
|
||||
/**
|
||||
* 附件列表
|
||||
*/
|
||||
@ApiModelProperty(value = "附件列表")
|
||||
@Size(max = 11, message = "附件数量超过限制")
|
||||
@AttachmentValidator(types = {
|
||||
@AttachmentTypeValidator(type = AttachmentTypeEnum.image, max = 5),
|
||||
@AttachmentTypeValidator(type = AttachmentTypeEnum.file, max = 5),
|
||||
@AttachmentTypeValidator(type = AttachmentTypeEnum.signature, max = 1)}
|
||||
)
|
||||
private List<AttachmentDTO> attachmentList;
|
||||
|
||||
}
|
||||
@ -71,5 +71,6 @@ public class BpmnRobotTaskCompleteDTO {
|
||||
* 是否异步执行
|
||||
*/
|
||||
@ApiModelProperty(value = "是否异步", notes = "异步时,只接收请求便返回数据")
|
||||
@Builder.Default
|
||||
private Boolean async = false;
|
||||
}
|
||||
|
||||
@ -51,5 +51,6 @@ public class BpmnRobotTaskCreateDTO {
|
||||
* 是否异步执行
|
||||
*/
|
||||
@ApiModelProperty(value = "是否异步", notes = "异步时,只接收请求便返回数据")
|
||||
@Builder.Default
|
||||
private Boolean async = false;
|
||||
}
|
||||
|
||||
@ -78,6 +78,7 @@ public class BpmnTaskAuditDTO {
|
||||
* 是否异步执行
|
||||
*/
|
||||
@ApiModelProperty(value = "是否异步", notes = "异步时,只接收请求便返回数据")
|
||||
@Builder.Default
|
||||
private Boolean async = true;
|
||||
|
||||
/**
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user