流程管理新增

This commit is contained in:
2024-05-13 21:12:32 +08:00
parent fb6ce3fc11
commit fc2f2d767a
62 changed files with 596 additions and 64 deletions

View File

@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam;
/**
* 流程实例 Api 接口
*
* @author 芋道源码
* @author hongawen
*/
@FeignClient(value = ServerInfo.BPM,path = "/bpm/processDefinition",fallbackFactory = BpmProcessFeignClientFallbackFactory.class)
public interface BpmProcessFeignClient {

View File

@@ -7,7 +7,7 @@ import lombok.Getter;
/**
* 流程实例/任务的删除原因枚举
*
* @author 芋道源码
* @author hongawen
*/
@Getter
@AllArgsConstructor

View File

@@ -8,7 +8,7 @@ import java.util.Arrays;
/**
* BPM 模型的表单类型的枚举
*
* @author 芋道源码
* @author hongawen
*/
@Getter
@AllArgsConstructor

View File

@@ -8,7 +8,7 @@ import java.util.Arrays;
/**
* 流程实例 ProcessInstance 的状态
*
* @author 芋道源码
* @author hongawen
*/
@Getter
@AllArgsConstructor

View File

@@ -44,19 +44,25 @@ public enum BpmResponseEnum {
REPEAT_CATEGORY_NAME_FORM("A00568", "流程类型名称重复"),
PROCESS_INSTANCE_NOT_EXISTS ("A00568", "流程实例不存在"),
REPEAT_CATEGORY_CODE_FORM("A00568", "流程类型编码重复"),
TASK_IS_PENDING ("A00568", "当前任务处于挂起状态,不能操作"),
REPEAT_SIGN_NAME_FORM("A00568", "流程标识名称重复"),
TASK_TARGET_NODE_NOT_EXISTS ("A00568", " 目标节点不存在"),
REPEAT_SIGN_KEY_FORM("A00568", "流程标识key重复"),
TASK_RETURN_FAIL_SOURCE_TARGET_ERROR ("A00568", "回退任务失败,目标节点是在并行网关上或非同一路线上,不可跳转"),
PROCESS_INSTANCE_NOT_EXISTS("A00568", "流程实例不存在"),
TASK_IS_PENDING("A00568", "当前任务处于挂起状态,不能操作"),
TASK_TARGET_NODE_NOT_EXISTS("A00568", " 目标节点不存在"),
TASK_RETURN_FAIL_SOURCE_TARGET_ERROR("A00568", "回退任务失败,目标节点是在并行网关上或非同一路线上,不可跳转"),
PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS("A00568", "流程取消失败,流程不处于运行中"),
TASK_DELEGATE_FAIL_USER_REPEAT("A00568", "任务委派失败,委派人和当前审批人为同一人"),
TASK_DELEGATE_FAIL_USER_REPEAT("A00568", "任务委派失败,委派人和当前审批人为同一人"),
TASK_DELEGATE_FAIL_USER_NOT_EXISTS("A00568", "任务委派失败,被委派人不存在"),
TASK_DELEGATE_FAIL_USER_NOT_EXISTS("A00568", "任务委派失败,被委派人不存在"),
TASK_TRANSFER_FAIL_USER_REPEAT("A00568", "任务转办失败,转办人和当前审批人为同一人"),

View File

@@ -9,7 +9,7 @@ import lombok.Getter;
*
* 例如说:分配给指定人审批
*
* @author 芋道源码
* @author hongawen
*/
@Getter
@AllArgsConstructor

View File

@@ -3,7 +3,7 @@ package com.njcn.bpm.enums;
/**
* BPMN XML 常量信息
*
* @author 芋道源码
* @author hongawen
*/
public interface BpmnModelConstants {

View File

@@ -9,7 +9,7 @@ package com.njcn.bpm.enums;
* 虽然说HTTP 响应状态码作为业务使用表达能力偏弱,但是使用在系统层面还是非常不错的
* 比较特殊的是,因为之前一直使用 0 作为成功,就不使用 200 啦。
*
* @author 芋道源码
* @author hongawen
*/
public interface GlobalErrorCodeConstants {

View File

@@ -3,7 +3,7 @@ package com.njcn.bpm.enums;
/**
* 可生成 Int 数组的接口
*
* @author 芋道源码
* @author hongawen
*/
public interface IntArrayValuable {

View File

@@ -5,7 +5,7 @@ package com.njcn.bpm.enums;
*
* 考虑到每个 starter 都需要用到该工具类,所以放到 common 模块下的 enums 包下
*
* @author 芋道源码
* @author hongawen
*/
public interface WebFilterOrderEnum {

View File

@@ -7,7 +7,7 @@ import lombok.Data;
* 主要用于 { Model#setMetaInfo(String)} 的存储
*
*
* @author 芋道源码
* @author hongawen
*/
@Data
public class BpmModelMetaInfoRespDTO {

View File

@@ -14,7 +14,7 @@ import java.io.Serializable;
/**
* BPM 流程分类
*
* @author 芋道源码
* @author hongawen
*/
@Data
public class BpmCategoryParam implements Serializable {

View File

@@ -0,0 +1,92 @@
package com.njcn.bpm.pojo.param;
import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.db.bo.BaseEntity;
import com.njcn.web.constant.ValidMessage;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
/**
* <p>
* BPM 流程标识
* </p>
*
* @author hongawen
* @since 2024-05-13
*/
@Data
public class BpmSignParam extends BaseEntity implements Serializable {
/**
* 流程名称
*/
@ApiModelProperty("流程名称")
@NotBlank(message = "流程名称不能为空")
private String name;
/**
* 流程标识key
*/
@ApiModelProperty("流程标识key")
@NotBlank(message = "流程标识key不能为空")
private String signKey;
/**
* 流程查看表单路径
*/
@ApiModelProperty("流程查看表单路径")
@NotBlank(message = "流程查看表单路径不能为空")
private String viewPath;
/**
* 流程创建表单路径
*/
@ApiModelProperty("流程创建表单路径")
private String createPath;
/**
* 更新操作实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
public static class BpmSignUpdateParam extends BpmSignParam {
/**
* 表Id
*/
@ApiModelProperty("id")
@NotBlank(message = ValidMessage.ID_NOT_BLANK)
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
private String id;
}
/**
* 分页查询实体
*/
@Data
@EqualsAndHashCode(callSuper = true)
public static class BpmSignQueryParam extends BaseParam {
@ApiModelProperty("标识名称")
private String name;
@ApiModelProperty("标识key")
private String key;
}
}

View File

@@ -14,7 +14,7 @@ import java.io.Serializable;
/**
* BPM 流程分类 DO
*
* @author 芋道源码
* @author hongawen
*/
@TableName("bpm_category")
@Data

View File

@@ -17,7 +17,7 @@ import java.util.List;
* BPM 工作流的表单定义
* 用于工作流的申请表单,需要动态配置的场景
*
* @author 芋道源码
* @author hongawen
*/
@TableName(value = "bpm_form", autoResultMap = true)
@Data

View File

@@ -0,0 +1,57 @@
package com.njcn.bpm.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* BPM 流程标识
* </p>
*
* @author hongawen
* @since 2024-05-13
*/
@Getter
@Setter
@TableName("bpm_sign")
public class BpmSign extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 流程标识索引
*/
private String id;
/**
* 流程名称
*/
private String name;
/**
* 流程标识key
*/
private String signKey;
/**
* 流程查看表单路径
*/
private String viewPath;
/**
* 流程创建表单路径
*/
private String createPath;
/**
* 状态0-删除 1-正常
*/
private Integer state;
}

View File

@@ -1,13 +1,15 @@
package com.njcn.bpm.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* BPM 流程分类 DO
*
* @author 芋道源码
* @author hongawen
*/
@Data
public class BpmCategoryVO implements Serializable {
@@ -37,5 +39,10 @@ public class BpmCategoryVO implements Serializable {
*/
private Integer sort;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,61 @@
package com.njcn.bpm.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* BPM 流程标识
* </p>
*
* @author hongawen
* @since 2024-05-13
*/
@Data
public class BpmSignVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 流程标识索引
*/
private String id;
/**
* 流程名称
*/
private String name;
/**
* 流程标识key
*/
private String signKey;
/**
* 流程查看表单路径
*/
private String viewPath;
/**
* 流程创建表单路径
*/
private String createPath;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@@ -13,7 +13,7 @@ import java.util.function.Consumer;
* 1. 默认使用 {@link BeanUtil} 作为实现类,虽然不同 bean 工具的性能有差别,但是对绝大多数同学的项目,不用在意这点性能
* 2. 针对复杂的对象转换,可以搜参考 AuthConvert 实现,通过 mapstruct + default 配合实现
*
* @author 芋道源码
* @author hongawen
*/
public class BeanUtils {

View File

@@ -9,7 +9,7 @@ import java.util.Date;
/**
* 时间工具类
*
* @author 芋道源码
* @author hongawen
*/
public class DateUtils {

View File

@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* Key Value 的键值对
*
* @author 芋道源码
* @author hongawen
*/
@Data
@NoArgsConstructor

View File

@@ -15,7 +15,7 @@ import java.util.function.Consumer;
/**
* Map 工具类
*
* @author 芋道源码
* @author hongawen
*/
public class MapUtils {

View File

@@ -8,7 +8,7 @@ import java.math.BigDecimal;
/**
* 数字的工具类,补全 {@link NumberUtil} 的功能
*
* @author 芋道源码
* @author hongawen
*/
public class NumberUtils {

View File

@@ -10,7 +10,7 @@ import java.util.function.Consumer;
/**
* Object 工具类
*
* @author 芋道源码
* @author hongawen
*/
public class ObjectUtils {

View File

@@ -14,7 +14,7 @@ import java.util.regex.Pattern;
/**
* 校验工具类
*
* @author 芋道源码
* @author hongawen
*/
public class ValidationUtils {