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 | 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
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 | 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 | } | ... | ... |