Commit 8999b7db3bd31604681fa96a15b5b38bf858faf5
1 parent
645fd762
新增流程任务的规则 BpmTaskRuleDO 表的设计
Showing
8 changed files
with
152 additions
and
15 deletions
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
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 | } |