Commit 8999b7db3bd31604681fa96a15b5b38bf858faf5

Authored by YunaiV
1 parent 645fd762

新增流程任务的规则 BpmTaskRuleDO 表的设计

yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/model/BpmModelController.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.controller.model; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.controller.model;
2 2
3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*; 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
4 import cn.iocoder.yudao.adminserver.modules.bpm.convert.model.BpmModelConvert; 4 import cn.iocoder.yudao.adminserver.modules.bpm.convert.model.BpmModelConvert;
5 -import cn.iocoder.yudao.adminserver.modules.bpm.service.model.BpmModelService; 5 +import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
6 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 import cn.iocoder.yudao.framework.common.util.io.IoUtils; 8 import cn.iocoder.yudao.framework.common.util.io.IoUtils;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/model/BpmModelConvert.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.model; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.model;
3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*; 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
4 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO; 4 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO;
5 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmDefinitionCreateReqDTO; 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmDefinitionCreateReqDTO;
6 -import cn.iocoder.yudao.adminserver.modules.bpm.service.model.dto.BpmModelMetaInfoRespDTO; 6 +import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
7 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 7 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
8 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 8 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
9 import org.activiti.engine.impl.persistence.entity.SuspensionState; 9 import org.activiti.engine.impl.persistence.entity.SuspensionState;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/definition/BpmTaskRuleDO.java 0 → 100644
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition;
  2 +
  3 +import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleScriptEnum;
  4 +import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleTypeEnum;
  5 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  6 +import com.baomidou.mybatisplus.annotation.TableField;
  7 +import com.baomidou.mybatisplus.annotation.TableId;
  8 +import com.baomidou.mybatisplus.annotation.TableName;
  9 +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
  10 +import lombok.*;
  11 +import org.activiti.engine.repository.Model;
  12 +import org.activiti.engine.repository.ProcessDefinition;
  13 +import org.activiti.engine.task.Task;
  14 +
  15 +import java.util.List;
  16 +
  17 +/**
  18 + * Bpm 任务规则表
  19 + *
  20 + * @author 芋道源码
  21 + */
  22 +@TableName(value = "bpm_task_rule", autoResultMap = true)
  23 +@Data
  24 +@EqualsAndHashCode(callSuper = true)
  25 +@ToString(callSuper = true)
  26 +@Builder
  27 +@NoArgsConstructor
  28 +@AllArgsConstructor
  29 +public class BpmTaskRuleDO extends BaseDO {
  30 +
  31 + /**
  32 + * 编号
  33 + */
  34 + @TableId
  35 + private Long id;
  36 +
  37 + /**
  38 + * 流程模型编号
  39 + *
  40 + * 关联 {@link Model#getId()}
  41 + */
  42 + private String modelId;
  43 + /**
  44 + * 流程定义编号
  45 + *
  46 + * 关联 {@link ProcessDefinition#getId()}
  47 + */
  48 + private String processDefinitionId;
  49 + /**
  50 + * 流程任务的定义 Key
  51 + *
  52 + * 关联 {@link Task#getTaskDefinitionKey()}
  53 + */
  54 + private String taskDefinitionKey;
  55 +
  56 + /**
  57 + * 规则类型
  58 + *
  59 + * 枚举 {@link BpmTaskRuleTypeEnum}
  60 + */
  61 + private Integer type;
  62 + /**
  63 + * 规则值数组,一般关联指定表的编号
  64 + * 根据 type 不同,对应的值是不同的:
  65 + *
  66 + * 1. {@link BpmTaskRuleTypeEnum#ROLE} 时:角色编号
  67 + * 2. {@link BpmTaskRuleTypeEnum#DEPT} 时:部门编号
  68 + * 3. {@link BpmTaskRuleTypeEnum#DEPT_LEADER} 时:部门编号
  69 + * 4. {@link BpmTaskRuleTypeEnum#USER} 时:用户编号
  70 + * 5. {@link BpmTaskRuleTypeEnum#USER_GROUP} 时:用户组编号
  71 + * 6. {@link BpmTaskRuleTypeEnum#SCRIPT} 时:脚本编号,目前通过 {@link BpmTaskRuleScriptEnum#getId()} 标识
  72 + */
  73 + @TableField(typeHandler = JacksonTypeHandler.class)
  74 + private List<Long> values;
  75 +
  76 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/definition/BpmTaskRuleScriptEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.enums.definition;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Getter;
  5 +
  6 +/**
  7 + * BPM 任务规则的脚本枚举
  8 + * 目前暂时通过 TODO 硬编码,未来可以考虑 Groovy 动态脚本的方式
  9 + *
  10 + * @author 芋道源码
  11 + */
  12 +@Getter
  13 +@AllArgsConstructor
  14 +public class BpmTaskRuleScriptEnum {
  15 +
  16 + ;
  17 +
  18 + /**
  19 + * 脚本编号
  20 + */
  21 + private final Long id;
  22 + /**
  23 + * 脚本描述
  24 + */
  25 + private final String desc;
  26 +
  27 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/definition/BpmTaskRuleTypeEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.enums.definition;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Getter;
  5 +
  6 +/**
  7 + * BPM 任务规则的类型枚举
  8 + *
  9 + * @author 芋道源码
  10 + */
  11 +@Getter
  12 +@AllArgsConstructor
  13 +public enum BpmTaskRuleTypeEnum {
  14 +
  15 + ROLE(10, "指定角色"),
  16 +
  17 + DEPT(20, "指定部门"),
  18 + DEPT_LEADER(21, "指定部门的负责人"),
  19 +
  20 + USER(30, "指定用户"),
  21 +
  22 + USER_GROUP(40, "指定用户组"), // TODO 芋艿:预留,暂未实现
  23 +
  24 + SCRIPT(50, "指定脚本"), // 例如说,发起人所在部门的领导、发起人所在部门的领导的领导
  25 + ;
  26 +
  27 + /**
  28 + * 类型
  29 + */
  30 + private final Integer type;
  31 + /**
  32 + * 描述
  33 + */
  34 + private final String desc;
  35 +
  36 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/model/BpmModelService.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmModelService.java
1 -package cn.iocoder.yudao.adminserver.modules.bpm.service.model; 1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
2 2
3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*; 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/model/dto/BpmModelMetaInfoRespDTO.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/dto/BpmModelMetaInfoRespDTO.java
1 -package cn.iocoder.yudao.adminserver.modules.bpm.service.model.dto; 1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/model/impl/BpmModelServiceImpl.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmModelServiceImpl.java
1 -package cn.iocoder.yudao.adminserver.modules.bpm.service.model.impl; 1 +package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*; 4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
@@ -7,8 +7,8 @@ import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO; @@ -7,8 +7,8 @@ import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO;
7 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService; 7 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmDefinitionCreateReqDTO; 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmDefinitionCreateReqDTO;
9 import cn.iocoder.yudao.adminserver.modules.bpm.service.form.BpmFormService; 9 import cn.iocoder.yudao.adminserver.modules.bpm.service.form.BpmFormService;
10 -import cn.iocoder.yudao.adminserver.modules.bpm.service.model.BpmModelService;  
11 -import cn.iocoder.yudao.adminserver.modules.bpm.service.model.dto.BpmModelMetaInfoRespDTO; 10 +import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
  11 +import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
12 import cn.iocoder.yudao.framework.common.pojo.PageResult; 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 13 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
14 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 14 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
@@ -30,8 +30,6 @@ import org.springframework.util.ObjectUtils; @@ -30,8 +30,6 @@ import org.springframework.util.ObjectUtils;
30 import org.springframework.validation.annotation.Validated; 30 import org.springframework.validation.annotation.Validated;
31 31
32 import javax.annotation.Resource; 32 import javax.annotation.Resource;
33 -import javax.xml.stream.XMLInputFactory;  
34 -import javax.xml.stream.XMLStreamReader;  
35 import java.util.HashSet; 33 import java.util.HashSet;
36 import java.util.List; 34 import java.util.List;
37 import java.util.Map; 35 import java.util.Map;
@@ -216,11 +214,11 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -216,11 +214,11 @@ public class BpmModelServiceImpl implements BpmModelService {
216 } 214 }
217 } 215 }
218 216
219 -// public static void main(String[] args) {  
220 -// // 创建转换对象  
221 -// BpmnXMLConverter converter = new BpmnXMLConverter();  
222 -// BpmnModel bpmnModel = converter.convertToBpmnModel(new StringStreamSource(""), true, true);  
223 -// bpmnModel.getProcesses()  
224 -// } 217 + public static void main(String[] args) {
  218 + // 创建转换对象
  219 + BpmnXMLConverter converter = new BpmnXMLConverter();
  220 + BpmnModel bpmnModel = converter.convertToBpmnModel(new StringStreamSource(""), true, true);
  221 + bpmnModel.getProcesses().get(0).getId()
  222 + }
225 223
226 } 224 }