mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 04:08:43 +08:00 
			
		
		
		
	新增流程任务的规则 BpmTaskRuleDO 表的设计
This commit is contained in:
		@@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.controller.model;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.convert.model.BpmModelConvert;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.model.BpmModelService;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.io.IoUtils;
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.model;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmDefinitionCreateReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.model.dto.BpmModelMetaInfoRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 | 
			
		||||
import org.activiti.engine.impl.persistence.entity.SuspensionState;
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,76 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleScriptEnum;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskRuleTypeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 | 
			
		||||
import lombok.*;
 | 
			
		||||
import org.activiti.engine.repository.Model;
 | 
			
		||||
import org.activiti.engine.repository.ProcessDefinition;
 | 
			
		||||
import org.activiti.engine.task.Task;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Bpm 任务规则表
 | 
			
		||||
 *
 | 
			
		||||
 * @author 芋道源码
 | 
			
		||||
 */
 | 
			
		||||
@TableName(value = "bpm_task_rule", autoResultMap = true)
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
@ToString(callSuper = true)
 | 
			
		||||
@Builder
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
public class BpmTaskRuleDO extends BaseDO {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 编号
 | 
			
		||||
     */
 | 
			
		||||
    @TableId
 | 
			
		||||
    private Long id;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 流程模型编号
 | 
			
		||||
     *
 | 
			
		||||
     * 关联 {@link Model#getId()}
 | 
			
		||||
     */
 | 
			
		||||
    private String modelId;
 | 
			
		||||
    /**
 | 
			
		||||
     * 流程定义编号
 | 
			
		||||
     *
 | 
			
		||||
     * 关联 {@link ProcessDefinition#getId()}
 | 
			
		||||
     */
 | 
			
		||||
    private String processDefinitionId;
 | 
			
		||||
    /**
 | 
			
		||||
     * 流程任务的定义 Key
 | 
			
		||||
     *
 | 
			
		||||
     * 关联 {@link Task#getTaskDefinitionKey()}
 | 
			
		||||
     */
 | 
			
		||||
    private String taskDefinitionKey;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 规则类型
 | 
			
		||||
     *
 | 
			
		||||
     * 枚举 {@link BpmTaskRuleTypeEnum}
 | 
			
		||||
     */
 | 
			
		||||
    private Integer type;
 | 
			
		||||
    /**
 | 
			
		||||
     * 规则值数组,一般关联指定表的编号
 | 
			
		||||
     * 根据 type 不同,对应的值是不同的:
 | 
			
		||||
     *
 | 
			
		||||
     * 1. {@link BpmTaskRuleTypeEnum#ROLE} 时:角色编号
 | 
			
		||||
     * 2. {@link BpmTaskRuleTypeEnum#DEPT} 时:部门编号
 | 
			
		||||
     * 3. {@link BpmTaskRuleTypeEnum#DEPT_LEADER} 时:部门编号
 | 
			
		||||
     * 4. {@link BpmTaskRuleTypeEnum#USER} 时:用户编号
 | 
			
		||||
     * 5. {@link BpmTaskRuleTypeEnum#USER_GROUP} 时:用户组编号
 | 
			
		||||
     * 6. {@link BpmTaskRuleTypeEnum#SCRIPT} 时:脚本编号,目前通过 {@link BpmTaskRuleScriptEnum#getId()} 标识
 | 
			
		||||
     */
 | 
			
		||||
    @TableField(typeHandler = JacksonTypeHandler.class)
 | 
			
		||||
    private List<Long> values;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,27 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.enums.definition;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * BPM 任务规则的脚本枚举
 | 
			
		||||
 * 目前暂时通过 TODO 硬编码,未来可以考虑 Groovy 动态脚本的方式
 | 
			
		||||
 *
 | 
			
		||||
 * @author 芋道源码
 | 
			
		||||
 */
 | 
			
		||||
@Getter
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
public class BpmTaskRuleScriptEnum {
 | 
			
		||||
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 脚本编号
 | 
			
		||||
     */
 | 
			
		||||
    private final Long id;
 | 
			
		||||
    /**
 | 
			
		||||
     * 脚本描述
 | 
			
		||||
     */
 | 
			
		||||
    private final String desc;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,36 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.enums.definition;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * BPM 任务规则的类型枚举
 | 
			
		||||
 *
 | 
			
		||||
 * @author 芋道源码
 | 
			
		||||
 */
 | 
			
		||||
@Getter
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
public enum BpmTaskRuleTypeEnum {
 | 
			
		||||
 | 
			
		||||
    ROLE(10, "指定角色"),
 | 
			
		||||
 | 
			
		||||
    DEPT(20, "指定部门"),
 | 
			
		||||
    DEPT_LEADER(21, "指定部门的负责人"),
 | 
			
		||||
 | 
			
		||||
    USER(30, "指定用户"),
 | 
			
		||||
 | 
			
		||||
    USER_GROUP(40, "指定用户组"), // TODO 芋艿:预留,暂未实现
 | 
			
		||||
 | 
			
		||||
    SCRIPT(50, "指定脚本"), // 例如说,发起人所在部门的领导、发起人所在部门的领导的领导
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 类型
 | 
			
		||||
     */
 | 
			
		||||
    private final Integer type;
 | 
			
		||||
    /**
 | 
			
		||||
     * 描述
 | 
			
		||||
     */
 | 
			
		||||
    private final String desc;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.service.model;
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.service.definition;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.service.model.dto;
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.service.model.impl;
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
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;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmDefinitionCreateReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.form.BpmFormService;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.model.BpmModelService;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.model.dto.BpmModelMetaInfoRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 | 
			
		||||
@@ -30,8 +30,6 @@ import org.springframework.util.ObjectUtils;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import javax.xml.stream.XMLInputFactory;
 | 
			
		||||
import javax.xml.stream.XMLStreamReader;
 | 
			
		||||
import java.util.HashSet;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
@@ -216,11 +214,11 @@ public class BpmModelServiceImpl implements BpmModelService {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//    public static void main(String[] args) {
 | 
			
		||||
//        // 创建转换对象
 | 
			
		||||
//        BpmnXMLConverter converter = new BpmnXMLConverter();
 | 
			
		||||
//        BpmnModel bpmnModel = converter.convertToBpmnModel(new StringStreamSource(""), true, true);
 | 
			
		||||
//        bpmnModel.getProcesses()
 | 
			
		||||
//    }
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        // 创建转换对象
 | 
			
		||||
        BpmnXMLConverter converter = new BpmnXMLConverter();
 | 
			
		||||
        BpmnModel bpmnModel = converter.convertToBpmnModel(new StringStreamSource(""), true, true);
 | 
			
		||||
        bpmnModel.getProcesses().get(0).getId()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user