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 2  
3 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
4 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 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 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 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
4 4 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO;
5 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 7 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
8 8 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
9 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 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
4 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 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 3 import cn.hutool.core.util.StrUtil;
4 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 7 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
8 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmDefinitionCreateReqDTO;
9 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 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 13 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
14 14 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
... ... @@ -30,8 +30,6 @@ import org.springframework.util.ObjectUtils;
30 30 import org.springframework.validation.annotation.Validated;
31 31  
32 32 import javax.annotation.Resource;
33   -import javax.xml.stream.XMLInputFactory;
34   -import javax.xml.stream.XMLStreamReader;
35 33 import java.util.HashSet;
36 34 import java.util.List;
37 35 import java.util.Map;
... ... @@ -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 }
... ...