微服务版后端初始化

This commit is contained in:
yaoyn
2025-02-08 17:51:37 +08:00
parent 54af6be188
commit da009a7cc4
1897 changed files with 429541 additions and 81 deletions

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xjrsoft-service-api</artifactId>
<groupId>com.xjrsoft</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xjrsoft-service-workflow-api</artifactId>
<properties>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
<dependencies>
<!--引入hutool依赖-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<!--引入Lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>com.xjrsoft</groupId>
<artifactId>xjrsoft-common-core</artifactId>
<version>${xjrsoft.framework.version}</version>
</dependency>
<dependency>
<groupId>com.xjrsoft</groupId>
<artifactId>xjrsoft-service-system-api</artifactId>
<version>${xjrsoft.framework.version}</version>
</dependency>
<dependency>
<groupId>com.xjrsoft</groupId>
<artifactId>xjrsoft-common-satoken</artifactId>
<version>${xjrsoft.framework.version}</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.xjrsoft</groupId>-->
<!-- <artifactId>xjrsoft-service-organization-api</artifactId>-->
<!-- <version>${xjrsoft.framework.version}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-engine</artifactId>
<version>7.18.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,27 @@
package com.xjrsoft.workflow.client;
import com.xjrsoft.common.core.constant.GlobalConstant;
import com.xjrsoft.workflow.fallback.HistoryClientFallBack;
import com.xjrsoft.workflow.vo.HistoryProcessInstanceVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Set;
/**
* @Author: tzx
* @Date: 2023/10/28 20:05
*/
@FeignClient(value = GlobalConstant.CLIENT_WORKFLOW_NAME,fallback = HistoryClientFallBack.class)
public interface IHistoryClient {
/**
* 根据porcessId 获取 流程实例信息
* @param processIds
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_WORKFLOW_NAME + "/getProcessInstanceListFeign")
List<HistoryProcessInstanceVo> getProcessInstanceListFeign(@RequestParam("processIds") Set<String> processIds);
}

View File

@ -0,0 +1,25 @@
package com.xjrsoft.workflow.client;
import com.xjrsoft.common.core.constant.GlobalConstant;
import com.xjrsoft.workflow.fallback.TaskClientFallBack;
import com.xjrsoft.workflow.vo.TaskInstanceVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/10/28 20:21
*/
@FeignClient(value = GlobalConstant.CLIENT_WORKFLOW_NAME,fallback = TaskClientFallBack.class)
public interface ITaskClient {
/**
* 获取登录人当前活跃的流程 任务
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_WORKFLOW_NAME + "/getActiveTaskInstanceListFeign")
List<TaskInstanceVo> getActiveTaskInstanceListFeign(@RequestParam("processIdArrays") String[] processIdArrays);
}

View File

@ -0,0 +1,30 @@
package com.xjrsoft.workflow.client;
import com.xjrsoft.common.core.constant.GlobalConstant;
import com.xjrsoft.workflow.dto.PendingTaskDto;
import com.xjrsoft.workflow.fallback.HistoryClientFallBack;
import com.xjrsoft.workflow.vo.HistoryProcessInstanceVo;
import com.xjrsoft.workflow.vo.PendingTaskVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Set;
/**
* @author yjw
* @createDate 2024-07-10
*/
@FeignClient(value = GlobalConstant.CLIENT_WORKFLOW_NAME,fallback = HistoryClientFallBack.class)
public interface IWorkflowExecuteClient {
/**
* 根据porcessId 获取 流程实例信息
* @param pendingTaskDto
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_WORKFLOW_NAME + "/getPendingListFeign")
List<PendingTaskVo> getPendingListFeign(@RequestParam("PendingTaskDto") PendingTaskDto pendingTaskDto);
}

View File

@ -0,0 +1,36 @@
package com.xjrsoft.workflow.client;
import com.xjrsoft.common.core.constant.GlobalConstant;
import com.xjrsoft.workflow.entity.WorkflowFormRelation;
import com.xjrsoft.workflow.fallback.WorkflowFormRelationClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/10/19 16:13
*/
@FeignClient(value = GlobalConstant.CLIENT_WORKFLOW_NAME,fallback = WorkflowFormRelationClientFallBack.class)
public interface IWorkflowFormRelationClient {
/**
* 表单id 获取工作流关联
* @param formId
* @param formKeyValue
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_WORKFLOW_NAME + "/getWorkflowFormRelationFeign")
List<WorkflowFormRelation> getWorkflowFormRelationFeign(@RequestParam("formId") Long formId, @RequestParam("formKeyValue") String formKeyValue);
/**
* 表单id 获取工作流关联
* @param formId
* @param formKeyValues
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_WORKFLOW_NAME + "/getWorkflowFormRelationBatchFeign")
List<WorkflowFormRelation> getWorkflowFormRelationBatchFeign(@RequestParam("formId") Long formId, @RequestParam("formKeyValue") List<Object> formKeyValues);
}

View File

@ -0,0 +1,24 @@
package com.xjrsoft.workflow.client;
import com.xjrsoft.common.core.constant.GlobalConstant;
import com.xjrsoft.workflow.entity.WorkflowSchema;
import com.xjrsoft.workflow.fallback.WorkflowSchemaClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @Author: tzx
* @Date: 2023/10/28 19:58
*/
@FeignClient(value = GlobalConstant.CLIENT_WORKFLOW_NAME,fallback = WorkflowSchemaClientFallBack.class)
public interface IWorkflowSchemaClient {
/**
* 根据schemaId 获取
* @param formId
* @return
*/
@GetMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MODULE_WORKFLOW_NAME + "/getWorkflowSchemaByFormIdFeign")
WorkflowSchema getWorkflowSchemaByFormIdFeign(@RequestParam("formId") Long formId);
}

View File

@ -0,0 +1,602 @@
package com.xjrsoft.workflow.constant;
/**
* @Author: tzx
* @Date: 2022/9/5 16:14
*/
public interface WorkflowConstant {
/**
* 类型(后缀)
*/
String WORKFLOW_SUFFIX = "bpmn20.xml";
/**
* 流程参数 存储 key
*/
String PROCESS_PARAM_KEY = "processParamKey";
/**
* 流程任务发起人idKey
*/
String PROCESS_START_USER_ID_KEY = "startUserIdKey";
/**
* 流程任务发起人名称Key
*/
String PROCESS_START_USER_NAME_KEY = "startUserNameKey";
/**
* 流程任务发起人发起是所选岗位Key
*/
String PROCESS_START_USER_POST_ID_KEY = "startUserPostIdKey";
/**
* 流程名称 key
*/
String PROCESS_NAME = "processNameKey";
/**
* 流程任务模板id key
*/
String PROCESS_SCHEMA_ID_KEY = "processSchemaIdKey";
/**
* 流程任务模板名称 key
*/
String PROCESS_SCHEMA_NAME_KEY = "processSchemaNameKey";
/**
* 流程 流水号 变量 key
*/
String PROCESS_SERIAL_NUMBER_KEY = "serialNumberKey";
/**
* 流程 所有表单ID 以及 主键值 key
* {templateId}:{formKey}
*/
String PROCESS_FOMRID_KEYVALUE_KEY = "processFormIdAndKeyValueMapKey";
/**
* 关联任务存储key
*/
String RELATION_TASK_KEY = "relationTask";
/**
* 流程表单数据参数 前缀 规则 form_{formId}_key
*/
String PROCESS_FORMDATA_PREFIX_KEY = "form_";
/**
* 查询我的流程 是否移入回收站
*/
String PROCESS_ISRECYCLE_FLAG_KEY = "processIsRecycle";
/**
* 流程表单数据参数 前缀 规则 flow:{flowId}:{nodeId}:{formId}:{formField}
*/
String FLOW_PARAM_PREFIX_KEY = "flow:";
/**
* 流程任务审批人 变量key
*/
String TASK_ASSIGNEE_VAR_KEY = "assignee";
/**
* 是否需要指定审批人
*/
String TASK_IS_APPOINT_APPROVE = "isAppoint";
/**
* 流程任务 各节点审批人 历史记录
* 数据类型 Map<String, List<Long>>
* {
* "nodeid":[userid1,userid2,userid3]
* "nodeid":[userid1,userid2,userid3]
* }
*/
String TASK_ASSIGNEE_RECORD_VAR_KEY = ":assigneeOfNode";
/**
* 流程任务 各节点审批类型 历史记录
*/
String TASK_APPROVE_TYPE_RECORD_VAR_KEY = ":approveType";
/**
* 流程任务传阅人 前缀 规则 circulated
*/
String TASK_CIRCULATED_VAR_KEY = "circulated";
// /**
// * 流程任务 多实例用户节点 审批人 变量key
// * 存储数据 是字符串 userid1,userid2,userid3
// * 用于多实例根据列表数据生成多个用户任务 存几条数据 生成几条task 数据
// */
// String TASK_MULTI_ASSIGNEE_VAR_StRING_KEY = "assigneeListString";
/**
* 流程任务 多实例用户节点 审批人 参数变量 key 例 assigneeList_{nodeId}
* 存储数据 [userid1,userid2,userid3]
* 用于多实例根据列表数据生成多个用户任务 存几条数据 生成几条task 数据
*/
String TASK_MULTI_ASSIGNEE_VAR_KEY = "assigneeList_";
/**
* 流程任务传阅人 前缀 规则 circulatedList_{nodeId}
*/
String TASK_MULTI_CIRCULATED_VAR_KEY = "circulatedList_";
/**
* 各节点配置 统一id 的key 默认都使用id
*/
String NODE_CONFIG_ID_KEY = "id";
/**
* 开始节点 id 默认
*/
String START_NODE_DEFAULT_ID = "Event_start_node";
/**
* 流程线 id 前缀
*/
String FLOW_ID_PREFIX_STRING = "Flow";
/**
* 流程任务模板配置 前缀:{schemaId}
*/
String SCHEMA_CACHE_PREFIX = "schema:";
/**
* 多实例外部任务缓存前缀 前缀:{callActivity}
*/
String CALLACTIVITY_CACHE_PREFIX = "callActivity:";
/**
* 外部任务 审批结果 关键词
*/
String CALLACTIVITY_KEYWORD = "finish";
/**
* 外部任务 审批结果 后缀
*/
String CALLACTIVITY_RESULT_SUF = "count";
/**
* 模板编号占位符
*/
String TEMPLATE_CODE_PLACEHOLDER = "#{template_code}#";
/**
* 模板名称占位符
*/
String TEMPLATE_NAME_PLACEHOLDER = "#{template_name}#";
/**
* 模板分类占位符
*/
String TEMPLATE_CATEGORY_PLACEHOLDER = "#{template_category}#";
/**
* 模板备注占位符
*/
String TEMPLATE_REMARK_PLACEHOLDER = "#{template_remark}#";
/**
* 流程任务id占位符
*/
String TASK_ID_PLACEHOLDER = "#{task_id}#";
/**
* 发起人id占位符
*/
String INITIATOR_ID_PLACEHOLDER = "#{initiator_id}#";
/**
* 发起人名称占位符
*/
String INITIATOR_USER_NAME_PLACEHOLDER = "#{initiator_user_name}#";
/**
* 发起人编码占位符
*/
String INITIATOR_CODE_PLACEHOLDER = "#{initiator_code}#";
/**
* 发起人手机号占位符
*/
String INITIATOR_MOBILE_PLACEHOLDER = "#{initiator_mobile}#";
/**
* 发起人组织架构名称占位符
*/
String INITIATOR_DEPT_NAME_PLACEHOLDER = "#{initiator_dept_name}#";
/**
* 发起人岗位名称占位符
*/
String INITIATOR_POST_NAME_PLACEHOLDER = "#{initiator_post_name}#";
/**
* yyyy-MM-dd HH:mm:ss 24小时制
*/
String YYYYMMDDHHMMSS_24_PLACEHOLDER = "#{yyyy-MM-dd HH:mm:ss}#";
/**
* yyyy-MM-dd HH:mm:ss 12小时制
*/
String YYYYMMDDHHMMSS_12_PLACEHOLDER = "#{yyyy-MM-dd hh:mm:ss}#";
/**
* yyyy-MM-dd
*/
String YYYYMMDD_PLACEHOLDER = "#{yyyy-MM-dd}#";
/**
* HH:mm:ss 24小时制
*/
String HHMMSS_24_PLACEHOLDER = "#{HH:mm:ss}#";
/**
* hh:mm:ss 12小时制
*/
String HHMMSS_12_PLACEHOLDER = "#{hh:mm:ss}#";
/**
* 2位随机数 占位符
*/
String RANDOM_2_PLACEHOLDER = "#{random_2}#";
/**
* 2位随机数+字母 占位符
*/
String RANDOM_2_MIX_PLACEHOLDER = "#{random_2_mix}#";
/**
* 4位随机数 占位符
*/
String RANDOM_4_PLACEHOLDER = "#{random_4}#";
/**
* 4位随机数+字母 占位符
*/
String RANDOM_4_MIX_PLACEHOLDER = "#{random_4_mix}#";
/**
* 6位随机数 占位符
*/
String RANDOM_6_PLACEHOLDER = "#{random_6}#";
/**
* 6位随机数+字母 占位符
*/
String RANDOM_6_MIX_PLACEHOLDER = "#{random_6_mix}#";
/**
* 8位随机数 占位符
*/
String RANDOM_8_PLACEHOLDER = "#{random_8}#";
/**
* 8位随机数+字母 占位符
*/
String RANDOM_8_MIX_PLACEHOLDER = "#{random_8_mix}#";
/**
* 全局流程流水号 占位符
*/
String SERIAL_NUBMER_PLACEHOLDER = "#{serial_number}#";
String RANDOM_DASH = "#{random_-}#";
/**
* 4位数 流水号 占位符
*/
String SERIAL_NUBMER_FOUR_PLACEHOLDER = "#{serial_number_four}#";
/**
* 5位数 流水号 占位符
*/
String SERIAL_NUBMER_FIVE_PLACEHOLDER = "#{serial_number_five}#";
/**
* 6位数 流水号 占位符
*/
String SERIAL_NUBMER_SIX_PLACEHOLDER = "#{serial_number_six}#";
/**
* 7位数 流水号 占位符
*/
String SERIAL_NUBMER_SEVEN_PLACEHOLDER = "#{serial_number_seven}#";
/**
* 8位数 流水号 占位符
*/
String SERIAL_NUBMER_EIGHT_PLACEHOLDER = "#{serial_number_eight}#";
/**
* bpmn 开始节点 的类型名称
*/
String BPMN_START_EVENT_TYPE_NAME = "startEvent";
/**
* 开始节点 的类型名称
*/
String START_EVENT_TYPE_NAME = "开始节点";
/**
* bpmn 前端 用户任务节点 的类型名称
*/
String BPMN_XML_START_EVENT_TYPE_NAME = "bpmn:StartEvent";
/**
* bpmn 后端 用户任务节点 的类型名称
*/
String BPMN_USER_TASK_TYPE_NAME = "userTask";
/**
* bpmn 前端 用户任务节点 的类型名称
*/
String BPMN_XML_USER_TASK_TYPE_NAME = "bpmn:UserTask";
/**
* 用户任务节点 的类型名称
*/
String USER_TASK_TYPE_NAME = "用户任务";
/**
* bpmn 脚本任务节点 的类型名称
*/
String BPMN_SCRIPT_TASK_TYPE_NAME = "scriptTask";
/**
* 用户任务节点 的类型名称
*/
String SCRIPT_TASK_TYPE_NAME = "脚本任务";
/**
* 用户任务节点 的类型名称
*/
String CALL_ACTIVITY_TYPE_NAME = "外部流程";
/**
* bpmn 脚本任务节点 的类型名称
*/
String BPMN_CALL_ACTIVITY_TYPE_NAME = "callActivity";
/**
* bpmn xml 外部流程节点 的类型名称
*/
String BPMN_XML_CALL_ACTIVITY_TYPE_NAME = "bpmn:CallActivity";
/**
* 流程参数 存储 key
*/
String SUB_PROCESS_PARAM_KEY = "subProcessParamKey";
/**
* 流程任务发起人idKey
*/
String SUB_PROCESS_START_USER_ID_KEY = "subProcessStartUserIdKey";
/**
* 流程任务发起人名称Key
*/
String SUB_PROCESS_START_USER_NAME_KEY = "subProcessStartUserNameKey";
/**
* 流程中发起的子流程实例数
*/
String SUB_PROCESS_INSTANCE_COUNT="subProcessInstanceCount";
/**
* 子流程实例id
*/
String SUB_PROCESS_INSTANCE_ID="subProcessInstanceId";
/**
* 子流程实例名称
*/
String SUB_PROCESS_INSTANCE_NAME="subProcessInstanceName";
/**
* 启动子流程的父流程实例id
*/
String SUB_PROCESS_PARENT_INSTANCE_ID="subProcessParentInstanceId";
/**
* 强制赋值子流程实例id
*/
String FORCE_SUB_PROCESS_INSTANCE_ID="subProcessInstanceIdForce";
/**
* 被强制赋值前的子流程实例id
*/
String ORIGINAL_SUB_PROCESS_INSTANCE_ID="subProcessInstanceIdOriginal";
/**
* 强制赋值启动子流程的父流程实例id
*/
String FORCE_SUB_PROCESS_PARENT_INSTANCE_ID="subProcessParentInstanceIdForce";
/**
* 被强制赋值前的子流程的父流程实例id
*/
String ORIGINAL_SUB_PROCESS_PARENT_INSTANCE_ID="subProcessParentInstanceIdOriginal";
String FORBID_FIX_PARENT_SUB_PROCESS_INSTANCE_ID="forbidFixParentSubProcessInstanceId";
/**
* 子流程数据分隔符大项子流程实例id在左小项在右
*/
String SUB_PROCESS_SEPARATOR=">";
/**
* 主流程标记
*/
String MAIN_PROCESS_ID="main";
/**
* 子流程节点 的类型名称
*/
String SUB_PROCESS_TYPE_NAME = "子流程";
/**
* bpmn 子流程 的类型名称
*/
String BPMN_SUB_PROCESS_TYPE_NAME = "subProcess";
/**
* bpmn xml 子流程节点 的类型名称
*/
String BPMN_XML_SUB_PROCESS_TYPE_NAME = "bpmn:SubProcess";
/**
* bpmn 结束节点 的类型名称 noneEndEvent
*/
String BPMN_END_NODE_TYPE_NAME = "noneEndEvent";
/**
* bpmn 互斥网关(排他)节点 的类型名称
*/
String BPMN_EXCLUSIVE_GATEWAY_TYPE_NAME = "exclusiveGateway";
/**
* 结束节点 的类型名称
*/
String END_NODE_TYPE_NAME = "结束节点";
/**
* bpmn 从 Execution 取 Property 的中的 节点类型值 的key
*/
String BPMN_EVENT_SOURCE_TYPE_KEY = "type";
/**
* 超时提醒 key 前缀 格式为 timeout:{taskId}:{hit}:{noticePolicyConfigString}
*/
String TIMEOUT_REMID_KEY = "timeout:";
/**
* camunda 多实例 节点 会将activityid 加上multiInstanceBody 例如: Activity_14k881u#multiInstanceBody
*/
String MULTI_INSTANCE_STRING = "#multiInstanceBody";
/**
* 多实例设置审批人key 浅醉
*/
String MULTI_ASSIGNEE_CACHE_PREFIX = "multiAssignee:";
/**
* camunda 多实例 节点存储 所有实例数 的key
*/
String MULTI_INSTANCE_VAR_KEY = "nrOfInstances";
/**
* camunda 多实例 节点存储 所有已完成实例数 的key
*/
String MULTI_COMPLETED_INSTANCE_VAR_KEY = "nrOfCompletedInstances";
/**
* camunda 多实例 节点存储 所有活动实例数 的key
*/
String MULTI_ACTIVE_INSTANCE_VAR_KEY = "nrOfActiveInstances";
/**
* 专项菜单 待办任务列表 的专项菜单id specialMenuId
*/
String SPECIAL_MENU_ID_PARAM_NAME = "id";
/**
* 专项菜单 开始时间查询key (工作流开始时间)
*/
String SPECIAL_MENU_START_TIME_PARAM_NAME = "startTime";
/**
* 专项菜单 开始时间查询key (工作流开始时间)
*/
String SPECIAL_MENU_END_TIME_PARAM_NAME = "endTime";
/**
* 专项菜单 流水号key (工作流流水号)
*/
String SPECIAL_MENU_SERIAL_NUMBER_PARAM_NAME = "serialNumber";
/**
* 专项菜单 流程任务名key (任务名)
*/
String SPECIAL_MENU_TASK_NAME_PARAM_NAME = "taskName";
/**
* 专项菜单 流程模板名key (任务名)
*/
String SPECIAL_MENU_SCHEMA_NAME_PARAM_NAME = "schemaName";
/**
* 专项菜单 流程发起人key (发起人)
*/
String SPECIAL_MENU_ORIGINATOR_PARAM_NAME = "originator";
/**
* 预选的下节点用户
*/
String NEXT_TASK_USER_VAR_FLAG="nextTaskUser";
/**
* 会签用户任务节点 点击按钮审批结果关键词
*/
String BUTTON_APPROVE_VAR_FLAG = "button";
/**
* 会签用户任务节点 点击按钮同意总和
*/
String BUTTON_AGREE_APPROVE_VAR_FLAG = "agreeCount";
/**
* 会签用户任务节点 点击按钮拒绝总和
*/
String BUTTON_REJECT_APPROVE_VAR_FLAG = "rejectCount";
/**
* 会签结果
*/
String BUTTON_APPROVE_RESULT_VAR_FLAG = "result";
/**
* 开始事件 缓存 前缀
*/
String START_EVENT_CACHE_PRE = "startEvent:";
/**
* 结束 缓存 前缀
*/
String END_EVENT_CACHE_PRE = "endEvent:";
/**
* 按钮事件
*/
String BUTTON_EVENT_CACHE_PRE = "buttonEvent:";
/**
* 其他审批人
*/
String otherAuditPersonKey="otherAuditPerson";
/**
* 是否使用默认签章
*/
String useUserDefaultStampKey="useUserDefaultStamp";
}

View File

@ -0,0 +1,43 @@
package com.xjrsoft.workflow.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author apple
*/
@Data
@Tag(name = "委托")
public class AddDelegateDto implements Serializable {
@Schema(name = "被委托人")
@NotNull(message = "必须选择被委托人")
private String delegateUserIds;
@Schema(name = "开始时间")
@NotNull(message = "开始时间必须选择")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@Schema(name = "结束时间")
@NotNull(message = "结束时间必须选择")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@Schema(name = "说明备注")
private String remark;
@Schema(name = "所委托模板ids")
@NotNull(message = "必须选择所委托的工作流模板")
private String schemaIds;
}

View File

@ -0,0 +1,26 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.workflow.model.ProcessConfig;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/9/8 10:15
*/
@Data
public class AddDesignDto {
@NotBlank(message = "resourceId不能为空")
private String resourceId;
@NotNull(message = "流程配置不能为空")
private ProcessConfig processConfig;
@NotNull(message = "子节点配置不能为空")
private List<Map<String, Object>> childNodeConfig;
}

View File

@ -0,0 +1,23 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/11/4 10:03
*/
@Data
public class AddDraftDto {
@Schema(name = "工作流模板id")
@NotNull(message = "工作流模板id")
private Long schemaId;
@Schema(name = "表单数据")
@NotNull(message = "表单数据不能为空")
private Map<String, Map<String, Object>> formData;
}

View File

@ -0,0 +1,39 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Author: tzx
* @Date: 2022/11/29 15:45
*/
@Data
public class AddOrSubSignDto {
/**
* 任务id
*/
@NotBlank(message = "任务id 不能为空!")
private String taskId;
/**
* 模板id
*/
@NotNull(message = "模板id 不能为空!")
private Long schemaId;
/**
* 审批用户id
*/
@NotNull(message = "所选用户不能为空!")
private List<Long> userIds;
/**
* 独立于userIds额外再加减人
*/
private List<Long> addUserIds;
private List<Long> subUserIds;
}

View File

@ -0,0 +1,55 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.system.dto.AddMenuDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2023/3/20 10:16
*/
@Data
public class AddSpecialMenuDto {
@Schema(name = "功能名称")
@NotBlank(message = "功能名称不能为空!")
@Length(min = 1, max = 50, message = "功能名称不能超过50个字符")
private String name;
@Schema(name = "功能编码")
@NotBlank(message = "功能编码不能为空!")
@Length(min = 1, max = 50, message = "功能编码不能超过50个字符")
private String code;
@Schema(name = "菜单配置")
@NotNull(message = "菜单配置不能为空!")
@Valid
private AddMenuDto menuInfo;
@Schema(name = "模板配置 ")
@NotBlank(message = "模板配置不能为空!")
private String schemaId;
@Schema(name = "模板权限类型 0 所有 1 指定")
private Integer schemaAuthType;
@Schema(name = "专项菜单使用人 如果 schema_auth_type == 1 才会有")
private String schemaAuthUserId;
@Schema(name = "字段权限 配置 0 所有 1指定")
private Integer fieldAuthType;
@Schema(name = "专项菜单字段权限 指定成员 如果 field_auth_type == 1 才会有")
private String fieldAuthUserId;
@Schema(name = "表单字段配置")
private String fieldConfig;
@Schema(name = "查询配置")
private String queryConfig;
}

View File

@ -0,0 +1,25 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.workflow.model.ProcessConfig;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/11/3 16:13
*/
@Data
public class AddWorkflowSchemaDraftDto implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "流程配置不能为空")
private ProcessConfig processConfig;
@NotNull(message = "子节点配置不能为空")
private List<Map<String, Object>> childNodeConfig;
}

View File

@ -0,0 +1,30 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.workflow.model.ProcessConfig;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* 新增流程设计dto
*
* @Author: tzx
* @Date: 2022/9/5 15:26
*/
@Data
public class AddWorkflowSchemaDto implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "流程配置不能为空")
@Valid
private ProcessConfig processConfig;
@NotNull(message = "子节点配置不能为空")
private List<Map<String, Object>> childNodeConfig;
}

View File

@ -0,0 +1,58 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.workflow.model.MemberConfig;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/9/9 10:19
*/
@Data
public class ApproveDto {
@Schema(name = "流程任务id")
@NotBlank(message = "流程任务id不能为空")
private String taskId;
@Schema(name = "审批内容")
private String approvedContent;
@Schema(name = "审批类型 0 同意 1 拒绝 2 驳回 3 结束 4 其他(用户自定义按钮) ")
@NotNull(message = "审批类型不能为空")
private Integer approvedType;
@Schema(name = "审批结果 buttonConfig 的 buttonCode ")
@NotNull(message = "审批结果按钮编码不能为空")
private String approvedResult;
@Schema(name = "表单数据")
@NotNull(message = "表单数据不能为空")
private Map<String, Map<String, Object>> formData;
@Schema(name = "驳回节点activityId (传入节点activityId)")
private String rejectNodeActivityId;
@Schema(name = "传阅人信息")
private List<MemberConfig> circulateConfigs;
@Schema(name = "签章Id")
private Long stampId;
@Schema(name = "签章如果有密码 填写的密码")
private String stampPassword;
@Schema(name = "所有上传文件的文件夹id")
private List<Long> fileFolderIds;
@Schema(name = "是否是老版本表单")
private Map<String,Boolean> isOldSystem;
@Schema(name = "下一节点选择的用户taskKey,userIds")
private Map<String,String>nextTaskUser;
}

View File

@ -0,0 +1,32 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/2/15 9:11
*/
@Data
public class ApproveMultiDto {
@Schema(name = "流程任务id")
@NotNull(message = "流程任务id不能为空")
private List<String> taskIds;
@Schema(name = "审批内容")
private String approvedContent;
@Schema(name = "审批类型 0 同意 1 拒绝 2 驳回 3 结束 4 其他(用户自定义按钮) ")
@NotNull(message = "审批类型不能为空")
private Integer approvedType;
@Schema(name = "签章Id")
private Long stampId;
@Schema(name = "签章如果有密码 填写的密码")
private String stampPassword;
}

View File

@ -0,0 +1,16 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2023/4/20 10:16
*/
@Data
public class ApproveMultiInfoDto {
/**
* 所有任务id
*/
private String taskIds;
}

View File

@ -0,0 +1,26 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* 指定下一节点审批人参数
* @Author: tzx
* @Date: 2022/10/26 9:42
*/
@Data
public class ApproveUserDto {
/**
* 任务id
*/
@NotBlank(message = "任务id不能为空")
private String taskId;
/**
* 指定审批人id 可空 使用无对应处理人
*/
private List<Long> approvedUsers;
}

View File

@ -0,0 +1,27 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/1/29 16:35
*/
@Data
public class ApproveUserMultiDto {
/**
* 模板id
*/
@NotBlank(message = "模板id 不能为空!")
private String schemaId;
/**
* 所有需要设置的审批人信息
*/
@NotNull(message = "审批人不能为空!")
private List<ApproveUserDto> approveUserList;
}

View File

@ -0,0 +1,49 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Author: tzx
* @Date: 2022/10/31 14:22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CirculatedTaskPageDto extends PageInput {
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* 模板名称
*/
private String name;
/**
* 任务名称
*/
private String taskName;
/**
* 发起人
*/
private String originator;
/**
* 流水号
*/
private String serialNumber;
}

View File

@ -0,0 +1,16 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 流程委托 分页列表dto
* @author apple
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class DelegatePageDto extends PageInput {
}

View File

@ -0,0 +1,12 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/11/15 14:25
*/
@Data
public class DeleteMonitorDto{
private String processId;
}

View File

@ -0,0 +1,12 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/9/16 9:43
*/
@Data
public class DeployDto {
private String schemaId;
}

View File

@ -0,0 +1,40 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Author: tzx
* @Date: 2022/11/4 10:12
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class DraftPageDto extends PageInput {
/**
* 任务名称
*/
private String name;
/**
* 发起人
*/
private String originator;
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
}

View File

@ -0,0 +1,16 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
/**
* 启用流程
* @Author: tzx
* @Date: 2022/11/16 15:09
*/
@Data
public class EnabledDto {
/**
* 流程模板id
*/
private Long schemaId;
}

View File

@ -0,0 +1,48 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Author: tzx
* @Date: 2022/10/31 15:13
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class FinishedTaskPageDto extends PageInput {
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* 模板名称
*/
private String name;
/**
* 任务名称
*/
private String taskName;
/**
* 发起人
*/
private String originator;
/**
* 流水号
*/
private String serialNumber;
}

View File

@ -0,0 +1,21 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2023/3/27 10:58
*/
@Data
public class FormFinishedTaskDto {
/**
* 表单id
*/
private Long formId;
/**
* 当前表单数据主键
*/
private String keyValue;
}

View File

@ -0,0 +1,27 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/11/30 10:49
*/
@Data
public class GetAssigneeDto {
/**
* 模板id
*/
@NotNull(message = "模板id 不能为空!")
private Long schemaId;
/**
* 任务id
*/
@NotBlank(message = "任务id 不能为空!")
private String taskId;
}

View File

@ -0,0 +1,34 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/11/30 10:49
*/
@Data
public class GetCurrentAssigneeDto {
/**
* 流程实例id
*/
@NotNull(message = "流程实例id 不能为空!")
private String processInstId;
/**
* 任务编码
*/
private String taskDefKey;
/**
* 是否查询审批人详情
*/
private Boolean isGetAssigneeInfo=false;
public GetCurrentAssigneeDto(){
}
public GetCurrentAssigneeDto(String processInstId){this.processInstId=processInstId;
}
public GetCurrentAssigneeDto(String processInstId,String taskDefKey){this.processInstId=processInstId;this.taskDefKey=taskDefKey;
}
}

View File

@ -0,0 +1,19 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2022/11/16 16:51
*/
@Data
public class HistoryChangeDto {
@NotNull(message = "模板id 不能为空")
private Long schemaId;
@NotNull(message = "历史记录id 不能为空")
private Long id;
}

View File

@ -0,0 +1,32 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/9/8 14:28
*/
@Data
public class LaunchDto {
@Schema(name = "工作流模板id")
@NotNull(message = "工作流模板id")
private Long schemaId;
@Schema(name = "表单数据")
@NotNull(message = "表单数据不能为空")
private Map<String,Map<String,Object>> formData;
@Schema(name = "关联任务信息")
private List<LaunchRelationTaskDto> relationTasks;
@Schema(name = "所有上传文件的文件夹id")
private List<Long> fileFolderIds;
@Schema(name ="是否是老版本表单")
private Map<String,Boolean> isOldSystem;
}

View File

@ -0,0 +1,25 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @Author: tzx
* @Date: 2023/2/6 10:31
*/
@Data
public class LaunchRelationTaskDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 模板id
*/
private Long schemaId;
/**
* 任务id
*/
private String taskId;
}

View File

@ -0,0 +1,35 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @Author: tzx
* @Date: 2022/11/15 14:25
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class MonitorPageDto extends PageInput {
@Schema(name = "开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Schema(name = "结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* 0未完成 1完成
*/
@Schema(name = "类型")
@NotNull(message = "参数比如传入类型0 代表未完成 1 代表完成")
private Integer type;
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author: tzx
* @Date: 2023/2/7 15:07
*/
@Data
public class MoveRecycleDto {
/**
* 流程id
*/
@NotBlank(message = "流程id 不能为空")
private String processId;
}

View File

@ -0,0 +1,44 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Author: tzx
* @Date: 2022/10/31 15:33
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class MyProcessPageDto extends PageInput {
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* 模板名称
*/
private String name;
/**
* 发起人
*/
private String originator;
/**
* 流水号
*/
private String serialNumber;
}

View File

@ -0,0 +1,60 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 待办任务分页查询参数
*
* @Author: tzx
* @Date: 2022/10/11 16:54
*/
@Data
//@EqualsAndHashCode(callSuper = true)
public class PendingTaskDto {
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* 模板名称
*/
private String name;
/**
* 任务名称
*/
private String taskName;
/**
* 发起人
*/
private String originator;
/**
* 流水号
*/
private String serialNumber;
@Schema(name = "关键词")
@Length(max = 50, message = "关键词长度不能超过50")
private String keyword;
@Schema(name = "排序字段")
private String field;
@Schema(name = "排序方式 asc desc")
private String order;
}

View File

@ -0,0 +1,50 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 待办任务分页查询参数
*
* @Author: tzx
* @Date: 2022/10/11 16:54
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class PendingTaskPageDto extends PageInput {
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* 模板名称
*/
private String name;
/**
* 任务名称
*/
private String taskName;
/**
* 发起人
*/
private String originator;
/**
* 流水号
*/
private String serialNumber;
}

View File

@ -0,0 +1,37 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2023/5/26 10:04
*/
@Data
public class ReLaunchDto {
@Schema(name = "流程id")
@NotBlank(message = "流程id不能为空")
private String processId;
@Schema(name = "工作流模板id")
@NotBlank(message = "工作流模板id")
private String schemaId;
@Schema(name = "表单数据")
@NotNull(message = "表单数据不能为空")
private Map<String, Map<String,Object>> formData;
@Schema(name = "关联任务信息")
private List<LaunchRelationTaskDto> relationTasks;
@Schema(name = "所有上传文件的文件夹id")
private List<Long> fileFolderIds;
@Schema(name ="是否是老版本表单")
private Map<String,Boolean> isOldSystem;
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/2/10 14:13
*/
@Data
public class RecycleDeleteDto {
@Schema(name = "流程id")
@NotNull(message = "流程id 不能为空!")
private List<String> processIds;
}

View File

@ -0,0 +1,43 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Author: tzx
* @Date: 2022/11/3 10:09
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RecycleProcessPageDto extends PageInput {
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
* 模板名称
*/
private String name;
/**
* 发起人
*/
private String initiator;
/**
* 流水号
*/
private String serialNumber;
}

View File

@ -0,0 +1,20 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author: tzx
* @Date: 2022/12/29 16:57
*/
@Data
public class RejectNodeDto {
@NotBlank(message = "流程id不能为空!")
private String processId;
// @NotBlank(message = "任务id不能为空!")
private String taskId;
}

View File

@ -0,0 +1,15 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/10/27 18:17
*/
@Data
public class RelationTaskInfoDto {
/**
* 任务id
*/
private String taskId;
}

View File

@ -0,0 +1,42 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @Author: tzx
* @Date: 2022/10/27 14:26
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RelationTaskPageDto extends PageInput {
/**
* 模板id
*/
@NotNull(message = "模板id 不能为空")
private Long schemaId;
/**
* 关联模板id
*/
@NotNull(message = "关联模板id 不能为空")
private Long relationSchemaId;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
}

View File

@ -0,0 +1,26 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author: tzx
* @Date: 2023/2/7 15:14
*/
@Data
public class RestartDto {
/**
* 流程模板id
*/
@NotBlank(message = "模板id 不能为空!")
private String schemaId;
/**
* 流程id
*/
@NotBlank(message = "流程id 不能为空!")
private String processId;
}

View File

@ -0,0 +1,28 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/11/4 10:03
*/
@Data
public class SaveDraftDto {
@Schema(name = "工作流模板id")
private Long schemaId;
@Schema(name = "流程任务id")
private String taskId;
@Schema(name = "数据id")
private String dataId;
@Schema(name = "表单数据")
@NotNull(message = "表单数据不能为空")
private Map<String, Map<String, Object>> formData;
}

View File

@ -0,0 +1,23 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import java.util.List;
/**
* @Author: tzx
* @Date: 2022/11/16 10:09
*/
@Data
public class SetAssigneeDto {
/**
* 任务id
*/
private String taskId;
/**
* 审核人
*/
private List<String> assignees;
}

View File

@ -0,0 +1,13 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/11/16 10:31
*/
@Data
public class SetSuspendedDto {
private String processId;
}

View File

@ -0,0 +1,15 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Author: tzx
* @Date: 2023/3/20 10:03
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SpecialMenuPageDto extends PageInput {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author: tzx
* @Date: 2022/12/29 17:00
*/
@Data
public class TransferDto {
@NotBlank(message = "任务id不能为空")
private String taskId;
@NotBlank(message = "转办人id 不能为空!")
private String userId;
}

View File

@ -0,0 +1,41 @@
package com.xjrsoft.workflow.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author apple
*/
@Data
public class UpdateDelegateDto implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
@Schema(name = "被委托人")
@NotNull(message = "必须选择被委托人")
private String delegateUserIds;
@Schema(name = "开始时间")
@NotNull(message = "开始时间必须选择")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@Schema(name = "结束时间")
@NotNull(message = "结束时间必须选择")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@Schema(name = "说明备注")
private String remark;
@Schema(name = "所委托模板ids")
@NotNull(message = "必须选择所委托的工作流模板")
private String schemaIds;
}

View File

@ -0,0 +1,27 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/11/4 10:48
*/
@Data
public class UpdateDraftDto {
@Schema(name = "草稿id")
@NotNull(message = "草稿id")
private Long id;
@Schema(name = "工作流模板id")
@NotNull(message = "工作流模板id")
private Long schemaId;
@Schema(name = "表单数据")
@NotNull(message = "表单数据不能为空")
private Map<String, Map<String, Object>> formData;
}

View File

@ -0,0 +1,59 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.system.dto.UpdateMenuDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: tzx
* @Date: 2023/3/20 11:08
*/
@Data
public class UpdateSpecialMenuDto {
@Schema(name = "专项菜单id ")
@NotNull(message = "专项菜单id")
private Long id;
@Schema(name = "功能名称")
@NotBlank(message = "功能名称不能为空!")
@Length(min = 1, max = 50, message = "功能名称不能超过50个字符")
private String name;
@Schema(name = "功能编码")
@NotBlank(message = "功能编码不能为空!")
@Length(min = 1, max = 50, message = "功能编码不能超过50个字符")
private String code;
@Schema(name = "菜单配置")
@NotNull(message = "菜单配置不能为空!")
@Valid
private UpdateMenuDto menuInfo;
@Schema(name = "模板配置 ")
@NotBlank(message = "模板配置不能为空!")
private String schemaId;
@Schema(name = "模板权限类型 0 所有 1 指定")
private Integer schemaAuthType;
@Schema(name = "专项菜单使用人 如果 schema_auth_type == 1 才会有")
private String schemaAuthUserId;
@Schema(name = "字段权限 配置 0 所有 1指定")
private Integer fieldAuthType;
@Schema(name = "专项菜单字段权限 指定成员 如果 field_auth_type == 1 才会有")
private String fieldAuthUserId;
@Schema(name = "表单字段配置")
private String fieldConfig;
@Schema(name = "查询配置")
private String queryConfig;
}

View File

@ -0,0 +1,29 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.workflow.model.ProcessConfig;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @Author: tzx
* @Date: 2022/9/21 14:35
*/
@Data
public class UpdateWorkflowSchemaDto implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "流程配置id不能为空")
private Long id;
@NotNull(message = "流程配置不能为空")
private ProcessConfig processConfig;
@NotNull(message = "子节点配置不能为空")
private List<Map<String, Object>> childNodeConfig;
}

View File

@ -0,0 +1,24 @@
package com.xjrsoft.workflow.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author: tzx
* @Date: 2023/2/15 9:02
*/
@Data
public class WithdrawDto {
@Schema(name = "活动Id")
private String activityId;
@Schema(name = "任务Id")
@NotBlank(message = "任务id 不能为空!")
private String processId;
}

View File

@ -0,0 +1,15 @@
package com.xjrsoft.workflow.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author: tzx
* @Date: 2022/12/29 16:57
*/
@Data
public class WithdrawNodeDto {
@NotBlank(message = "流程id不能为空!")
private String processId;
}

View File

@ -0,0 +1,19 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
/**
* @Author: tzx
* @Date: 2022/11/3 16:21
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WorkflowSchemaDraftPageDto extends PageInput {
private LocalDateTime startTime;
private LocalDateTime endTime;
}

View File

@ -0,0 +1,38 @@
package com.xjrsoft.workflow.dto;
import com.xjrsoft.common.core.domain.page.PageInput;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Author: tzx
* @Date: 2022/9/6 14:45
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WorkflowSchemaPageDto extends PageInput {
/**
* 分类
*/
private Long category;
/**
* 名称
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 启用
*/
private Integer enabledMark;
/**
* 是否需要管控流程权限
*/
private Boolean isAuth = Boolean.TRUE;
}

View File

@ -0,0 +1,84 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author tzx
* @since 2023-02-10
*/
@TableName("xjr_workflow_approve_record")
@Tag(name = "WorkflowApproveRecord对象", description = "工作流用户任务审批记录表")
@Data
public class WorkflowApproveRecord implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "主键")
private Long id;
@Schema(name = "模板Id")
private Long schemaId;
@Schema(name = "流程id")
private String processId;
@Schema(name = "任务id")
private String taskId;
@Schema(name = "任务节点的定义key")
private String taskDefinitionKey;
@Schema(name = "任务名")
private String taskName;
@Schema(name = "审批类型")
private Integer approveType;
@Schema(name = "审批结果按钮值")
private String approveResult;
@Schema(name = "审批内容")
private String approveComment;
@Schema(name = "审批人id")
private Long approveUserId;
@Schema(name = "审批人审批时所使用岗位")
private Long approveUserPostId;
@Schema(name = "审批人姓名")
@TableField(exist = false)
private String approveUserName;
@Schema(name = "审批时间")
private LocalDateTime approveTime;
@Schema(name = "签章id")
private Long approveStamp;
@Schema(name = "签章图片url")
@TableField(exist = false)
private String approveStampUrl;
@Schema(name = "流水号")
private Long serialNumber;
@Schema(name = "当前进度")
private Integer currentProgress;
@Schema(name = "发起人id")
private Long startUserId;
}

View File

@ -0,0 +1,63 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 流程传阅信息表
* </p>
*
* @author tzx
* @since 2023-02-09
*/
@TableName("xjr_workflow_circulated")
@Tag(name = "WorkflowCirculated对象", description = "流程传阅信息表")
@Data
public class WorkflowCirculated implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "主键")
private Long id;
@Schema(name = "流程id")
private String processId;
@Schema(name = "流程id")
private String processName;
@Schema(name = "任务id")
private String taskId;
@Schema(name = "任务名")
private String taskName;
@Schema(name = "模板id")
private Long schemaId;
@Schema(name = "流水号")
private Long serialNumber;
@Schema(name = "当前进度")
private Integer currentProgress;
@Schema(name = "发起人id")
private Long startUserId;
@Schema(name = "传阅人的用户id")
private Long circulatedUserId;
@Schema(name = "发起时间")
private LocalDateTime createTime;
@Schema(name = "是否已读")
private Integer isRead;
}

View File

@ -0,0 +1,53 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjrsoft.common.core.domain.base.AuditEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 流程委托
* </p>
*
* @author tzx
* @since 2022-11-05
*/
@TableName("xjr_workflow_delegate")
@Tag(name = "WorkflowDelegate对象", description = "流程委托")
@Data
@EqualsAndHashCode(callSuper = true)
public class WorkflowDelegate extends AuditEntity implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
@Schema(name = "委托人")
private Long userId;
@Schema(name = "被委托人")
private String delegateUserIds;
@Schema(name = "被委托人名称")
private String delegateUserNames;
@Schema(name = "委托模板ids 逗号隔开")
private String schemaIds;
@Schema(name = "开始时间")
private LocalDateTime startTime;
@Schema(name = "结束时间")
private LocalDateTime endTime;
@Schema(name = "说明备注")
private String remark;
}

View File

@ -0,0 +1,36 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjrsoft.common.core.domain.base.AuditEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 流程发起草稿
* @Author: tzx
* @Date: 2022/11/4 9:59
*/
@TableName("xjr_workflow_draft")
@Tag(name = "WorkflowSchema对象", description = "流程模板表")
@Data
@EqualsAndHashCode(callSuper = true)
public class WorkflowDraft extends AuditEntity {
@Schema(name = "主键")
private Long id;
@Schema(name = "模板id")
private Long schemaId;
@Schema(name = "流程任务id")
private String taskId;
@Schema(name = "数据id")
private String dataId;
@Schema(name = "表单数据")
private String formData;
}

View File

@ -0,0 +1,76 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 工作流 拓展表
* id 必须自增 用于计算流水号!!!!!!!!!!!!!!!!
* </p>
*
* @author tzx
* @since 2022-10-11
*/
@TableName("xjr_workflow_extra")
@Tag(name = "WorkflowExtra对象", description = "")
@Data
public class WorkflowExtra implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "id")
private Long id;
@Schema(name = "流水号")
private Long serialNumber;
@Schema(name = "流程名")
private String processName;
@Schema(name = "任务id")
private String taskId;
@Schema(name = "任务name")
private String taskName;
@Schema(name = "任务keyXML中的key数据库中的 TASK_DEF_KEY_")
private String taskKey;
@Schema(name = "进度")
private Integer currentProgress;
@Schema(name = "流程模板id")
private Long schemaId;
@Schema(name = "流程模板名称")
private String schemaName;
@Schema(name = "流程id")
private String processId;
@Schema(name = "发起人id")
private Long startUserId;
@Schema(name = "发起人名")
private String startUserName;
@Schema(name = "开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss[.SSS]")
private LocalDateTime startTime;
@Schema(name = "结束时间(审批时间)")
private LocalDateTime endTime;
@Schema(name = "任务发起时间")
private LocalDateTime launchTime;
@Schema(name = "审批人(如果是多实例 默认是一个)")
private String approveUserIds;
}

View File

@ -0,0 +1,43 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 工作流 流程 与 表单关联表
* </p>
*
* @author tzx
* @since 2023-03-27
*/
@TableName("xjr_workflow_form_relation")
@Tag(name = "WorkflowFormRelation对象", description = "工作流 流程 与 表单关联表")
@Data
public class WorkflowFormRelation implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
@Schema(name = "流程id")
private String processId;
//
// @Schema(name = "流程id")
// private String taskId;
@Schema(name = "表单idformTemplateId")
private Long formId;
@Schema(name = "表单配置key formKey 属性 用于区分同一template 多个表单数据")
private String formKey;
@Schema(name = "表单数据id")
private String formKeyValue;
}

View File

@ -0,0 +1,60 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 工作流 流转记录信息
* </p>
*
* @author tzx
* @since 2022-11-10
*/
@TableName("xjr_workflow_record")
@Tag(name = "流转记录对象", description = "工作流 流转记录信息")
@Data
public class WorkflowRecord implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
@Schema(name = "节点id")
private String nodeId;
@Schema(name = "节点类型")
private String nodeType;
@Schema(name = "节点名称")
private String nodeName;
@Schema(name = "节点多实例类型(节点审批类型)")
private Integer nodeMultiType;
@Schema(name = "模板id")
private Long schemaId;
@Schema(name = "流程id")
private String processId;
@Schema(name = "审批信息")
private String message;
@Schema(name = "记录时间")
private LocalDateTime recordTime;
@Schema(name = "传阅信息")
private String circulateMessage;
@TableField(fill = FieldFill.INSERT)
private Long createUserId;
}

View File

@ -0,0 +1,67 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjrsoft.common.core.domain.base.AuditEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
* 流程模板表
* </p>
*
* @author tzx
* @since 2022-07-04
*/
@TableName("xjr_workflow_schema")
@Tag(name = "WorkflowSchema对象", description = "流程模板表")
@Data
@EqualsAndHashCode(callSuper = true)
public class WorkflowSchema extends AuditEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "主键")
private Long id;
@Schema(name = "流程编码")
private String code;
@Schema(name = "流程模板名称")
private String name;
@Schema(name = "流程分类")
private Long category;
@Schema(name = "流程定义Id")
private String definitionId;
@Schema(name = "流程定义Key")
private String definitionKey;
@Schema(name = "部署ID")
private String deploymentId;
@Schema(name = "是否在App上允许发起 1允许 2不允许")
private Integer appShow;
@Schema(name = "表单id")
private Long formId;
@Schema(name = "备注")
private String remark;
@Schema(name = "模板内容")
private String xmlContent;
@Schema(name = "模板Json")
private String jsonContent;
@Schema(name = "流程设计图")
private String workflowChat;
}

View File

@ -0,0 +1,40 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 流程模板权限
* </p>
*
* @author tzx
* @since 2022-07-04
*/
@TableName("xjr_workflow_schema_auth")
@Tag(name = "WorkflowSchemaAuth对象", description = "流程模板权限")
@Data
public class WorkflowSchemaAuth implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "主键")
private Long id;
@Schema(name = "模板信息id")
private Long schemaId;
@Schema(name = "对应主键Id")
private Long objId;
@Schema(name = "对象名称")
private String objName;
@Schema(name = "对应对象类型 0用户 1 角色 2 岗位 -1所有人")
private Integer objType;
}

View File

@ -0,0 +1,42 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjrsoft.common.core.domain.base.AuditEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 流程模板草稿
* </p>
*
* @author tzx
* @since 2022-07-04
*/
@TableName("xjr_workflow_schema_draft")
@Tag(name = "WorkflowSchemaDraft对象", description = "流程模板草稿")
@Data
@EqualsAndHashCode(callSuper = false)
public class WorkflowSchemaDraft extends AuditEntity {
@Schema(name = "主键")
private Long id;
@Schema(name = "流程编码")
private String code;
@Schema(name = "流程模板名称")
private String name;
@Schema(name = "备注")
private String remark;
@Schema(name = "模板内容")
private String xmlContent;
@Schema(name = "模板Json")
private String jsonContent;
}

View File

@ -0,0 +1,58 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xjrsoft.common.core.domain.base.AuditEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
* 流程模板历史记录表
* </p>
*
* @author tzx
* @since 2022-11-16
*/
@TableName("xjr_workflow_schema_history")
@Tag(name = "WorkflowSchemaHistory对象", description = "流程模板历史记录表")
@Data
@EqualsAndHashCode(callSuper = true)
public class WorkflowSchemaHistory extends AuditEntity implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
@Schema(name = "工作流模板id")
private Long schemaId;
@Schema(name = "版本")
private Integer version;
@Schema(name = "是否为活动版本")
private Integer activityFlag;
@Schema(name = "xml内容")
private String xmlContent;
@Schema(name = "json内容")
private String jsonContent;
@Schema(name = "流程图")
private String workflowChat;
@Schema(name = "流程定义Id")
private String definitionId;
@Schema(name = "流程定义Key")
private String definitionKey;
@Schema(name = "部署ID")
private String deploymentId;
}

View File

@ -0,0 +1,58 @@
package com.xjrsoft.workflow.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 专项菜单表
* </p>
*
* @author tzx
* @since 2023-03-20
*/
@TableName("xjr_workflow_special_menu")
@Tag(name = "WorkflowSpecialMenu对象", description = "专项菜单表")
@Data
public class WorkflowSpecialMenu implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(name = "主键")
private Long id;
@Schema(name = "功能编码")
private String code;
@Schema(name = "功能名称")
private String name;
@Schema(name = "菜单id")
private Long menuId;
@Schema(name = "模板id")
private String schemaId;
@Schema(name = "模板权限类型 0 所有 1 指定")
private Integer schemaAuthType;
@Schema(name = "专项菜单使用人 如果 schema_auth_type == 1 才会有")
private String schemaAuthUserId;
@Schema(name = "字段权限 配置 0 所有 1指定")
private Integer fieldAuthType;
@Schema(name = "专项菜单字段权限 指定成员 如果 field_auth_type == 1 才会有")
private String fieldAuthUserId;
@Schema(name = "表单字段配置")
private String fieldConfig;
@Schema(name = "查询配置")
private String queryConfig;
}

View File

@ -0,0 +1,21 @@
package com.xjrsoft.workflow.fallback;
import com.xjrsoft.workflow.client.IHistoryClient;
import com.xjrsoft.workflow.vo.HistoryProcessInstanceVo;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Set;
/**
* @Author: tzx
* @Date: 2023/10/28 20:06
*/
@Component
public class HistoryClientFallBack implements IHistoryClient {
@Override
public List<HistoryProcessInstanceVo> getProcessInstanceListFeign(Set<String> processIds) {
return null;
}
}

View File

@ -0,0 +1,19 @@
package com.xjrsoft.workflow.fallback;
import com.xjrsoft.workflow.client.ITaskClient;
import com.xjrsoft.workflow.vo.TaskInstanceVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/10/28 20:24
*/
@Component
public class TaskClientFallBack implements ITaskClient {
@Override
public List<TaskInstanceVo> getActiveTaskInstanceListFeign(String[] processIdArrays) {
return null;
}
}

View File

@ -0,0 +1,24 @@
package com.xjrsoft.workflow.fallback;
import com.xjrsoft.workflow.client.IWorkflowFormRelationClient;
import com.xjrsoft.workflow.entity.WorkflowFormRelation;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author: tzx
* @Date: 2023/10/19 16:17
*/
@Component
public class WorkflowFormRelationClientFallBack implements IWorkflowFormRelationClient {
@Override
public List<WorkflowFormRelation> getWorkflowFormRelationFeign(Long formId, String formKeyValue) {
return null;
}
@Override
public List<WorkflowFormRelation> getWorkflowFormRelationBatchFeign(Long formId, List<Object> formKeyValues) {
return null;
}
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.workflow.fallback;
import com.xjrsoft.workflow.client.IWorkflowSchemaClient;
import com.xjrsoft.workflow.entity.WorkflowSchema;
import org.springframework.stereotype.Component;
/**
* @Author: tzx
* @Date: 2023/10/28 19:59
*/
@Component
public class WorkflowSchemaClientFallBack implements IWorkflowSchemaClient {
@Override
public WorkflowSchema getWorkflowSchemaByFormIdFeign(Long formId) {
return null;
}
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.workflow.entity.WorkflowApproveRecord;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author tzx
* @since 2023-02-10
*/
@Mapper
public interface WorkflowApproveRecordMapper extends MPJBaseMapper<WorkflowApproveRecord> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.workflow.entity.WorkflowCirculated;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 流程传阅信息表 Mapper 接口
* </p>
*
* @author tzx
* @since 2023-02-09
*/
@Mapper
public interface WorkflowCirculatedMapper extends MPJBaseMapper<WorkflowCirculated> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjrsoft.workflow.entity.WorkflowDelegate;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 流程委托 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-11-05
*/
@Mapper
public interface WorkflowDelegateMapper extends BaseMapper<WorkflowDelegate> {
}

View File

@ -0,0 +1,14 @@
package com.xjrsoft.workflow.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.workflow.entity.WorkflowDraft;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: tzx
* @Date: 2022/11/4 10:01
*/
@Mapper
public interface WorkflowDraftMapper extends MPJBaseMapper<WorkflowDraft> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjrsoft.workflow.entity.WorkflowExtra;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author tzx
* @since 2022-10-11
*/
@Mapper
public interface WorkflowExtraMapper extends BaseMapper<WorkflowExtra> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjrsoft.workflow.entity.WorkflowFormRelation;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 工作流 流程 与 表单关联表 Mapper 接口
* </p>
*
* @author tzx
* @since 2023-03-27
*/
@Mapper
public interface WorkflowFormRelationMapper extends BaseMapper<WorkflowFormRelation> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjrsoft.workflow.entity.WorkflowRecord;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 工作流 流转记录信息 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-11-10
*/
@Mapper
public interface WorkflowRecordMapper extends BaseMapper<WorkflowRecord> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjrsoft.workflow.entity.WorkflowSchemaAuth;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 流程模板权限 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-07-04
*/
@Mapper
public interface WorkflowSchemaAuthMapper extends BaseMapper<WorkflowSchemaAuth> {
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.workflow.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjrsoft.workflow.entity.WorkflowSchemaDraft;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 流程草稿表 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-11-03
*/
@Mapper
public interface WorkflowSchemaDraftMapper extends BaseMapper<WorkflowSchemaDraft> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.workflow.entity.WorkflowSchemaHistory;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 流程模板历史记录表 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-11-16
*/
@Mapper
public interface WorkflowSchemaHistoryMapper extends MPJBaseMapper<WorkflowSchemaHistory> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.workflow.entity.WorkflowSchema;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 流程模板表 Mapper 接口
* </p>
*
* @author tzx
* @since 2022-07-04
*/
@Mapper
public interface WorkflowSchemaMapper extends MPJBaseMapper<WorkflowSchema> {
}

View File

@ -0,0 +1,18 @@
package com.xjrsoft.workflow.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.workflow.entity.WorkflowSpecialMenu;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 专项菜单表 Mapper 接口
* </p>
*
* @author tzx
* @since 2023-03-20
*/
@Mapper
public interface WorkflowSpecialMenuMapper extends MPJBaseMapper<WorkflowSpecialMenu> {
}

View File

@ -0,0 +1,15 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
@Data
public class Api {
/**
* 是否启用
*/
private Boolean enabled;
/**
* apiConfig
*/
private ApiConfig apiConfig;
}

View File

@ -0,0 +1,43 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
import java.util.List;
/**
* @Author: tzx
* @Date: 2022/12/15 10:56
*/
@Data
public class ApiConfig {
/**
* 唯一标识
*/
private String id;
/**
* magic-api name
*/
private String name;
/**
* magic-api 请求方法
*/
private String method;
/**
* param 参数配置
*/
private List<ApiRequestParamsConfig> requestParamsConfigs;
/**
* body 参数配置
*/
private List<ApiRequestParamsConfig> requestBodyConfigs;
/**
* Header 参数配置
*/
private List<ApiRequestParamsConfig> requestHeaderConfigs;
}

View File

@ -0,0 +1,48 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/12/15 11:06
*/
@Data
public class ApiRequestParamsConfig {
/**
* 唯一标识
*/
private String id;
/**
* 名称
*/
private String name;
/**
* 参数类型 0 value 1 流程数据
*/
private String dataType;
/**
* 赋值类型 value | processParameter | originator | formData
*/
private String assignmentType;
/**
* 值
*/
private String value;
/**
* 默认值
*/
private String defaultValue;
/**
* 赋值配置
*/
private String config;
}

View File

@ -0,0 +1,16 @@
package com.xjrsoft.workflow.model;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 审批人配置
* @Author: tzx
* @Date: 2022/9/22 16:17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Tag(name = "工作流审批人配置")
public class ApproverConfig extends MemberConfig {
}

View File

@ -0,0 +1,24 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
import java.util.List;
/**
* 参数|变量 操作
* @Author: tzx
* @Date: 2022/9/22 16:01
*/
@Data
public class AssignmentConfig {
/**
* 表单赋值配置
*/
private List<FormAssignmentConfig> formAssignmentConfigs;
/**
* 参数赋值
*/
private List<ParamAssignmentConfig> paramAssignmentConfigs;
}

View File

@ -0,0 +1,23 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
import java.util.List;
/**
* 权限设置
* @Author: tzx
* @Date: 2022/9/16 15:19
*/
@Data
public class AuthConfig {
/**
* 权限配置 0 所有人 1 指定人员
*/
private Integer authType = 0;
/**
* 权限成员配置
*/
private List<MemberConfig> authMemberConfigs;
}

View File

@ -0,0 +1,14 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 指定人员 的配置
* @Author: tzx
* @Date: 2022/9/16 15:50
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class AuthMemberConfig extends MemberConfig {
}

View File

@ -0,0 +1,72 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
/**
* 按钮配置
* @Author: tzx
* @Date: 2022/9/23 9:45
*/
@Data
public class ButtonConfig {
/**
* 是否为默认按钮
*/
private Boolean isDefault;
/**
* 是否选中
*/
private Boolean checked;
/**
* 审批类型 0 同意 1 拒绝 2 驳回 3 结束 4 其他(用户自定义按钮)
*/
private Integer approveType;
/**
* 按钮类型 0 流转按钮 1 功能按钮
*/
private Integer buttonType;
/**
* 按钮名
*/
private String buttonName;
/**
* 按钮编码
*/
private String buttonCode;
/**
* 按钮操作 0 允许驳回到任意流转过的节点 1只允许驳回到上一节点
*/
private Integer buttonOpera;
/**
* 脚本任务类型 0 脚本参数配置 1 sql 0 API
*/
private Integer scriptType;
/**
* 脚本语言 0 javascript 1 groovy
*/
private Integer scriptLanguage;
/**
* 脚本内容
*/
private String scriptContent;
/**
* 脚本内容
*/
private ApiConfig apiConfig;
}

View File

@ -0,0 +1,75 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 外部流程 配置
* @Author: tzx
* @Date: 2022/11/18 10:54
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CallActivityConfig extends NodeBasicConfig {
/**
* 被调用元素外部流程schemaId
*/
private String schemaId;
/**
* 调用类型 0 单实例 1 多实例
*/
private Integer callActivityType;
/**
* 执行类型 0 顺序 1 并行
*/
private Integer executionType;
/**
* 完成条件 0 全部 1 单个 2百分比
*/
private Integer finishType;
/**
* 如果完成条件是百分比 百分比数值
*/
private Integer percentOf;
/**
* 发起人 类型 0 人员 1 API 2表单
*/
private Integer originatorType;
/**
* 如果调用类型多实例 发起人配置方式
*/
private MemberConfig memberConfig;
/**
* 如果调用类型为单实例 子流程发起人
*/
private String originatorNode;
/**
* 多实例发起人配置
*/
private String originatorConfig;
/**
* 入参
*/
private List<CallActivityParamConfig> inParams;
/**
* 出参
*/
private List<CallActivityParamConfig> outParams;
}

View File

@ -0,0 +1,30 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/11/18 11:13
*/
@Data
public class CallActivityParamConfig {
/**
* 来源配置 流程参数 的key
*/
private String source;
/**
* 目标配置 流程参数 的key
*/
private String target;
/**
* 来源配置
*/
// private CallActivitySourceConfig source;
/**
* 目标配置
*/
// private CallActivitySourceConfig target;
}

View File

@ -0,0 +1,16 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/11/18 11:14
*/
@Data
public class CallActivitySourceConfig {
private String nodeId;
private String formId;
private String formField;
}

View File

@ -0,0 +1,12 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
/**
* @Author: tzx
* @Date: 2022/11/21 14:15
*/
@Data
public class CallActivityTargetConfig {
}

View File

@ -0,0 +1,15 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 传阅人配置
* @Author: tzx
* @Date: 2022/9/22 16:35
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CirculateConfig extends MemberConfig {
}

View File

@ -0,0 +1,28 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
/**
* 流转条件配置
* @Author: tzx
* @Date: 2022/10/13 17:02
*/
@Data
public class ConditionConfig {
/**
* 节点key
*/
private String nodeId;
/***
* 节点绑定表单的id
*/
private String formId;
/**
* 表单的字段名
*/
private String formField;
}

View File

@ -0,0 +1,39 @@
package com.xjrsoft.workflow.model;
import lombok.Data;
import java.util.List;
/**
* 会签配置
* @Author: tzx
* @Date: 2022/9/23 9:41
*/
@Data
public class CountersignConfig {
/**
* 多实例类型 0 无 1 同步执行 2 异步执行
*/
private Integer multipleInstancesType = 0;
/**
* 加签 减签
*/
private Boolean addOrRemove;
/**
* 完成条件 0 全部 1 单个 2百分比
*/
private Integer finishType;
/**
* 完成百分比
*/
private Integer percentage;
/**
* 会签 人员配置
*/
private List<CountersignMemberConfig> countersignList;
}

Some files were not shown because too many files have changed in this diff Show More