update - 综合性调整目录结构,以及命令. 并添加 Swagger 响应的注解标识,方便后期直接生成 YAPI 文档
This commit is contained in:
parent
b5ab1dab89
commit
a244d87d78
@ -27,4 +27,10 @@ public interface BpmConstants {
|
||||
String MODEL_META_INFO_PROCESS = "MODEL_PROCESS";
|
||||
String MODEL_META_INFO_FORM = "MODEL_FORM";
|
||||
String BPM_ALLOW_SKIP_USER_TASK = "_INTERNAL_SKIP_USER_TASK";
|
||||
/**
|
||||
* 用于国内审批节点填写审批建议
|
||||
* <p>
|
||||
* 其他类型 @see org.flowable.engine.impl.persistence.entity.CommentEntity
|
||||
*/
|
||||
String COMMENT_TYPE_ADVICE = "advice";
|
||||
}
|
||||
|
||||
@ -3,8 +3,8 @@ package cn.axzo.workflow.core.common.utils;
|
||||
import cn.axzo.workflow.core.common.enums.BpmFlowMultiMode;
|
||||
import cn.axzo.workflow.core.common.enums.BpmFlowNodeType;
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.service.dto.BpmJsonNode;
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmJsonNodeProperty;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.BpmnJsonNode;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.BpmnJsonNodeProperty;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
@ -31,7 +31,7 @@ import static org.flowable.engine.delegate.BaseExecutionListener.EVENTNAME_START
|
||||
@Slf4j
|
||||
public class BpmTransformUtil {
|
||||
|
||||
public static byte[] transformBpmnJsonToXml(BpmJsonNode bpmnJson, Model model) {
|
||||
public static byte[] transformBpmnJsonToXml(BpmnJsonNode bpmnJson, Model model) {
|
||||
|
||||
// JSONObject bpmnJson = (JSONObject) updateReqVO.getBpmnJson();
|
||||
|
||||
@ -48,7 +48,7 @@ public class BpmTransformUtil {
|
||||
}
|
||||
|
||||
List<SequenceFlow> sequenceFlows = Lists.newArrayList();
|
||||
Map<String, BpmJsonNode> childNodeMap = new HashMap<>();
|
||||
Map<String, BpmnJsonNode> childNodeMap = new HashMap<>();
|
||||
|
||||
String lastNode = null;
|
||||
try {
|
||||
@ -82,15 +82,15 @@ public class BpmTransformUtil {
|
||||
}
|
||||
|
||||
public static SequenceFlow sequenceFlow(String from, String to, List<SequenceFlow> sequenceFlows, Map<String,
|
||||
BpmJsonNode> childNodeMap, Process process) {
|
||||
BpmnJsonNode> childNodeMap, Process process) {
|
||||
SequenceFlow flow = new SequenceFlow();
|
||||
String sequenceFlowId = id("sequenceFlow");
|
||||
if (process.getFlowElement(from) != null && process.getFlowElement(from) instanceof ExclusiveGateway) {
|
||||
BpmJsonNode childNode = childNodeMap.get(to);
|
||||
BpmnJsonNode childNode = childNodeMap.get(to);
|
||||
if (childNode != null) {
|
||||
String parentId = childNode.getParentId();
|
||||
if (StringUtils.isNotBlank(parentId)) {
|
||||
BpmJsonNode parentNode = childNodeMap.get(parentId);
|
||||
BpmnJsonNode parentNode = childNodeMap.get(parentId);
|
||||
if (parentNode != null) {
|
||||
if (BpmFlowNodeType.NODE_CONDITION.getType().equals(parentNode.getType())) {
|
||||
sequenceFlowId = parentNode.getId();
|
||||
@ -133,8 +133,8 @@ public class BpmTransformUtil {
|
||||
}
|
||||
|
||||
|
||||
public static String create(String fromId, BpmJsonNode flowNode, Process process, BpmnModel bpmnModel,
|
||||
List<SequenceFlow> sequenceFlows, Map<String, BpmJsonNode> childNodeMap) throws InvocationTargetException, IllegalAccessException {
|
||||
public static String create(String fromId, BpmnJsonNode flowNode, Process process, BpmnModel bpmnModel,
|
||||
List<SequenceFlow> sequenceFlows, Map<String, BpmnJsonNode> childNodeMap) throws InvocationTargetException, IllegalAccessException {
|
||||
String nodeType = flowNode.getType();
|
||||
if (BpmFlowNodeType.NODE_ROUTER.isEqual(nodeType)) {
|
||||
return createExclusiveGatewayBuilder(fromId, flowNode, process, bpmnModel, sequenceFlows, childNodeMap);
|
||||
@ -144,7 +144,7 @@ public class BpmTransformUtil {
|
||||
incoming.put("incoming", Collections.singletonList(fromId));
|
||||
String id = createTask(process, flowNode, sequenceFlows, childNodeMap);
|
||||
// 如果当前任务还有后续任务,则遍历创建后续任务
|
||||
BpmJsonNode children = flowNode.getChildren();
|
||||
BpmnJsonNode children = flowNode.getChildren();
|
||||
if (Objects.nonNull(children) && StringUtils.isNotBlank(children.getId())) {
|
||||
return create(id, children, process, bpmnModel, sequenceFlows, childNodeMap);
|
||||
} else {
|
||||
@ -156,7 +156,7 @@ public class BpmTransformUtil {
|
||||
incoming.put("incoming", Collections.singletonList(fromId));
|
||||
String id = createTask(process, flowNode, sequenceFlows, childNodeMap);
|
||||
// 如果当前任务还有后续任务,则遍历创建后续任务
|
||||
BpmJsonNode children = flowNode.getChildren();
|
||||
BpmnJsonNode children = flowNode.getChildren();
|
||||
if (Objects.nonNull(children) && StringUtils.isNotBlank(children.getId())) {
|
||||
return create(id, children, process, bpmnModel, sequenceFlows, childNodeMap);
|
||||
} else {
|
||||
@ -174,9 +174,9 @@ public class BpmTransformUtil {
|
||||
}
|
||||
|
||||
|
||||
private static String createExclusiveGatewayBuilder(String formId, BpmJsonNode flowNode, Process process,
|
||||
private static String createExclusiveGatewayBuilder(String formId, BpmnJsonNode flowNode, Process process,
|
||||
BpmnModel bpmnModel, List<SequenceFlow> sequenceFlows,
|
||||
Map<String, BpmJsonNode> childNodeMap) throws InvocationTargetException, IllegalAccessException {
|
||||
Map<String, BpmnJsonNode> childNodeMap) throws InvocationTargetException, IllegalAccessException {
|
||||
childNodeMap.put(flowNode.getId(), flowNode);
|
||||
String name = flowNode.getName();
|
||||
String exclusiveGatewayId = flowNode.getId();
|
||||
@ -189,10 +189,10 @@ public class BpmTransformUtil {
|
||||
if (Objects.isNull(flowNode.getBranches()) && Objects.isNull(flowNode.getChildren())) {
|
||||
return exclusiveGatewayId;
|
||||
}
|
||||
List<BpmJsonNode> branches = flowNode.getBranches();
|
||||
List<BpmnJsonNode> branches = flowNode.getBranches();
|
||||
List<String> incoming = Lists.newArrayListWithCapacity(branches.size());
|
||||
List<Map> conditions = Lists.newCopyOnWriteArrayList();
|
||||
for (BpmJsonNode element : branches) {
|
||||
for (BpmnJsonNode element : branches) {
|
||||
if (!ObjectUtils.isEmpty(element.getProperty())) {
|
||||
Boolean typeElse = element.getProperty().getDefaultCondition();
|
||||
if (Boolean.TRUE.equals(typeElse)) {
|
||||
@ -201,7 +201,7 @@ public class BpmTransformUtil {
|
||||
}
|
||||
|
||||
childNodeMap.put(element.getId(), element);
|
||||
BpmJsonNode children = element.getChildren();
|
||||
BpmnJsonNode children = element.getChildren();
|
||||
String nodeName = element.getName();
|
||||
|
||||
if (!ObjectUtils.isEmpty(element.getProperty()) && (Objects.isNull(children) || StringUtils.isBlank(children.getId()))) {
|
||||
@ -246,11 +246,11 @@ public class BpmTransformUtil {
|
||||
}
|
||||
|
||||
|
||||
BpmJsonNode childNode = flowNode.getChildren();
|
||||
BpmnJsonNode childNode = flowNode.getChildren();
|
||||
|
||||
if (Objects.nonNull(childNode) && StringUtils.isNotBlank(childNode.getId())) {
|
||||
String parentId = childNode.getParentId();
|
||||
BpmJsonNode parentChildNode = childNodeMap.get(parentId);
|
||||
BpmnJsonNode parentChildNode = childNodeMap.get(parentId);
|
||||
if (BpmFlowNodeType.NODE_ROUTER.getType().equals(parentChildNode.getType())) {
|
||||
String endExId = parentChildNode.getId() + "end";
|
||||
process.addFlowElement(createExclusiveGateWayEnd(endExId));
|
||||
@ -263,7 +263,7 @@ public class BpmTransformUtil {
|
||||
incomingObj.put("incoming", incoming);
|
||||
FlowElement flowElement = bpmnModel.getFlowElement(incoming.get(0));
|
||||
// 1.0 先进行边连接, 暂存 nextNode
|
||||
BpmJsonNode nextNode = childNode.getChildren();
|
||||
BpmnJsonNode nextNode = childNode.getChildren();
|
||||
childNode.setChildren(null);
|
||||
String identifier = endExId;
|
||||
for (int i = 0; i < incoming.size(); i++) {
|
||||
@ -315,8 +315,8 @@ public class BpmTransformUtil {
|
||||
}
|
||||
|
||||
|
||||
private static String createTask(Process process, BpmJsonNode flowNode, List<SequenceFlow> sequenceFlows,
|
||||
Map<String, BpmJsonNode> childNodeMap) {
|
||||
private static String createTask(Process process, BpmnJsonNode flowNode, List<SequenceFlow> sequenceFlows,
|
||||
Map<String, BpmnJsonNode> childNodeMap) {
|
||||
Map incomingJson = flowNode.getIncoming();
|
||||
List<String> incoming = (List<String>) incomingJson.get("incoming");
|
||||
// 自动生成id
|
||||
@ -346,7 +346,7 @@ public class BpmTransformUtil {
|
||||
|
||||
|
||||
if (!ObjectUtils.isEmpty(flowNode.getProperty()) && Boolean.TRUE.equals(flowNode.getProperty().getIsMultiTask())) {
|
||||
BpmJsonNodeProperty property = flowNode.getProperty();
|
||||
BpmnJsonNodeProperty property = flowNode.getProperty();
|
||||
BpmFlowMultiMode mode = property.getMultiMode();
|
||||
|
||||
MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics =
|
||||
|
||||
@ -1,107 +0,0 @@
|
||||
//package cn.axzo.workflow.core.repository.entity;
|
||||
//
|
||||
//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.Data;
|
||||
//import lombok.ToString;
|
||||
//
|
||||
//import java.util.Date;
|
||||
//import java.util.Map;
|
||||
//
|
||||
//@TableName(value = "bpm_process_instance_ext", autoResultMap = true)
|
||||
//@Data
|
||||
//@ToString(callSuper = true)
|
||||
//public class BpmProcessInstanceExtDO {
|
||||
//
|
||||
// /**
|
||||
// * 编号,自增
|
||||
// */
|
||||
// @TableId
|
||||
// private Long id;
|
||||
// /**
|
||||
// * 流程实例的名字
|
||||
// * <p>
|
||||
// * 冗余 ProcessInstance 的 name 属性,用于筛选
|
||||
// */
|
||||
// private String name;
|
||||
//
|
||||
// /**
|
||||
// * 自定义的流程实例的编号
|
||||
// */
|
||||
// private String customProInstId;
|
||||
// /**
|
||||
// * 流程实例的编号
|
||||
// * <p>
|
||||
// * 关联 ProcessInstance 的 id 属性
|
||||
// */
|
||||
// private String processInstanceId;
|
||||
// /**
|
||||
// * 流程定义的编号
|
||||
// * <p>
|
||||
// * 关联 ProcessDefinition 的 id 属性
|
||||
// */
|
||||
// private String processDefinitionId;
|
||||
// /**
|
||||
// * 流程分类
|
||||
// * <p>
|
||||
// * 冗余 ProcessDefinition 的 category 属性 数据字典 bpm_model_category
|
||||
// */
|
||||
// private String category;
|
||||
// /**
|
||||
// * 流程实例的状态
|
||||
// * <p>
|
||||
// * 枚举 {@link cn.axzo.workflow.core.common.enums.BpmProcessInstanceStatusEnum}
|
||||
// */
|
||||
// private Integer status;
|
||||
// /**
|
||||
// * 流程实例的结果
|
||||
// * <p>
|
||||
// * 枚举 {@link cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum}
|
||||
// */
|
||||
// private Integer result;
|
||||
//
|
||||
// /**
|
||||
// * 创建时间
|
||||
// */
|
||||
// private Date createAt;
|
||||
//
|
||||
// /**
|
||||
// * 结束时间
|
||||
// * <p>
|
||||
// * 冗余 HistoricProcessInstance 的 endTime 属性
|
||||
// */
|
||||
// private Date endTime;
|
||||
//
|
||||
// /**
|
||||
// * 提交的表单值
|
||||
// */
|
||||
// @TableField(typeHandler = JacksonTypeHandler.class)
|
||||
// private Map<String, Object> formVariables;
|
||||
//
|
||||
// /**
|
||||
// * 发起人所在的工作台ID(企业/项目)
|
||||
// * <p>
|
||||
// * 使用租户字段隔离
|
||||
// */
|
||||
// private String tenantId;
|
||||
//
|
||||
// /**
|
||||
// * 发起人的身份ID
|
||||
// */
|
||||
// private String startUserId;
|
||||
//
|
||||
// /**
|
||||
// * 发起人的姓名
|
||||
// */
|
||||
// private String startUserName;
|
||||
//
|
||||
// /**
|
||||
// * 拓展字段:业务自定义数据
|
||||
// */
|
||||
// @TableField(typeHandler = JacksonTypeHandler.class)
|
||||
// private Object ext;
|
||||
//
|
||||
//
|
||||
//}
|
||||
@ -1,98 +0,0 @@
|
||||
//package cn.axzo.workflow.core.repository.entity;
|
||||
//
|
||||
//import cn.axzo.framework.data.mybatisplus.model.BaseOwnEntity;
|
||||
//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.flowable.engine.repository.ProcessDefinition;
|
||||
//
|
||||
//import java.util.List;
|
||||
//import java.util.Map;
|
||||
//
|
||||
///**
|
||||
// * Bpm 流程定义的拓展表
|
||||
// * 主要解决 Activiti {@link ProcessDefinition} 不支持拓展字段,所以新建拓展表
|
||||
// *
|
||||
// * @author 芋道源码
|
||||
// */
|
||||
//@TableName(value = "bpm_process_definition_ext", autoResultMap = true)
|
||||
//@Data
|
||||
//@EqualsAndHashCode(callSuper = true)
|
||||
//@ToString(callSuper = true)
|
||||
//@Builder
|
||||
//@NoArgsConstructor
|
||||
//@AllArgsConstructor
|
||||
//// TODO 该表是否有用有待确定
|
||||
//public class ProcessDefinitionExtDO extends BaseOwnEntity<ProcessDefinitionExtDO> {
|
||||
//
|
||||
// /**
|
||||
// * 编号
|
||||
// */
|
||||
// @TableId
|
||||
// private Long id;
|
||||
// /**
|
||||
// * 流程定义的编号
|
||||
// *
|
||||
// * 关联 ProcessDefinition 的 id 属性
|
||||
// */
|
||||
// private String processDefinitionId;
|
||||
// /**
|
||||
// * 流程模型的编号
|
||||
// *
|
||||
// * 关联 Model 的 id 属性
|
||||
// */
|
||||
// private String modelId;
|
||||
// /**
|
||||
// * 描述
|
||||
// */
|
||||
// private String description;
|
||||
//
|
||||
// /**
|
||||
// * 表单类型
|
||||
// *
|
||||
// * 关联 {@link BpmModelFormTypeEnum}
|
||||
// */
|
||||
// private Integer formType;
|
||||
// /**
|
||||
// * 动态表单编号
|
||||
// * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时
|
||||
// *
|
||||
// * 关联 {@link BpmFormDO#getId()}
|
||||
// */
|
||||
// private Long formId;
|
||||
// /**
|
||||
// * 表单的配置
|
||||
// * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时
|
||||
// *
|
||||
// * 冗余 {@link BpmFormDO#getConf()}
|
||||
// */
|
||||
// private String formConf;
|
||||
// /**
|
||||
// * 表单项的数组
|
||||
// * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时
|
||||
// *
|
||||
// * 冗余 {@link BpmFormDO#getFields()} ()}
|
||||
// */
|
||||
// @TableField(typeHandler = JacksonTypeHandler.class)
|
||||
// private List<String> formFields;
|
||||
// /**
|
||||
// * 自定义表单的提交路径,使用 Vue 的路由地址
|
||||
// * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时
|
||||
// */
|
||||
// private String formCustomCreatePath;
|
||||
// /**
|
||||
// * 自定义表单的查看路径,使用 Vue 的路由地址
|
||||
// * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时
|
||||
// */
|
||||
// private String formCustomViewPath;
|
||||
//
|
||||
// private String tenantId;
|
||||
//
|
||||
// /**
|
||||
// * 拓展字段:业务自定义数据
|
||||
// * */
|
||||
// @TableField(typeHandler = JacksonTypeHandler.class)
|
||||
// private Map<String, Object> ext;
|
||||
//}
|
||||
@ -1,106 +0,0 @@
|
||||
//package cn.axzo.workflow.core.repository.entity;
|
||||
//
|
||||
//import cn.axzo.framework.data.mybatisplus.model.BaseOwnEntity;
|
||||
//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.Data;
|
||||
//import lombok.EqualsAndHashCode;
|
||||
//import lombok.ToString;
|
||||
//
|
||||
//import java.util.Date;
|
||||
//import java.util.Map;
|
||||
//
|
||||
//@EqualsAndHashCode(callSuper = true)
|
||||
//@TableName(value = "bpm_task_ext", autoResultMap = true)
|
||||
//@Data
|
||||
//@ToString(callSuper = true)
|
||||
//public class TaskExtDO extends BaseOwnEntity<TaskExtDO> {
|
||||
//
|
||||
// /**
|
||||
// * 编号,自增
|
||||
// */
|
||||
// @TableId
|
||||
// private Long id;
|
||||
// /**
|
||||
// * 任务的审批人
|
||||
// * <p>
|
||||
// * 冗余 Task 的 assignee 属性
|
||||
// */
|
||||
// private Long assigneeUserId;
|
||||
// /**
|
||||
// * 任务的名字
|
||||
// * <p>
|
||||
// * 冗余 Task 的 name 属性,为了筛选
|
||||
// */
|
||||
// private String name;
|
||||
// /**
|
||||
// * 任务的编号
|
||||
// * <p>
|
||||
// * 关联 Task 的 id 属性
|
||||
// */
|
||||
// private String taskId;
|
||||
// /**
|
||||
// * 任务的结果
|
||||
// * <p>
|
||||
// * 枚举 {@link cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum}
|
||||
// */
|
||||
// private Integer result;
|
||||
// /**
|
||||
// * 审批建议
|
||||
// */
|
||||
// private String comment;
|
||||
// /**
|
||||
// * 任务的结束时间
|
||||
// * <p>
|
||||
// * 冗余 HistoricTaskInstance 的 endTime 属性
|
||||
// */
|
||||
// private Date endTime;
|
||||
//
|
||||
// /**
|
||||
// * 流程实例的编号
|
||||
// * <p>
|
||||
// * 关联 ProcessInstance 的 id 属性
|
||||
// */
|
||||
// private String processInstanceId;
|
||||
// /**
|
||||
// * 流程定义的编号
|
||||
// * <p>
|
||||
// * 关联 ProcessDefinition 的 id 属性
|
||||
// */
|
||||
// private String processDefinitionId;
|
||||
//
|
||||
// /**
|
||||
// * 租户ID
|
||||
// * <p>
|
||||
// * 企业或项目工作台ID
|
||||
// */
|
||||
// private String tenantId;
|
||||
//
|
||||
// /**
|
||||
// * 审批人的安心筑用户身份id
|
||||
// */
|
||||
// private String userId;
|
||||
//
|
||||
// /**
|
||||
// * 参与单位下的具体公司ID
|
||||
// */
|
||||
// private Long companyId;
|
||||
//
|
||||
// /**
|
||||
// * 审批人的姓名
|
||||
// */
|
||||
// private String userName;
|
||||
//
|
||||
// /**
|
||||
// * 审批人的组织架构信息, 施工使用
|
||||
// */
|
||||
// private String organizationalStructureInfo;
|
||||
//
|
||||
// /**
|
||||
// * 拓展字段:业务自定义数据
|
||||
// */
|
||||
// @TableField(typeHandler = JacksonTypeHandler.class)
|
||||
// private Map<String, Object> ext;
|
||||
//}
|
||||
@ -1,18 +0,0 @@
|
||||
//package cn.axzo.workflow.core.repository.mapper;
|
||||
//
|
||||
//import cn.axzo.workflow.core.repository.entity.ProcessDefinitionExtDO;
|
||||
//import org.apache.ibatis.annotations.Mapper;
|
||||
//
|
||||
//import java.util.Collection;
|
||||
//import java.util.List;
|
||||
//
|
||||
//@Mapper
|
||||
//public interface BpmProcessDefinitionExtMapper extends BaseMapperX<ProcessDefinitionExtDO> {
|
||||
// default List<ProcessDefinitionExtDO> selectListByProcessDefinitionIds(Collection<String> processDefinitionIds) {
|
||||
// return selectList("process_definition_id", processDefinitionIds);
|
||||
// }
|
||||
//
|
||||
// default ProcessDefinitionExtDO selectByProcessDefinitionId(String processDefinitionId) {
|
||||
// return selectOne("process_definition_id", processDefinitionId);
|
||||
// }
|
||||
//}
|
||||
@ -1,46 +0,0 @@
|
||||
//package cn.axzo.workflow.core.repository.mapper;
|
||||
//
|
||||
//import cn.axzo.workflow.core.repository.entity.BpmProcessInstanceExtDO;
|
||||
//import cn.axzo.workflow.core.service.dto.request.process.BpmProcessInstanceMyPageReqVO;
|
||||
//import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
//import org.apache.ibatis.annotations.Mapper;
|
||||
//import org.springframework.util.StringUtils;
|
||||
//
|
||||
//@Mapper
|
||||
//public interface BpmProcessInstanceExtMapper extends BaseMapperX<BpmProcessInstanceExtDO> {
|
||||
//
|
||||
// default BpmPageResult<BpmProcessInstanceExtDO> selectPage(BpmProcessInstanceMyPageReqVO reqVO) {
|
||||
//
|
||||
// return selectPage(reqVO, new BpmLambdaQueryWrapperX<BpmProcessInstanceExtDO>()
|
||||
// .likeIfPresent(BpmProcessInstanceExtDO::getName, reqVO.getName())
|
||||
// .eqIfPresent(BpmProcessInstanceExtDO::getCustomProInstId, reqVO.getCustomProInstId())
|
||||
// .eqIfPresent(BpmProcessInstanceExtDO::getProcessInstanceId, reqVO.getProcessDefinitionId())
|
||||
// .eqIfPresent(BpmProcessInstanceExtDO::getCategory, reqVO.getCategory())
|
||||
// .eqIfPresent(BpmProcessInstanceExtDO::getStatus, reqVO.getStatus())
|
||||
// .eqIfPresent(BpmProcessInstanceExtDO::getResult, reqVO.getResult())
|
||||
// .eqIfPresent(BpmProcessInstanceExtDO::getTenantId, reqVO.getTenantId())
|
||||
// .eqIfPresent(BpmProcessInstanceExtDO::getStartUserId, reqVO.getUserId())
|
||||
// .eqIfPresent(BpmProcessInstanceExtDO::getResult, reqVO.getResult())
|
||||
// .betweenIfPresent(BpmProcessInstanceExtDO::getCreateAt, reqVO.getBeginCreateTime(),
|
||||
// reqVO.getEndCreateTime())
|
||||
// .orderByAsc(BpmProcessInstanceExtDO::getStatus)
|
||||
// .orderByDesc(BpmProcessInstanceExtDO::getCreateAt));
|
||||
// }
|
||||
//
|
||||
// default BpmProcessInstanceExtDO selectByProcessInstanceId(String processInstanceId,
|
||||
// String tenantId) {
|
||||
// if (StringUtils.hasLength(tenantId)) {
|
||||
// return selectOne(BpmProcessInstanceExtDO::getProcessInstanceId, processInstanceId,
|
||||
// BpmProcessInstanceExtDO::getTenantId, tenantId);
|
||||
// } else {
|
||||
// return selectOne(BpmProcessInstanceExtDO::getProcessInstanceId, processInstanceId);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// default void updateByProcessInstanceId(BpmProcessInstanceExtDO updateObj) {
|
||||
// update(updateObj, new QueryWrapper<BpmProcessInstanceExtDO>()
|
||||
// .eq("process_instance_id", updateObj.getProcessInstanceId()));
|
||||
// }
|
||||
//
|
||||
//}
|
||||
@ -1,28 +0,0 @@
|
||||
//package cn.axzo.workflow.core.repository.mapper;
|
||||
//
|
||||
//import cn.axzo.workflow.core.repository.entity.TaskExtDO;
|
||||
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
//import org.apache.ibatis.annotations.Mapper;
|
||||
//
|
||||
//import java.util.Collection;
|
||||
//import java.util.List;
|
||||
//
|
||||
//@Mapper
|
||||
//public interface BpmTaskExtMapper extends BaseMapperX<TaskExtDO> {
|
||||
// default void updateByTaskId(TaskExtDO entity) {
|
||||
// update(entity,
|
||||
// new LambdaQueryWrapper<TaskExtDO>().eq(TaskExtDO::getTaskId, entity.getTaskId()));
|
||||
// }
|
||||
//
|
||||
// default List<TaskExtDO> selectListByTaskIds(Collection<String> taskIds) {
|
||||
// return selectList(TaskExtDO::getTaskId, taskIds);
|
||||
// }
|
||||
//
|
||||
// default List<TaskExtDO> selectListByProcessInstanceId(String processInstanceId) {
|
||||
// return selectList("process_instance_id", processInstanceId);
|
||||
// }
|
||||
//
|
||||
// default TaskExtDO selectByTaskId(String taskId) {
|
||||
// return selectOne(TaskExtDO::getTaskId, taskId);
|
||||
// }
|
||||
//}
|
||||
@ -1,55 +0,0 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.model.BpmCategoryItemVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
/**
|
||||
* Category的增删改查
|
||||
*/
|
||||
public interface BpmCategoryService {
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*
|
||||
* @param createDTO {@link #createBpmCategory(BpmCategoryCreateDTO)}
|
||||
* @return insert record count
|
||||
*/
|
||||
int createBpmCategory(BpmCategoryCreateDTO createDTO);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param updateDTO {@link #updateBpmCategory(BpmCategoryUpdateDTO)}
|
||||
* @return update record count
|
||||
*/
|
||||
int updateBpmCategory(BpmCategoryUpdateDTO updateDTO);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param id {@link #deleteBpmCategory(Long)}
|
||||
* @return this row primary key
|
||||
*/
|
||||
int deleteBpmCategory(Long id);
|
||||
|
||||
/**
|
||||
* 查询
|
||||
*
|
||||
* @param findDTO {@link #findBpmCategory(BpmCategoryDTO)}
|
||||
* @return {@link BpmCategoryItemVo}
|
||||
*/
|
||||
Page<BpmCategoryItemVo> findBpmCategory(BpmCategoryDTO findDTO);
|
||||
|
||||
/**
|
||||
* 更新字典状态
|
||||
*
|
||||
* @param id 字典 ID
|
||||
* @param state
|
||||
* @return
|
||||
*/
|
||||
Boolean updateState(Long id, Boolean state);
|
||||
}
|
||||
@ -1,91 +0,0 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAssigneeDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskCommentDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmHistoricTaskInstanceGroupVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmHistoricTaskInstanceVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import org.flowable.form.api.FormInfo;
|
||||
import org.flowable.task.api.Task;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface BpmTaskService {
|
||||
|
||||
/**
|
||||
* 待审核列表
|
||||
*/
|
||||
BpmPageResult<BpmTaskTodoPageItemVO> getTodoTaskPage(BpmTaskTodoPageSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 已完成的审批列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
BpmPageResult<BpmTaskDonePageItemVO> getDoneTaskPage(BpmTaskTodoPageSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 同意
|
||||
*/
|
||||
void approveTask(BpmTaskAuditDTO taskAuditDTO);
|
||||
|
||||
/**
|
||||
* 拒绝
|
||||
*/
|
||||
void rejectTask(BpmTaskAuditDTO taskAuditDTO);
|
||||
|
||||
/**
|
||||
* 获取历史已审批的列表详情
|
||||
* <p>
|
||||
* 扁平的任务列表
|
||||
*/
|
||||
List<BpmHistoricTaskInstanceVO> getHistoricTaskListByProcessInstanceId(String processInstanceId, String tenantId);
|
||||
|
||||
/**
|
||||
* 获取历史已审批的列表详情
|
||||
* <p>
|
||||
* 任务根据定义 ID 分组
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @param tenantId
|
||||
* @return
|
||||
*/
|
||||
List<BpmHistoricTaskInstanceGroupVO> getHistoricTaskListGroupByProcessInstanceId(String processInstanceId,
|
||||
String tenantId);
|
||||
|
||||
/**
|
||||
* 获取实例正在审核的人列表
|
||||
* <p>
|
||||
* FIXME 该接口 web 不能正常响应
|
||||
*/
|
||||
List<Task> getActiveTasksByProcessInstanceId(String processInstanceId);
|
||||
|
||||
/**
|
||||
* 获得流程任务列表
|
||||
* FIXME 该接口 web 不能正常响应
|
||||
*
|
||||
* @param processInstanceIds 流程实例的编号数组
|
||||
* @return 流程任务列表
|
||||
*/
|
||||
List<Task> getTasksByProcessInstanceIds(List<String> processInstanceIds);
|
||||
|
||||
|
||||
FormInfo getTaskFormModel(String taskId);
|
||||
|
||||
/**
|
||||
* 修改审批任务审批人
|
||||
* <p>
|
||||
* 注意:不是委派给其他人
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
void assigneeTask(BpmTaskAssigneeDTO dto);
|
||||
|
||||
void commentTask(BpmTaskCommentDTO dto);
|
||||
|
||||
|
||||
}
|
||||
@ -1,14 +1,14 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.definition.BpmProcessDefinitionUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.process.BpmProcessDefinitionPageDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessDefinitionPageDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessDefinitionVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
import org.flowable.common.engine.impl.db.SuspensionState;
|
||||
import org.flowable.engine.repository.Model;
|
||||
import org.flowable.engine.repository.ProcessDefinition;
|
||||
|
||||
public interface BpmProcessDefinitionService {
|
||||
public interface BpmnProcessDefinitionService {
|
||||
|
||||
|
||||
/**
|
||||
@ -25,7 +25,7 @@ public interface BpmProcessDefinitionService {
|
||||
/**
|
||||
* 获取活跃的流程定义分页
|
||||
*/
|
||||
BpmPageResult<BpmProcessDefinitionVO> getProcessDefinitionPage(BpmProcessDefinitionPageDTO request);
|
||||
BpmPageResult<BpmnProcessDefinitionVO> getProcessDefinitionPage(BpmnProcessDefinitionPageDTO request);
|
||||
|
||||
/**
|
||||
* 获得编号对应的 ProcessDefinition
|
||||
@ -33,7 +33,7 @@ public interface BpmProcessDefinitionService {
|
||||
* @param id 编号
|
||||
* @return 流程定义
|
||||
*/
|
||||
BpmProcessDefinitionVO getProcessDefinition(String id);
|
||||
BpmnProcessDefinitionVO getProcessDefinition(String id);
|
||||
|
||||
/**
|
||||
* 获得 deploymentId 对应的 ProcessDefinition
|
||||
@ -49,7 +49,7 @@ public interface BpmProcessDefinitionService {
|
||||
* @param key 流程定义的标识
|
||||
* @return 流程定义
|
||||
*/
|
||||
BpmProcessDefinitionVO getActiveProcessDefinitionByKey(String key);
|
||||
BpmnProcessDefinitionVO getActiveProcessDefinitionByKey(String key);
|
||||
|
||||
/**
|
||||
* 挂起/激活流程,
|
||||
@ -65,5 +65,5 @@ public interface BpmProcessDefinitionService {
|
||||
*/
|
||||
String getActiveProcessDefinitionId(String tenantId, String category);
|
||||
|
||||
void updateProcessDefinition(BpmProcessDefinitionUpdateDTO dto);
|
||||
void updateProcessDefinition(BpmnProcessDefinitionUpdateDTO dto);
|
||||
}
|
||||
@ -1,9 +1,9 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.process.*;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.*;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstanceVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.form.api.FormInfo;
|
||||
@ -11,14 +11,14 @@ import org.flowable.form.api.FormInfo;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.validation.Valid;
|
||||
|
||||
public interface BpmProcessInstanceService {
|
||||
public interface BpmnProcessInstanceService {
|
||||
|
||||
/**
|
||||
* 发起审核
|
||||
*/
|
||||
String createProcessInstance(BpmProcessInstanceCreateDTO processInstanceCreateDTO);
|
||||
String createProcessInstance(BpmnProcessInstanceCreateDTO processInstanceCreateDTO);
|
||||
|
||||
String createProcessInstanceWithForm(BpmProcessInstanceCreateWithFormDTO createWithFormDTO);
|
||||
String createProcessInstanceWithForm(BpmnProcessInstanceCreateWithFormDTO createWithFormDTO);
|
||||
|
||||
FormInfo getStartFormModel(String processDefinitionId, String processInstanceId);
|
||||
|
||||
@ -27,7 +27,7 @@ public interface BpmProcessInstanceService {
|
||||
*
|
||||
* @return true or false, true mean's cancelled
|
||||
*/
|
||||
Boolean cancelProcessInstance(BpmProcessInstanceCancelDTO processInstanceCancelDTO);
|
||||
Boolean cancelProcessInstance(BpmnProcessInstanceCancelDTO processInstanceCancelDTO);
|
||||
|
||||
/**
|
||||
* 获得流程实例的分页 / 我发起的审批列表
|
||||
@ -35,7 +35,7 @@ public interface BpmProcessInstanceService {
|
||||
* @param pageReqVO 分页请求
|
||||
* @return 流程实例的分页
|
||||
*/
|
||||
BpmPageResult<BpmProcessInstancePageItemVO> getMyProcessInstancePage(@Valid BpmProcessInstanceMyPageReqVO pageReqVO);
|
||||
BpmPageResult<BpmnProcessInstancePageItemVO> getMyProcessInstancePage(@Valid BpmnProcessInstanceMyPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得流程实例
|
||||
@ -82,7 +82,7 @@ public interface BpmProcessInstanceService {
|
||||
* @param tenantId 租户 ID
|
||||
* @return 流程实例
|
||||
*/
|
||||
BpmProcessInstanceVO getProcessInstanceVO(BpmProcessInstanceQueryDTO dto);
|
||||
BpmnProcessInstanceVO getProcessInstanceVO(BpmnProcessInstanceQueryDTO dto);
|
||||
|
||||
void deleteProcessInstance(String id, String reason);
|
||||
|
||||
@ -1,45 +1,45 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.BpmModelBaseVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.model.BpmModelDetailVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.model.BpmnModelDetailVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.FormModelBaseVO;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@ApiOperation("流程模型 - 部署流程")
|
||||
public interface BpmProcessModelService {
|
||||
public interface BpmnProcessModelService {
|
||||
|
||||
/**
|
||||
* 获取流程模型的查询结果
|
||||
*/
|
||||
BpmPageResult<BpmModelBaseVO> getModelPage(BpmModelSearchDTO dto);
|
||||
BpmPageResult<FormModelBaseVO> getModelPage(BpmnModelSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 创建流程,
|
||||
* return modelId的主键
|
||||
*/
|
||||
String createBpmModel(BpmModelCreateDTO dto);
|
||||
String createBpmModel(BpmnModelCreateDTO dto);
|
||||
|
||||
String createBpmModelWithXml(String fileUrl);
|
||||
|
||||
/**
|
||||
* 获取模型
|
||||
*/
|
||||
BpmModelDetailVO getById(String processModelId, @Nullable String tenantId);
|
||||
BpmnModelDetailVO getById(String processModelId, @Nullable String tenantId);
|
||||
|
||||
/**
|
||||
* 获取模型
|
||||
*/
|
||||
BpmModelDetailVO getByKey(String processModelKey, @Nullable String tenantId);
|
||||
BpmnModelDetailVO getByKey(String processModelKey, @Nullable String tenantId);
|
||||
|
||||
/**
|
||||
* 修改流程信息
|
||||
*/
|
||||
void updateBpmModel(BpmModelUpdateDTO dto);
|
||||
void updateBpmModel(BpmnModelUpdateDTO dto);
|
||||
|
||||
/**
|
||||
* 部署模型
|
||||
@ -0,0 +1,77 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAssigneeDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskCommentDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.*;
|
||||
import org.flowable.form.api.FormInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface BpmnTaskService {
|
||||
|
||||
/**
|
||||
* 待审核列表
|
||||
*/
|
||||
BpmPageResult<BpmTaskTodoPageItemVO> getTodoTaskPage(BpmnTaskTodoPageSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 已完成的审批列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
BpmPageResult<BpmnTaskDonePageItemVO> getDoneTaskPage(BpmnTaskTodoPageSearchDTO dto);
|
||||
|
||||
/**
|
||||
* 同意
|
||||
*/
|
||||
void approveTask(BpmnTaskAuditDTO taskAuditDTO);
|
||||
|
||||
/**
|
||||
* 拒绝
|
||||
*/
|
||||
void rejectTask(BpmnTaskAuditDTO taskAuditDTO);
|
||||
|
||||
/**
|
||||
* 获取历史已审批的列表详情
|
||||
* <p>
|
||||
* 扁平的任务列表
|
||||
*/
|
||||
List<BpmnHistoricTaskInstanceVO> getHistoricTaskListByProcessInstanceId(String processInstanceId, String tenantId);
|
||||
|
||||
/**
|
||||
* 获取历史已审批的列表详情
|
||||
* <p>
|
||||
* 任务根据定义 ID 分组
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @param tenantId
|
||||
* @return
|
||||
*/
|
||||
List<BpmnHistoricTaskInstanceGroupVO> getHistoricTaskListGroupByProcessInstanceId(String processInstanceId,
|
||||
String tenantId);
|
||||
|
||||
/**
|
||||
* 获取实例正在审核的人列表
|
||||
* <p>
|
||||
*/
|
||||
List<BpmTaskInstanceVO> getActiveTasksByProcessInstanceId(String processInstanceId, String tenantId);
|
||||
|
||||
|
||||
FormInfo getTaskFormModel(String taskId);
|
||||
|
||||
/**
|
||||
* 修改审批任务审批人
|
||||
* <p>
|
||||
* 注意:不是委派给其他人
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
void assigneeTask(BpmnTaskAssigneeDTO dto);
|
||||
|
||||
void commentTask(BpmnTaskCommentDTO dto);
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.category.CategoryCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.category.CategorySearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.category.CategoryUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.category.CategoryItemVO;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
/**
|
||||
* Category的增删改查
|
||||
*/
|
||||
public interface CategoryService {
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*
|
||||
* @param createDTO {@link #createCategory(CategoryCreateDTO)}
|
||||
* @return insert record count
|
||||
*/
|
||||
int createCategory(CategoryCreateDTO createDTO);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param updateDTO {@link #updateCategory(CategoryUpdateDTO)}
|
||||
* @return update record count
|
||||
*/
|
||||
int updateCategory(CategoryUpdateDTO updateDTO);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param id {@link #deleteCategory(Long)}
|
||||
* @return this row primary key
|
||||
*/
|
||||
int deleteCategory(Long id);
|
||||
|
||||
/**
|
||||
* 查询
|
||||
*
|
||||
* @param findDTO {@link #findCategory(CategorySearchDTO)}
|
||||
* @return {@link CategoryItemVO}
|
||||
*/
|
||||
Page<CategoryItemVO> findCategory(CategorySearchDTO findDTO);
|
||||
|
||||
/**
|
||||
* 更新字典状态
|
||||
*
|
||||
* @param id 字典 ID
|
||||
* @param state
|
||||
* @return
|
||||
*/
|
||||
Boolean updateState(Long id, Boolean state);
|
||||
}
|
||||
@ -11,7 +11,7 @@ import javax.annotation.Nullable;
|
||||
* @author wangli
|
||||
* @since 2023/7/19 16:46
|
||||
*/
|
||||
public interface BpmFormDefinitionService {
|
||||
public interface FormDefinitionService {
|
||||
|
||||
FormDefinitionVO get(String formModeId, @Nullable String tenantId);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.form.FormContentUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.instance.FormContentUpdateDTO;
|
||||
|
||||
/**
|
||||
* 表单实例相关接口
|
||||
@ -8,7 +8,7 @@ import cn.axzo.workflow.core.service.dto.request.form.FormContentUpdateDTO;
|
||||
* @author wangli
|
||||
* @since 2023/7/21 15:19
|
||||
*/
|
||||
public interface BpmFormInstanceService {
|
||||
public interface FormInstanceService {
|
||||
|
||||
/**
|
||||
* 更新表单填写的数据
|
||||
@ -1,10 +1,10 @@
|
||||
package cn.axzo.workflow.core.service;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.model.FormModelCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.model.FormModelUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.BpmModelBaseVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.FormModelBaseVO;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@ -14,17 +14,17 @@ import javax.annotation.Nullable;
|
||||
* @author wangli
|
||||
* @since 2023/7/24 23:47
|
||||
*/
|
||||
public interface BpmFormModelService {
|
||||
public interface FormModelService {
|
||||
|
||||
String createFormModel(FormModelCreateDTO dto);
|
||||
|
||||
void updateFormModel(FormModelUpdateDTO dto);
|
||||
|
||||
BpmPageResult<BpmModelBaseVO> getModelPage(BpmModelSearchDTO dto);
|
||||
BpmPageResult<FormModelBaseVO> getModelPage(BpmnModelSearchDTO dto);
|
||||
|
||||
BpmModelBaseVO getById(String formModelId, @Nullable String tenantId);
|
||||
FormModelBaseVO getById(String formModelId, @Nullable String tenantId);
|
||||
|
||||
BpmModelBaseVO getByKey(String formModelKey, @Nullable String tenantId);
|
||||
FormModelBaseVO getByKey(String formModelKey, @Nullable String tenantId);
|
||||
|
||||
String deployFormModelById(String formModelId, @Nullable String tenantId);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.repository.entity.ExtAxDictDO;
|
||||
import cn.axzo.workflow.core.service.dto.response.model.BpmCategoryItemVo;
|
||||
import cn.axzo.workflow.core.service.dto.response.category.CategoryItemVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
|
||||
@ -14,7 +14,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
public interface BpmCategoryConverter extends EntityConverter<BpmCategoryItemVo, ExtAxDictDO> {
|
||||
public interface BpmCategoryConverter extends EntityConverter<CategoryItemVO, ExtAxDictDO> {
|
||||
|
||||
@Mapping(target = "id", source = "category.id")
|
||||
@Mapping(target = "type", source = "category.type")
|
||||
@ -22,5 +22,5 @@ public interface BpmCategoryConverter extends EntityConverter<BpmCategoryItemVo,
|
||||
@Mapping(target = "value", source = "category.value")
|
||||
@Mapping(target = "remark", source = "category.remark")
|
||||
@Mapping(target = "status", source = "category.status")
|
||||
BpmCategoryItemVo toVo(ExtAxDictDO category);
|
||||
CategoryItemVO toVo(ExtAxDictDO category);
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessDefinitionVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstanceVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
@ -21,7 +21,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
public interface BpmHistoricProcessInstanceConverter extends EntityConverter<BpmProcessInstanceVO,
|
||||
public interface BpmHistoricProcessInstanceConverter extends EntityConverter<BpmnProcessInstanceVO,
|
||||
HistoricProcessInstance> {
|
||||
|
||||
@Mapping(target = "id", source = "entity.id")
|
||||
@ -33,11 +33,11 @@ public interface BpmHistoricProcessInstanceConverter extends EntityConverter<Bpm
|
||||
@Mapping(target = "businessKey", source = "entity.businessKey")
|
||||
@Mapping(target = "variables", source = "entity.processVariables")
|
||||
@Mapping(target = "startUserId", source = "entity.startUserId")
|
||||
BpmProcessInstanceVO toVo(HistoricProcessInstance entity);
|
||||
BpmnProcessInstanceVO toVo(HistoricProcessInstance entity);
|
||||
|
||||
default BpmProcessInstanceVO toVo(HistoricProcessInstance processInstance,
|
||||
BpmProcessDefinitionVO processDefinition) {
|
||||
BpmProcessInstanceVO vo = toVo(processInstance);
|
||||
default BpmnProcessInstanceVO toVo(HistoricProcessInstance processInstance,
|
||||
BpmnProcessDefinitionVO processDefinition) {
|
||||
BpmnProcessInstanceVO vo = toVo(processInstance);
|
||||
vo.setCategory(processDefinition.getCategory());
|
||||
return vo;
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmHistoricTaskInstanceVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnHistoricTaskInstanceVO;
|
||||
import org.flowable.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.mapstruct.Mapper;
|
||||
@ -15,14 +15,14 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
* 历史任务实例的 MapStruts 转换器
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/29 17:50
|
||||
* @since 2023/7/29 17:50
|
||||
*/
|
||||
@Mapper(
|
||||
componentModel = "spring",
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
public interface BpmHistoricTaskInstanceConverter extends EntityConverter<BpmHistoricTaskInstanceVO,
|
||||
public interface BpmHistoricTaskInstanceConverter extends EntityConverter<BpmnHistoricTaskInstanceVO,
|
||||
HistoricTaskInstance> {
|
||||
/**
|
||||
* @see MultiInstanceActivityBehavior#DELETE_REASON_END
|
||||
@ -41,14 +41,14 @@ public interface BpmHistoricTaskInstanceConverter extends EntityConverter<BpmHis
|
||||
@Mapping(target = "durationInMillis", source = "durationInMillis")
|
||||
@Mapping(target = "tenantId", source = "tenantId")
|
||||
@Mapping(target = "deleteReason", source = "deleteReason")
|
||||
BpmHistoricTaskInstanceVO toVo(HistoricTaskInstance entity);
|
||||
BpmnHistoricTaskInstanceVO toVo(HistoricTaskInstance entity);
|
||||
|
||||
|
||||
default List<BpmHistoricTaskInstanceVO> toVosSkipMiEnd(List<HistoricTaskInstance> entities) {
|
||||
default List<BpmnHistoricTaskInstanceVO> toVosSkipMiEnd(List<HistoricTaskInstance> entities) {
|
||||
if (CollectionUtils.isEmpty(entities)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<BpmHistoricTaskInstanceVO> vos = new ArrayList<>();
|
||||
List<BpmnHistoricTaskInstanceVO> vos = new ArrayList<>();
|
||||
entities.stream()
|
||||
.filter(i -> !Objects.equals(DELETE_REASON_END, i.getDeleteReason()))
|
||||
.forEach(i -> vos.add(toVo(i)));
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.model.BpmModelDetailVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.model.BpmnModelDetailVO;
|
||||
import org.flowable.engine.repository.Model;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
public class BpmModelConverter {
|
||||
|
||||
|
||||
public static BpmModelDetailVO convert(Model model) {
|
||||
public static BpmnModelDetailVO convert(Model model) {
|
||||
if (ObjectUtils.isEmpty(model)) {
|
||||
return null;
|
||||
}
|
||||
BpmModelDetailVO detailVO = new BpmModelDetailVO();
|
||||
BpmnModelDetailVO detailVO = new BpmnModelDetailVO();
|
||||
detailVO.setId(model.getId());
|
||||
detailVO.setCreateAt(model.getCreateTime());
|
||||
detailVO.setKey(model.getKey());
|
||||
|
||||
@ -1,51 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessDefinitionPageItemRespVO;
|
||||
import org.flowable.engine.repository.ProcessDefinition;
|
||||
|
||||
public class BpmProcessDefinitionConvert {
|
||||
|
||||
|
||||
// public static List<BpmProcessDefinitionPageItemRespVO> convertList(List<ProcessDefinition> list,
|
||||
// Map<String, Deployment> deploymentMap,
|
||||
// Map<String, Object> processDefinitionDOMap,
|
||||
// Integer version) {
|
||||
// return BpmCollectionUtils.convertList(list, definition -> {
|
||||
// Deployment deployment =
|
||||
// definition.getDeploymentId() != null ? deploymentMap.get(definition.getDeploymentId())
|
||||
// : null;
|
||||
// Object definitionDO = processDefinitionDOMap.get(definition.getId());
|
||||
// return convert(definition, deployment, definitionDO, version);
|
||||
// });
|
||||
// }
|
||||
|
||||
// public static BpmProcessDefinitionPageItemRespVO convert(ProcessDefinition bean, Deployment deployment,
|
||||
// Object processDefinitionExtDO, Integer version) {
|
||||
// BpmProcessDefinitionPageItemRespVO respVO = convert(bean);
|
||||
// respVO.setSyncModelPool(!Objects.nonNull(version) || bean.getVersion() <= version);
|
||||
// respVO.setSuspensionState(bean.isSuspended() ? SuspensionState.SUSPENDED.getStateCode()
|
||||
// : SuspensionState.ACTIVE.getStateCode());
|
||||
// if (deployment != null) {
|
||||
// respVO.setDeploymentTime(deployment.getDeploymentTime());
|
||||
// }
|
||||
// BeanUtils.copyProperties(processDefinitionExtDO, respVO);
|
||||
// return respVO;
|
||||
// }
|
||||
|
||||
public static BpmProcessDefinitionPageItemRespVO convert(ProcessDefinition bean) {
|
||||
if (bean == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
BpmProcessDefinitionPageItemRespVO bpmProcessDefinitionPageItemRespVO =
|
||||
new BpmProcessDefinitionPageItemRespVO();
|
||||
|
||||
bpmProcessDefinitionPageItemRespVO.setId(bean.getId());
|
||||
bpmProcessDefinitionPageItemRespVO.setVersion(bean.getVersion());
|
||||
bpmProcessDefinitionPageItemRespVO.setName( bean.getName() );
|
||||
bpmProcessDefinitionPageItemRespVO.setDescription( bean.getDescription() );
|
||||
bpmProcessDefinitionPageItemRespVO.setCategory( bean.getCategory() );
|
||||
|
||||
return bpmProcessDefinitionPageItemRespVO;
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessDefinitionVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
import org.flowable.engine.impl.persistence.entity.ProcessDefinitionEntity;
|
||||
import org.flowable.engine.repository.ProcessDefinition;
|
||||
import org.mapstruct.Mapper;
|
||||
@ -13,46 +13,46 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/25 22:44
|
||||
* @since 2023/7/25 22:44
|
||||
*/
|
||||
@Mapper(
|
||||
componentModel = "spring",
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
public interface BpmProcessDefinitionConverter extends EntityConverter<BpmProcessDefinitionVO, ProcessDefinition> {
|
||||
public interface BpmProcessDefinitionConverter extends EntityConverter<BpmnProcessDefinitionVO, ProcessDefinition> {
|
||||
|
||||
@Override
|
||||
default BpmProcessDefinitionVO toVo(ProcessDefinition entity) {
|
||||
default BpmnProcessDefinitionVO toVo(ProcessDefinition entity) {
|
||||
if (entity == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
BpmProcessDefinitionVO bpmProcessDefinitionVO = new BpmProcessDefinitionVO();
|
||||
BpmnProcessDefinitionVO bpmnProcessDefinitionVO = new BpmnProcessDefinitionVO();
|
||||
|
||||
if (entity.getId() != null) {
|
||||
bpmProcessDefinitionVO.setId(entity.getId());
|
||||
bpmnProcessDefinitionVO.setId(entity.getId());
|
||||
}
|
||||
if (entity.getName() != null) {
|
||||
bpmProcessDefinitionVO.setName(entity.getName());
|
||||
bpmnProcessDefinitionVO.setName(entity.getName());
|
||||
}
|
||||
if (entity.getKey() != null) {
|
||||
bpmProcessDefinitionVO.setKey(entity.getKey());
|
||||
bpmnProcessDefinitionVO.setKey(entity.getKey());
|
||||
}
|
||||
if (entity.getDescription() != null) {
|
||||
bpmProcessDefinitionVO.setDescription(entity.getDescription());
|
||||
bpmnProcessDefinitionVO.setDescription(entity.getDescription());
|
||||
}
|
||||
if (entity.getCategory() != null) {
|
||||
bpmProcessDefinitionVO.setCategory(entity.getCategory());
|
||||
bpmnProcessDefinitionVO.setCategory(entity.getCategory());
|
||||
}
|
||||
if (entity.getTenantId() != null) {
|
||||
bpmProcessDefinitionVO.setTenantId(entity.getTenantId());
|
||||
bpmnProcessDefinitionVO.setTenantId(entity.getTenantId());
|
||||
}
|
||||
bpmProcessDefinitionVO.setVersion(entity.getVersion());
|
||||
bpmnProcessDefinitionVO.setVersion(entity.getVersion());
|
||||
ProcessDefinitionEntity entitySource = (ProcessDefinitionEntity) entity;
|
||||
bpmProcessDefinitionVO.setSuspensionState(entitySource.getSuspensionState());
|
||||
bpmnProcessDefinitionVO.setSuspensionState(entitySource.getSuspensionState());
|
||||
|
||||
return bpmProcessDefinitionVO;
|
||||
return bpmnProcessDefinitionVO;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,136 +0,0 @@
|
||||
//package cn.axzo.workflow.core.service.converter;
|
||||
//
|
||||
//import cn.axzo.workflow.core.repository.entity.BpmProcessInstanceExtDO;
|
||||
//import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
//import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstancePageItemVO;
|
||||
//import org.flowable.task.api.Task;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.List;
|
||||
//import java.util.Map;
|
||||
//
|
||||
//public class BpmProcessInstanceConvert {
|
||||
//
|
||||
// public static BpmPageResult<BpmProcessInstancePageItemVO> convertPage(BpmPageResult<BpmProcessInstanceExtDO> page,
|
||||
// Map<String, List<Task>> taskMap) {
|
||||
// List<BpmProcessInstancePageItemVO> list = convertList(page.getList());
|
||||
// list.forEach(respVO -> respVO.setTasks(convertList2(taskMap.get(respVO.getId()))));
|
||||
// return new BpmPageResult<>(list, page.getTotal());
|
||||
// }
|
||||
//
|
||||
// public static List<BpmProcessInstancePageItemVO> convertList(List<BpmProcessInstanceExtDO> list){
|
||||
// if ( list == null ) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// List<BpmProcessInstancePageItemVO> list1 = new ArrayList<BpmProcessInstancePageItemVO>( list.size() );
|
||||
// for ( BpmProcessInstanceExtDO bpmProcessInstanceExtDO : list ) {
|
||||
// list1.add( convert( bpmProcessInstanceExtDO ) );
|
||||
// }
|
||||
//
|
||||
// return list1;
|
||||
// }
|
||||
//
|
||||
// public static BpmProcessInstancePageItemVO convert(BpmProcessInstanceExtDO bean){
|
||||
// if ( bean == null ) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// BpmProcessInstancePageItemVO bpmProcessInstancePageItemRespVO = new BpmProcessInstancePageItemVO();
|
||||
//
|
||||
// bpmProcessInstancePageItemRespVO.setId( bean.getProcessInstanceId() );
|
||||
// bpmProcessInstancePageItemRespVO.setCustomProInstId( bean.getCustomProInstId() );
|
||||
// bpmProcessInstancePageItemRespVO.setName( bean.getName() );
|
||||
// bpmProcessInstancePageItemRespVO.setProcessDefinitionId( bean.getProcessDefinitionId() );
|
||||
// bpmProcessInstancePageItemRespVO.setCategory( bean.getCategory() );
|
||||
// bpmProcessInstancePageItemRespVO.setStatus( bean.getStatus() );
|
||||
// bpmProcessInstancePageItemRespVO.setResult(bean.getResult());
|
||||
// bpmProcessInstancePageItemRespVO.setCreateTime(bean.getCreateAt());
|
||||
// bpmProcessInstancePageItemRespVO.setEndTime(bean.getEndTime());
|
||||
// bpmProcessInstancePageItemRespVO.setStartUserName( bean.getStartUserName() );
|
||||
//
|
||||
// return bpmProcessInstancePageItemRespVO;
|
||||
// }
|
||||
//
|
||||
// public static List<BpmProcessInstancePageItemVO.Task> convertList2(List<Task> tasks){
|
||||
// if ( tasks == null ) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// List<BpmProcessInstancePageItemVO.Task> list = new ArrayList<BpmProcessInstancePageItemVO.Task>( tasks.size
|
||||
// () );
|
||||
// for ( Task task : tasks ) {
|
||||
// list.add( taskToTask( task ) );
|
||||
// }
|
||||
//
|
||||
// return list;
|
||||
// }
|
||||
//
|
||||
//// default BpmProcessInstanceVO convert2(HistoricProcessInstance processInstance, BpmProcessInstanceExtDO
|
||||
// processInstanceExt,
|
||||
//// ProcessDefinition processDefinition, BpmProcessDefinitionExtDO
|
||||
// processDefinitionExt,
|
||||
//// String bpmnXml, AdminUserRespDTO startUser, DeptRespDTO dept) {
|
||||
//// BpmProcessInstanceRespVO respVO = convert2(processInstance);
|
||||
//// copyTo(processInstanceExt, respVO);
|
||||
//// // definition
|
||||
//// respVO.setProcessDefinition(convert2(processDefinition));
|
||||
//// copyTo(processDefinitionExt, respVO.getProcessDefinition());
|
||||
//// respVO.getProcessDefinition().setBpmnXml(bpmnXml);
|
||||
//// // user
|
||||
////// if (startUser != null) {
|
||||
////// respVO.setStartUser(convert2(startUser));
|
||||
////// if (dept != null) {
|
||||
////// respVO.getStartUser().setDeptName(dept.getName());
|
||||
////// }
|
||||
////// }
|
||||
////
|
||||
//// String startUserId = processInstance.getStartUserId();
|
||||
//// String[] s = startUserId.split("_");
|
||||
//// Long startWorkspaceId = Long.valueOf(s[0]);
|
||||
//// Long startIdentityId = Long.valueOf(s[1]);
|
||||
////
|
||||
//// BpmProcessInstanceRespVO.User startUser1 = new BpmProcessInstanceRespVO.User();
|
||||
//// startUser1.setWorkspaceId(startWorkspaceId);
|
||||
//// startUser1.setIdentityId(startIdentityId);
|
||||
//// respVO.setStartUser(startUser1);
|
||||
////
|
||||
//// return respVO;
|
||||
//// }
|
||||
////
|
||||
//// BpmProcessInstanceRespVO convert2(HistoricProcessInstance bean);
|
||||
////
|
||||
//// @Mapping(source = "from.id", target = "to.id", ignore = true)
|
||||
//// void copyTo(BpmProcessInstanceExtDO from, @MappingTarget BpmProcessInstanceRespVO to);
|
||||
////
|
||||
//// BpmProcessInstanceRespVO.ProcessDefinition convert2(ProcessDefinition bean);
|
||||
////
|
||||
//// @Mapping(source = "from.id", target = "to.id", ignore = true)
|
||||
//// void copyTo(BpmProcessDefinitionExtDO from, @MappingTarget BpmProcessInstanceRespVO.ProcessDefinition to);
|
||||
////
|
||||
//// BpmProcessInstanceRespVO.User convert2(AdminUserRespDTO bean);
|
||||
////
|
||||
//// default BpmProcessInstanceResultEvent convert(Object source, HistoricProcessInstance instance, Integer result) {
|
||||
//// BpmProcessInstanceResultEvent event = new BpmProcessInstanceResultEvent(source);
|
||||
//// event.setId(instance.getId());
|
||||
//// event.setProcessDefinitionKey(instance.getProcessDefinitionKey());
|
||||
//// event.setBusinessKey(instance.getBusinessKey());
|
||||
//// event.setResult(result);
|
||||
//// return event;
|
||||
//// }
|
||||
//
|
||||
// public static BpmProcessInstancePageItemVO.Task taskToTask(Task task) {
|
||||
// if ( task == null ) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// BpmProcessInstancePageItemVO.Task task1 = new BpmProcessInstancePageItemVO.Task();
|
||||
//
|
||||
// task1.setId( task.getId() );
|
||||
// task1.setName( task.getName() );
|
||||
//
|
||||
// return task1;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//}
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
@ -20,7 +20,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
public interface BpmProcessInstancePageItemConverter extends EntityConverter<BpmProcessInstancePageItemVO,
|
||||
public interface BpmProcessInstancePageItemConverter extends EntityConverter<BpmnProcessInstancePageItemVO,
|
||||
HistoricProcessInstance> {
|
||||
|
||||
@Mapping(target = "id", source = "entity.id")
|
||||
@ -30,5 +30,5 @@ public interface BpmProcessInstancePageItemConverter extends EntityConverter<Bpm
|
||||
@Mapping(target = "result", source = "entity.businessStatus")
|
||||
@Mapping(target = "startTime", source = "entity.startTime")
|
||||
@Mapping(target = "endTime", source = "entity.endTime")
|
||||
BpmProcessInstancePageItemVO toVo(HistoricProcessInstance entity);
|
||||
BpmnProcessInstancePageItemVO toVo(HistoricProcessInstance entity);
|
||||
}
|
||||
|
||||
@ -1,108 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import org.flowable.common.engine.impl.db.SuspensionState;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
public class BpmTaskConvert {
|
||||
|
||||
// public static TaskExtDO convertTaskExt(DelegateTask task) {
|
||||
// String assignee = task.getAssignee();
|
||||
// TaskExtDO taskExtDO = new TaskExtDO();
|
||||
// taskExtDO.setTaskId(task.getId());
|
||||
// taskExtDO.setTenantId(task.getTenantId());
|
||||
// taskExtDO.setUserId(assignee);
|
||||
// taskExtDO.setProcessDefinitionId(task.getProcessDefinitionId());
|
||||
// taskExtDO.setProcessInstanceId(task.getProcessInstanceId());
|
||||
// taskExtDO.setName(task.getName());
|
||||
// taskExtDO.setCreateAt(task.getCreateTime());
|
||||
// taskExtDO.setUserName(task.getOwner());
|
||||
// return taskExtDO;
|
||||
// }
|
||||
|
||||
|
||||
// public static List<BpmTaskDonePageItemRespVO> convertList2(List<HistoricTaskInstance> tasks,
|
||||
// Map<String, TaskExtDO> bpmTaskExtDOMap,
|
||||
// Map<String, HistoricProcessInstance>
|
||||
// historicProcessInstanceMap) {
|
||||
// return BpmCollectionUtils.convertList(tasks, task -> {
|
||||
// BpmTaskDonePageItemRespVO respVO = convert2(task);
|
||||
// TaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId());
|
||||
// BeanUtils.copyProperties(taskExtDO, respVO);
|
||||
// HistoricProcessInstance processInstance = historicProcessInstanceMap.get(
|
||||
// task.getProcessInstanceId());
|
||||
// if (processInstance != null) {
|
||||
// String startUserId = processInstance.getStartUserId();
|
||||
// //convert
|
||||
// BpmTaskTodoPageItemRespVO.ProcessInstance processInstance1 = new BpmTaskTodoPageItemRespVO
|
||||
// .ProcessInstance();
|
||||
// processInstance1.setId(processInstance.getId());
|
||||
// processInstance1.setName(processInstance.getName());
|
||||
// processInstance1.setProcessDefinitionId(processInstance.getProcessDefinitionId());
|
||||
// processInstance1.setStartUserId(startUserId);
|
||||
// respVO.setProcessInstance(processInstance1);
|
||||
// }
|
||||
// return respVO;
|
||||
// });
|
||||
// }
|
||||
|
||||
// public static BpmTaskDoneTodoPageItemVO convert2(HistoricTaskInstance bean) {
|
||||
// if (bean == null) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// BpmTaskDoneTodoPageItemVO bpmTaskDonePageItemRespVO = new BpmTaskDoneTodoPageItemVO();
|
||||
// bpmTaskDonePageItemRespVO.setId(bean.getId());
|
||||
// bpmTaskDonePageItemRespVO.setName(bean.getName());
|
||||
// bpmTaskDonePageItemRespVO.setClaimTime(bean.getClaimTime());
|
||||
// bpmTaskDonePageItemRespVO.setCreateTime(bean.getCreateTime());
|
||||
// bpmTaskDonePageItemRespVO.setEndTime(bean.getEndTime());
|
||||
// bpmTaskDonePageItemRespVO.setDurationInMillis(bean.getDurationInMillis());
|
||||
//
|
||||
// return bpmTaskDonePageItemRespVO;
|
||||
// }
|
||||
|
||||
BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class);
|
||||
|
||||
// public static List<BpmTaskTodoPageItemRespVO> convertList1(List<Task> tasks,
|
||||
// Map<String, ProcessInstance> processInstanceMap) {
|
||||
// return BpmCollectionUtils.convertList(tasks, task -> {
|
||||
// BpmTaskTodoPageItemRespVO respVO = convert1(task);
|
||||
// ProcessInstance processInstance = processInstanceMap.get(task.getProcessInstanceId());
|
||||
// if (processInstance != null) {
|
||||
// //convert
|
||||
// BpmTaskTodoPageItemRespVO.ProcessInstance processInstance1 = new BpmTaskTodoPageItemRespVO
|
||||
// .ProcessInstance();
|
||||
// processInstance1.setId(processInstance.getId());
|
||||
// processInstance1.setName(
|
||||
// StrUtil.isBlank(processInstance.getName()) ? processInstance.getProcessDefinitionName()
|
||||
// : processInstance.getName());
|
||||
// processInstance1.setProcessDefinitionId(processInstance.getProcessDefinitionId());
|
||||
// processInstance1.setStartUserId(processInstance.getStartUserId());
|
||||
// respVO.setProcessInstance(processInstance1);
|
||||
// }
|
||||
// return respVO;
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
// public static BpmTaskTodoPageItemVO convert1(Task bean) {
|
||||
// if (bean == null) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// BpmTaskTodoPageItemVO bpmTaskTodoPageItemRespVO = new BpmTaskTodoPageItemVO();
|
||||
//
|
||||
// bpmTaskTodoPageItemRespVO.setSuspensionState(convertSuspendedToSuspensionState(bean.isSuspended()));
|
||||
// bpmTaskTodoPageItemRespVO.setId( bean.getId() );
|
||||
// bpmTaskTodoPageItemRespVO.setName( bean.getName() );
|
||||
// bpmTaskTodoPageItemRespVO.setClaimTime( bean.getClaimTime() );
|
||||
// bpmTaskTodoPageItemRespVO.setCreateTime( bean.getCreateTime() );
|
||||
//
|
||||
// return bpmTaskTodoPageItemRespVO;
|
||||
// }
|
||||
|
||||
public static Integer convertSuspendedToSuspensionState(boolean suspended) {
|
||||
return suspended ? SuspensionState.SUSPENDED.getStateCode() :
|
||||
SuspensionState.ACTIVE.getStateCode();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmTaskInstanceVO;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
|
||||
/**
|
||||
* 运行中的审批任务的 VO 转换器
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/29 23:23
|
||||
*/
|
||||
@Mapper(
|
||||
componentModel = "spring",
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
public interface BpmTaskConverter extends EntityConverter<BpmTaskInstanceVO, Task> {
|
||||
@Mapping(target = "processInstanceId", source = "processInstanceId")
|
||||
@Mapping(target = "processDefinitionId", source = "processDefinitionId")
|
||||
@Mapping(target = "taskId", source = "id")
|
||||
@Mapping(target = "taskDefinitionKey", source = "taskDefinitionKey")
|
||||
@Mapping(target = "name", source = "name")
|
||||
@Mapping(target = "owner", source = "owner")
|
||||
@Mapping(target = "assignee", source = "assignee")
|
||||
@Mapping(target = "createTime", source = "createTime")
|
||||
@Mapping(target = "tenantId", source = "tenantId")
|
||||
@Mapping(target = "formKey", source = "formKey")
|
||||
@Mapping(target = "category", source = "category")
|
||||
@Override
|
||||
BpmTaskInstanceVO toVo(Task entity);
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmTaskTodoPageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmnTaskDonePageItemVO;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.mapstruct.Mapper;
|
||||
@ -16,7 +16,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/26 23:37
|
||||
* @since 2023/7/26 23:37
|
||||
*/
|
||||
@Mapper(
|
||||
componentModel = "spring",
|
||||
@ -24,14 +24,14 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
imports = Arrays.class
|
||||
)
|
||||
|
||||
public interface BpmTaskDonePageItemConverter extends EntityConverter<BpmTaskDonePageItemVO, HistoricTaskInstance> {
|
||||
public interface BpmTaskDonePageItemConverter extends EntityConverter<BpmnTaskDonePageItemVO, HistoricTaskInstance> {
|
||||
|
||||
BpmTaskTodoPageItemConverter todoConverter = Mappers.getMapper(BpmTaskTodoPageItemConverter.class);
|
||||
|
||||
@Override
|
||||
default BpmTaskDonePageItemVO toVo(HistoricTaskInstance entity) {
|
||||
default BpmnTaskDonePageItemVO toVo(HistoricTaskInstance entity) {
|
||||
BpmTaskTodoPageItemVO todo = todoConverter.toVo(entity);
|
||||
BpmTaskDonePageItemVO vo = new BpmTaskDonePageItemVO();
|
||||
BpmnTaskDonePageItemVO vo = new BpmnTaskDonePageItemVO();
|
||||
BeanUtils.copyProperties(todo, vo);
|
||||
vo.setEndTime(entity.getEndTime());
|
||||
vo.setDurationInMillis(entity.getDurationInMillis());
|
||||
@ -39,14 +39,14 @@ public interface BpmTaskDonePageItemConverter extends EntityConverter<BpmTaskDon
|
||||
return vo;
|
||||
}
|
||||
|
||||
default List<BpmTaskDonePageItemVO> toVos(List<HistoricTaskInstance> tasks,
|
||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap) {
|
||||
default List<BpmnTaskDonePageItemVO> toVos(List<HistoricTaskInstance> tasks,
|
||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap) {
|
||||
if (tasks.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<BpmTaskDonePageItemVO> vos = new ArrayList<>();
|
||||
List<BpmnTaskDonePageItemVO> vos = new ArrayList<>();
|
||||
tasks.forEach(i -> {
|
||||
BpmTaskDonePageItemVO vo = toVo(i);
|
||||
BpmnTaskDonePageItemVO vo = toVo(i);
|
||||
HistoricProcessInstance instance = historicProcessInstanceMap.getOrDefault(i.getProcessInstanceId(), null);
|
||||
if (Objects.nonNull(instance)) {
|
||||
vo.setProcessInstanceId(instance.getId());
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.BpmTaskTodoPageItemVO;
|
||||
import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.mapstruct.Mapper;
|
||||
@ -14,7 +14,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/26 23:00
|
||||
* @since 2023/7/26 23:00
|
||||
*/
|
||||
@Mapper(
|
||||
componentModel = "spring",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.converter;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.BpmModelBaseVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.FormModelBaseVO;
|
||||
import org.flowable.engine.repository.Model;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
@ -20,7 +20,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
nullValueCheckStrategy = ALWAYS,
|
||||
imports = Arrays.class
|
||||
)
|
||||
public interface FormModelConverter extends EntityConverter<BpmModelBaseVO, Model> {
|
||||
public interface FormModelConverter extends EntityConverter<FormModelBaseVO, Model> {
|
||||
|
||||
@Mapping(target = "id", source = "entity.id")
|
||||
@Mapping(target = "name", source = "entity.name")
|
||||
@ -30,6 +30,6 @@ public interface FormModelConverter extends EntityConverter<BpmModelBaseVO, Mode
|
||||
@Mapping(target = "version", source = "entity.version")
|
||||
@Mapping(target = "createAt", source = "entity.createTime")
|
||||
@Mapping(target = "updateAt", source = "entity.lastUpdateTime")
|
||||
BpmModelBaseVO toVo(Model entity);
|
||||
FormModelBaseVO toVo(Model entity);
|
||||
|
||||
}
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.request;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmFlowMultiMode;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BpmJsonNodeProperty {
|
||||
|
||||
/**
|
||||
* 是否是多实例Task节点;
|
||||
*/
|
||||
private Boolean isMultiTask;
|
||||
|
||||
/**
|
||||
* Task 多实例模式;OR:"或签",AND:"会签"
|
||||
*/
|
||||
private BpmFlowMultiMode multiMode;
|
||||
|
||||
/**
|
||||
* 审批人为空是否允许自动跳过
|
||||
*/
|
||||
private Boolean allowSkip = false;
|
||||
|
||||
/**
|
||||
* 条件节点中是否是默认分支,可以都不传;
|
||||
*/
|
||||
private Boolean defaultCondition;
|
||||
|
||||
/**
|
||||
* 条件分支的Key
|
||||
*/
|
||||
private String conditionBranchKey;
|
||||
|
||||
/**
|
||||
* 条件节点当ConditionKey的值是多少,走该分支
|
||||
*/
|
||||
private Integer conditionBranchValue;
|
||||
|
||||
/**
|
||||
* 发起时使用的表单 key
|
||||
*/
|
||||
private String formKey;
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.workflow.core.service.dto;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmFlowNodeType;
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmJsonNodeProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ -9,8 +9,12 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* JSON 版本的 BPMN 协议模型
|
||||
*/
|
||||
@ApiModel("JSON 版本的 BPMN 协议模型")
|
||||
@Data
|
||||
public class BpmJsonNode {
|
||||
public class BpmnJsonNode {
|
||||
|
||||
@ApiModelProperty(value = "节点ID", required = true)
|
||||
private String id;
|
||||
@ -18,24 +22,24 @@ public class BpmJsonNode {
|
||||
private String parentId;
|
||||
/**
|
||||
* {@link BpmFlowNodeType}
|
||||
* */
|
||||
*/
|
||||
@ApiModelProperty(value = "节点类型task/branch", required = true)
|
||||
private String type; // task, branch,
|
||||
@ApiModelProperty(value = "节点名称", required = true)
|
||||
private String name;
|
||||
// private Map<> properties; //ext : Object; 会签/或签
|
||||
// private Map<> properties; //ext : Object; 会签/或签
|
||||
@ApiModelProperty(value = "子节点信息", required = true)
|
||||
private BpmJsonNode children;
|
||||
private BpmnJsonNode children;
|
||||
@ApiModelProperty(value = "分支节点信息", required = true)
|
||||
private List<BpmJsonNode> branches;
|
||||
private BpmJsonNodeProperty property;
|
||||
private List<BpmnJsonNode> branches;
|
||||
private BpmnJsonNodeProperty property;
|
||||
|
||||
|
||||
/* 内部使用,不需要外界传 */
|
||||
private transient Map incoming = new HashMap();
|
||||
|
||||
|
||||
public BpmJsonNode() {
|
||||
public BpmnJsonNode() {
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
@ -70,27 +74,27 @@ public class BpmJsonNode {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public BpmJsonNode getChildren() {
|
||||
public BpmnJsonNode getChildren() {
|
||||
return children;
|
||||
}
|
||||
|
||||
public void setChildren(BpmJsonNode children) {
|
||||
public void setChildren(BpmnJsonNode children) {
|
||||
this.children = children;
|
||||
}
|
||||
|
||||
public List<BpmJsonNode> getBranches() {
|
||||
public List<BpmnJsonNode> getBranches() {
|
||||
return branches;
|
||||
}
|
||||
|
||||
public void setBranches(List<BpmJsonNode> branches) {
|
||||
public void setBranches(List<BpmnJsonNode> branches) {
|
||||
this.branches = branches;
|
||||
}
|
||||
|
||||
public BpmJsonNodeProperty getProperty() {
|
||||
public BpmnJsonNodeProperty getProperty() {
|
||||
return property;
|
||||
}
|
||||
|
||||
public void setProperty(BpmJsonNodeProperty property) {
|
||||
public void setProperty(BpmnJsonNodeProperty property) {
|
||||
this.property = property;
|
||||
}
|
||||
|
||||
@ -0,0 +1,56 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmFlowMultiMode;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* JSON 版本的 BPMN 协议中 UserTask 节点的属性扩展模型
|
||||
*/
|
||||
@ApiModel("JSON 版本的 BPMN 协议中 UserTask 节点的属性扩展模型")
|
||||
@Data
|
||||
public class BpmnJsonNodeProperty {
|
||||
|
||||
/**
|
||||
* 是否是多实例Task节点;
|
||||
*/
|
||||
@ApiModelProperty("是否是多实例Task节点")
|
||||
private Boolean isMultiTask;
|
||||
|
||||
/**
|
||||
* Task 多实例模式;OR:"或签",AND:"会签"
|
||||
*/
|
||||
@ApiModelProperty(value = "Task 多实例模式;OR:或签,AND:会签")
|
||||
private BpmFlowMultiMode multiMode;
|
||||
|
||||
/**
|
||||
* 审批人为空是否允许自动跳过
|
||||
*/
|
||||
@ApiModelProperty(value = "审批人为空是否允许自动跳过")
|
||||
private Boolean allowSkip = false;
|
||||
|
||||
/**
|
||||
* 条件节点中是否是默认分支,可以都不传;
|
||||
*/
|
||||
@ApiModelProperty(value = "条件节点中是否是默认分支,可以都不传")
|
||||
private Boolean defaultCondition;
|
||||
|
||||
/**
|
||||
* 条件分支的Key
|
||||
*/
|
||||
@ApiModelProperty(value = "条件分支的Key")
|
||||
private String conditionBranchKey;
|
||||
|
||||
/**
|
||||
* 条件节点当ConditionKey的值是多少,走该分支
|
||||
*/
|
||||
@ApiModelProperty(value = "条件节点当ConditionKey的值是多少,走该分支")
|
||||
private Integer conditionBranchValue;
|
||||
|
||||
/**
|
||||
* 发起时使用的表单 key
|
||||
*/
|
||||
@ApiModelProperty(value = "发起时使用的表单 key")
|
||||
private String formKey;
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.definition;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.definition;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.BpmJsonNode;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.BpmnJsonNode;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ -8,18 +9,19 @@ import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 用于更新流程定义的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/26 10:07
|
||||
*/
|
||||
@ApiModel("用于更新流程定义的入参模型")
|
||||
@Data
|
||||
public class BpmProcessDefinitionUpdateDTO {
|
||||
public class BpmnProcessDefinitionUpdateDTO {
|
||||
@ApiModelProperty(value = "流程模型 ID")
|
||||
private String processModelId;
|
||||
|
||||
@ApiModelProperty(value = "JSON 转义的流程定义内容", notes = "枢智业务线在用")
|
||||
@Valid
|
||||
@NotNull(message = "模型定义内容不能为空")
|
||||
private BpmJsonNode bpmJson;
|
||||
private BpmnJsonNode bpmJson;
|
||||
}
|
||||
@ -1,14 +1,19 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.model;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.model;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.BpmJsonNode;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.BpmnJsonNode;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 创建流程模型的入参模型
|
||||
*/
|
||||
@ApiModel("创建流程模型的入参模型")
|
||||
@Data
|
||||
public class BpmModelCreateDTO {
|
||||
public class BpmnModelCreateDTO {
|
||||
|
||||
@ApiModelProperty(value = "流程模型标识", example = "process_key", hidden = true)
|
||||
@Length(max = 255, message = "流程标识最长只支持255个字符")
|
||||
@ -24,28 +29,20 @@ public class BpmModelCreateDTO {
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 所属业务
|
||||
* 默认 1
|
||||
* OA 2
|
||||
* 自定义分类
|
||||
*/
|
||||
@ApiModelProperty(value = "所属业务", notes = "由业务自定义", example = "1")
|
||||
@ApiModelProperty(value = "自定义分类", notes = "由业务自定义", example = "1")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* MetaInfo 自定义数据,可以放icon等任何
|
||||
* */
|
||||
// @ApiModelProperty(value = "MetaInfo 自定义数据,可以放icon等任何", example = "1")
|
||||
// private Object metaInfo;
|
||||
|
||||
/**
|
||||
* 流程的Json 结构
|
||||
*/
|
||||
@ApiModelProperty(value = "流程的Json 结构", example = "1")
|
||||
private BpmJsonNode node;
|
||||
private BpmnJsonNode node;
|
||||
|
||||
/**
|
||||
* 租户Id
|
||||
* */
|
||||
*/
|
||||
@ApiModelProperty(value = "租户Id", example = "1")
|
||||
@NotBlank(message = "租户 ID 不能为空")
|
||||
private String tenantId;
|
||||
@ -0,0 +1,41 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.model;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 流程模型搜索入参模型
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("流程模型搜索入参模型")
|
||||
@Data
|
||||
public class BpmnModelSearchDTO extends BpmPageParam {
|
||||
|
||||
/**
|
||||
* 标识
|
||||
*/
|
||||
@ApiModelProperty(value = "流程模型标识", example = "process1641042089407", notes = "精准匹配")
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@ApiModelProperty(value = "流程模型名字", example = "流程模型名称", notes = "模糊匹配")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 流程分类
|
||||
*/
|
||||
@ApiModelProperty(value = "流程模型分类", example = "1")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 工作台ID
|
||||
*/
|
||||
@ApiModelProperty(value = "租户 ID", example = "1")
|
||||
private String tenantId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 修改流程模型入参模型
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("修改流程模型入参模型")
|
||||
@Data
|
||||
public class BpmnModelUpdateDTO extends BpmnModelCreateDTO {
|
||||
|
||||
@ApiModelProperty(value = "流程模型 ID", required = true)
|
||||
private String processModelId;
|
||||
|
||||
}
|
||||
@ -1,18 +1,20 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.process;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 最基础的流程实例查询入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/14 13:48
|
||||
*/
|
||||
@ApiModel("最基础的流程实例查询入参模型")
|
||||
@Data
|
||||
public class BpmBasicProcessInstanceQueryDTO {
|
||||
public class BpmnBasicProcessInstanceQueryDTO {
|
||||
/**
|
||||
* 流程实例 ID
|
||||
*/
|
||||
@ -1,14 +1,21 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.process;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.process;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
|
||||
/**
|
||||
* 流程定义分页查询入参模型
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("流程定义分页查询入参模型")
|
||||
@Data
|
||||
public class BpmProcessDefinitionPageDTO extends BpmPageParam {
|
||||
public class BpmnProcessDefinitionPageDTO extends BpmPageParam {
|
||||
|
||||
@ApiModelProperty(value = "流程标识,传了精准匹配")
|
||||
@NotBlank(message = "流程标识不能为空")
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.process;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ -11,8 +12,9 @@ import javax.validation.constraints.NotBlank;
|
||||
* @author wangli
|
||||
* @since 2023/7/17 09:34
|
||||
*/
|
||||
@ApiModel("取消流程实例的入参模型")
|
||||
@Data
|
||||
public class BpmProcessInstanceCancelDTO {
|
||||
public class BpmnProcessInstanceCancelDTO {
|
||||
|
||||
/**
|
||||
* 流程实例的编号
|
||||
@ -43,7 +45,7 @@ public class BpmProcessInstanceCancelDTO {
|
||||
* 用户 ID
|
||||
*/
|
||||
@NotBlank(message = "用户编号不能为空")
|
||||
@ApiModelProperty(value = "操作人编号")
|
||||
@ApiModelProperty(value = "操作人标识")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.process;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
@ -7,8 +9,12 @@ import javax.validation.constraints.NotEmpty;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 创建流程实例的入参模型
|
||||
*/
|
||||
@ApiModel("创建流程实例的入参模型")
|
||||
@Data
|
||||
public class BpmProcessInstanceCreateDTO {
|
||||
public class BpmnProcessInstanceCreateDTO {
|
||||
|
||||
/**
|
||||
* 流程定义的 id
|
||||
@ -35,12 +41,13 @@ public class BpmProcessInstanceCreateDTO {
|
||||
/**
|
||||
* 发起人所在的(企业/项目)租户ID
|
||||
*/
|
||||
@NotBlank(message = "租户不能为空")
|
||||
@NotBlank(message = "租户ID不能为空")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 发起人的身份ID
|
||||
*/
|
||||
@ApiModelProperty(value = "操作人标识")
|
||||
@NotBlank(message = "用户Id不能为空")
|
||||
private String userId;
|
||||
|
||||
@ -53,10 +60,7 @@ public class BpmProcessInstanceCreateDTO {
|
||||
/**
|
||||
* 自定义的流程实例名称
|
||||
*/
|
||||
@ApiModelProperty(value = "自定义的流程实例名称")
|
||||
private String customProcessInstanceName;
|
||||
|
||||
/**
|
||||
* 拓展业务字段
|
||||
*/
|
||||
private Object ext;
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.process;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -7,14 +8,15 @@ import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 创建工作流实例,同时携带表单
|
||||
* 创建工作流实例同时携带表单的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/20 15:49
|
||||
*/
|
||||
@ApiModel("创建工作流实例同时携带表单的入参模型")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class BpmProcessInstanceCreateWithFormDTO extends BpmProcessInstanceCreateDTO {
|
||||
public class BpmnProcessInstanceCreateWithFormDTO extends BpmnProcessInstanceCreateDTO {
|
||||
|
||||
/**
|
||||
* 表单的定义 ID
|
||||
@ -30,6 +32,7 @@ public class BpmProcessInstanceCreateWithFormDTO extends BpmProcessInstanceCreat
|
||||
* <p>
|
||||
* 一般不用设置
|
||||
*/
|
||||
@ApiModelProperty(value = "用于接入外部传入的信息", hidden = true)
|
||||
private String outcome;
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.process;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.process;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmPageParam;
|
||||
@ -12,25 +12,28 @@ import org.springframework.format.annotation.DateTimeFormat;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.Date;
|
||||
|
||||
@ApiModel("管理后台 - 流程实例的分页 Item Response VO")
|
||||
/**
|
||||
* 用于查询我的发起的流程实例入参模型
|
||||
*/
|
||||
@ApiModel("用于查询我的发起的流程实例入参模型")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmProcessInstanceMyPageReqVO extends BpmPageParam {
|
||||
@ApiModelProperty(value = "流程名称", example = "芋道", hidden = true)
|
||||
public class BpmnProcessInstanceMyPageReqVO extends BpmPageParam {
|
||||
|
||||
@ApiModelProperty(value = "流程名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "流程定义的编号", example = "2048", hidden = true)
|
||||
@ApiModelProperty(value = "流程定义的编号", hidden = true)
|
||||
private String processDefinitionId;
|
||||
|
||||
@ApiModelProperty(value = "业务KEY")
|
||||
private String businessKey;
|
||||
|
||||
@ApiModelProperty(value = "审核状态 (1,审批中 2,已通过 3,已驳回 4,已撤销)", notes = "参见 BpmProcessInstanceResultEnum", example =
|
||||
"2")
|
||||
@ApiModelProperty(value = "审核状态(PROCESSING:审核中,APPROVED:已通过,REJECTED:已拒绝,CANCELLED:已取消)", example = "APPROVED")
|
||||
private BpmProcessInstanceResultEnum result;
|
||||
|
||||
@ApiModelProperty(value = "审核单类型", notes = "参见 bpm_model_category 数据字典", example = "1")
|
||||
@ApiModelProperty(value = "自定义分类")
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "发起时间")
|
||||
@ -44,14 +47,14 @@ public class BpmProcessInstanceMyPageReqVO extends BpmPageParam {
|
||||
/**
|
||||
* 发起人所在的(企业/项目)工作台ID
|
||||
*/
|
||||
@ApiModelProperty(value = "租户Id", required = true, example = "1")
|
||||
@ApiModelProperty(value = "租户Id", required = true)
|
||||
@NotBlank(message = "租户不能为空")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 发起人的身份ID
|
||||
*/
|
||||
@ApiModelProperty(value = "用户 ID ", required = true, example = "1")
|
||||
@ApiModelProperty(value = "操作人标识", required = true)
|
||||
@NotBlank(message = "用户编号不能为空")
|
||||
private String userId;
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.process;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -12,7 +12,7 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("查询流程实例的入参模型")
|
||||
public class BpmProcessInstanceQueryDTO extends BpmBasicProcessInstanceQueryDTO {
|
||||
public class BpmnProcessInstanceQueryDTO extends BpmnBasicProcessInstanceQueryDTO {
|
||||
|
||||
|
||||
/**
|
||||
@ -0,0 +1,32 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.task;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 转交审批任务的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/27 11:50
|
||||
*/
|
||||
@ApiModel("转交审批任务的入参模型")
|
||||
@Data
|
||||
public class BpmnTaskAssigneeDTO {
|
||||
|
||||
@ApiModelProperty(value = "审批任务 ID")
|
||||
@NotBlank(message = "任务 ID 不能为空")
|
||||
private String taskId;
|
||||
|
||||
@ApiModelProperty(value = "审批任务原审批人", notes = "可以为空,意义在于可以将没有指派给任何人的任务转交给其他人")
|
||||
private String originUserId;
|
||||
|
||||
@ApiModelProperty(value = "审批任务转发给谁", notes = "可以为空,意义在于如果分配给某离职的人,可能需要置为空")
|
||||
private String newUserId;
|
||||
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
@NotBlank(message = "租户不能为空")
|
||||
private String tenantId;
|
||||
}
|
||||
@ -1,13 +1,18 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.task;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.task;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
/**
|
||||
* 审批任务节点的入参模型
|
||||
*/
|
||||
@ApiModel("审批任务节点的入参模型")
|
||||
@Data
|
||||
public class BpmTaskAuditDTO {
|
||||
public class BpmnTaskAuditDTO {
|
||||
|
||||
@ApiModelProperty(value = "任务编号", required = true, example = "1024")
|
||||
@NotEmpty(message = "任务编号不能为空")
|
||||
@ -15,25 +20,28 @@ public class BpmTaskAuditDTO {
|
||||
/**
|
||||
* 审核人Id
|
||||
*/
|
||||
@ApiModelProperty(value = "操作人标识")
|
||||
@NotBlank(message = "操作人编号不能为空")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 审核人名称
|
||||
* */
|
||||
@ApiModelProperty(value = "操作人姓名")
|
||||
@NotBlank(message = "操作人姓名不能为空")
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 租户Id
|
||||
* */
|
||||
@ApiModelProperty(value = "租户")
|
||||
@NotBlank(message = "租户不能为空")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 评论信息
|
||||
* */
|
||||
@NotBlank(message = "审核意见不能为空")
|
||||
@ApiModelProperty(value = "审批意见")
|
||||
private String comment;
|
||||
|
||||
}
|
||||
@ -1,18 +1,20 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.task;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.task;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 添加评论
|
||||
* 对审批任务添加评论的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/29 17:25
|
||||
* @since 2023/7/29 17:25
|
||||
*/
|
||||
@ApiModel("对审批任务添加评论的入参模型")
|
||||
@Data
|
||||
public class BpmTaskCommentDTO {
|
||||
public class BpmnTaskCommentDTO {
|
||||
|
||||
@ApiModelProperty(value = "审批任务 ID")
|
||||
@NotBlank(message = "任务 ID 不能为空")
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.task;
|
||||
package cn.axzo.workflow.core.service.dto.request.bpmn.task;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -9,12 +10,16 @@ import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* "待我审核"的审批任务列表查询入参模型
|
||||
*/
|
||||
@ApiModel("'待我审核'的审批任务列表查询入参模型")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmTaskTodoPageSearchDTO extends BpmPageParam {
|
||||
public class BpmnTaskTodoPageSearchDTO extends BpmPageParam {
|
||||
|
||||
@ApiModelProperty(value = "用户ID,唯一标识", example = "1")
|
||||
@ApiModelProperty(value = "操作人标识")
|
||||
private String userId;
|
||||
|
||||
@ApiModelProperty(value = "租户Id", example = "1")
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.model;
|
||||
package cn.axzo.workflow.core.service.dto.request.category;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@ -7,7 +7,7 @@ import org.hibernate.validator.constraints.Length;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
@Data
|
||||
public class BpmCategoryCreateDTO {
|
||||
public class CategoryCreateDTO {
|
||||
|
||||
@ApiModelProperty(value = "字典标签", example = "新业务")
|
||||
@Length(max = 50, message = "字典标签最长只支持255个字符")
|
||||
@ -33,6 +33,7 @@ public class BpmCategoryCreateDTO {
|
||||
private Boolean status;
|
||||
|
||||
@ApiModelProperty(value = "租户", example = "1")
|
||||
@NotBlank(message = "租户不能为空")
|
||||
private String tenantId;
|
||||
|
||||
}
|
||||
@ -1,13 +1,20 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.model;
|
||||
package cn.axzo.workflow.core.service.dto.request.category;
|
||||
|
||||
import cn.axzo.framework.domain.page.PageQO;
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 自定义分类的查询入参模型
|
||||
*/
|
||||
@ApiModel("自定义分类的查询入参模型")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class BpmCategoryDTO extends PageQO {
|
||||
public class CategorySearchDTO extends BpmPageParam {
|
||||
@ApiModelProperty(value = "字典类型", example = "dict_group", notes = "精准匹配")
|
||||
private String dictType;
|
||||
|
||||
@ -21,5 +28,6 @@ public class BpmCategoryDTO extends PageQO {
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "租户 ID", example = "1")
|
||||
@NotBlank(message = "租户不能为空")
|
||||
private String tenantId;
|
||||
}
|
||||
@ -1,14 +1,19 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.model;
|
||||
package cn.axzo.workflow.core.service.dto.request.category;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 自定义分类更新模型
|
||||
*/
|
||||
@ApiModel("自定义分类更新模型")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class BpmCategoryUpdateDTO extends BpmCategoryCreateDTO{
|
||||
public class CategoryUpdateDTO extends CategoryCreateDTO {
|
||||
|
||||
@ApiModelProperty(value = "ID", example = "1")
|
||||
@NotNull(message = "字典标签表示不能为空")
|
||||
@ -1,16 +1,16 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.form;
|
||||
package cn.axzo.workflow.core.service.dto.request.form.definition;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.form.model.FormFieldsDTO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.flowable.form.model.SimpleFormModel;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 特殊的模型,对应 Flowable Engine 中的 {@link SimpleFormModel}
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/24 22:36
|
||||
* @since 2023/7/24 22:36
|
||||
*/
|
||||
@Data
|
||||
public class FormDefinitionDTO {
|
||||
@ -1,17 +1,18 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.form.definition;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.form.FormDefinitionDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 表单定义的更新入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/25 14:21
|
||||
*/
|
||||
@ApiModel("表单定义的更新入参模型")
|
||||
@Data
|
||||
public class FormDefinitionUpdateDTO {
|
||||
|
||||
|
||||
@ -1,18 +1,20 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.form.model;
|
||||
package cn.axzo.workflow.core.service.dto.request.form.definition;
|
||||
|
||||
/**
|
||||
* 表单中的字段相关属性模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/20 10:39
|
||||
*/
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 表单定义中的字段相关属性入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/20 10:39
|
||||
*/
|
||||
@ApiModel("表单定义中的字段相关属性入参模型")
|
||||
@Data
|
||||
public class FormFieldsDTO {
|
||||
|
||||
@ -20,6 +22,7 @@ public class FormFieldsDTO {
|
||||
@NotBlank(message = "字段类型不能为空")
|
||||
private transient String fieldType = "FormField";
|
||||
|
||||
@ApiModelProperty(value = "前端的组件类型")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty(value = "表单字段组件ID", example = "account")
|
||||
@ -44,3 +47,5 @@ public class FormFieldsDTO {
|
||||
@ApiModelProperty(value = "该表单字段的其他扩展属性,期望 JSON 格式")
|
||||
private Map<String, Object> params;
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.form;
|
||||
package cn.axzo.workflow.core.service.dto.request.form.instance;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ -7,11 +8,12 @@ import javax.validation.constraints.NotBlank;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 表单字段值更新入参模型
|
||||
* 表单实例填写内容更新入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/20 17:51
|
||||
*/
|
||||
@ApiModel("表单实例填写内容更新入参模型")
|
||||
@Data
|
||||
public class FormContentUpdateDTO {
|
||||
|
||||
@ -26,7 +28,7 @@ public class FormContentUpdateDTO {
|
||||
@ApiModelProperty(value = "表单字段值", example = "{'field1': '1', 'field2': 2}")
|
||||
private Map<String, Object> formVariables;
|
||||
|
||||
@ApiModelProperty(value = "任务归属人", example = "1")
|
||||
@ApiModelProperty(value = "任务归属人标识", example = "1")
|
||||
@NotBlank(message = "任务归属人不能为空")
|
||||
private String userId;
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.form.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
@ -12,6 +13,7 @@ import javax.validation.constraints.NotBlank;
|
||||
* @author wangli
|
||||
* @since 2023/7/20 09:52
|
||||
*/
|
||||
@ApiModel("表单模型创建入参模型")
|
||||
@Data
|
||||
public class FormModelCreateDTO {
|
||||
|
||||
|
||||
@ -1,15 +1,17 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.form.model;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 表单模型查询的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/20 14:39
|
||||
*/
|
||||
@ApiModel("表单模型查询的入参模型")
|
||||
@Data
|
||||
public class FormModelSearchDTO extends BpmPageParam {
|
||||
|
||||
|
||||
@ -1,16 +1,18 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.form.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 表单模型更新的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/20 13:44
|
||||
*/
|
||||
@ApiModel("表单模型更新的入参模型")
|
||||
@Data
|
||||
public class FormModelUpdateDTO extends FormModelCreateDTO {
|
||||
|
||||
@ -18,6 +20,4 @@ public class FormModelUpdateDTO extends FormModelCreateDTO {
|
||||
@NotBlank(message = "表单 ID 不能为空")
|
||||
public String formModelId;
|
||||
|
||||
// @ApiModelProperty(value = "表单定义内容", hidden = true)
|
||||
// private FormDefinitionDTO formDefinition;
|
||||
}
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.model;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.BpmPageParam;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BpmModelSearchDTO extends BpmPageParam {
|
||||
|
||||
/**
|
||||
* 标识
|
||||
*/
|
||||
@ApiModelProperty(value = "标识", example = "process1641042089407", notes = "精准匹配")
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@ApiModelProperty(value = "名字", example = "芋道", notes = "模糊匹配")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 流程分类
|
||||
*/
|
||||
@ApiModelProperty(value = "流程分类", notes = "参见 bpm_model_category 数据字典", example = "1")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 工作台ID
|
||||
*/
|
||||
@ApiModelProperty(value = "工作台ID", example = "1", notes = "可能是单位ID,也可能项目工作台ID")
|
||||
private String tenantId;
|
||||
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.model;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 修改流程模型的 DTO
|
||||
*/
|
||||
@Data
|
||||
public class BpmModelUpdateDTO extends BpmModelCreateDTO {
|
||||
|
||||
@ApiModelProperty(value = "流程模型 ID", required = true)
|
||||
private String processModelId;
|
||||
|
||||
}
|
||||
@ -1,26 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.request.task;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/27 11:50
|
||||
*/
|
||||
@Data
|
||||
public class BpmTaskAssigneeDTO {
|
||||
|
||||
@ApiModelProperty(value = "审批任务 ID")
|
||||
private String taskId;
|
||||
|
||||
@ApiModelProperty(value = "审批任务原审批人")
|
||||
private String originUserId;
|
||||
|
||||
@ApiModelProperty(value = "审批任务转发给谁")
|
||||
private String newUserId;
|
||||
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
private String tenantId;
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 基础的流程模型响应模型
|
||||
*/
|
||||
@ApiModel("基础的流程模型响应模型")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class BpmnModelBaseVO {
|
||||
|
||||
@ApiModelProperty(value = "模型 ID")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 流程标识
|
||||
*/
|
||||
@ApiModelProperty(value = "模型标识")
|
||||
private String key;
|
||||
/**
|
||||
* 流程名称
|
||||
*/
|
||||
@ApiModelProperty(value = "模型名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 自定义分类
|
||||
*/
|
||||
@ApiModelProperty(value = "自定义分类")
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createAt;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateAt;
|
||||
|
||||
/**
|
||||
* 版本
|
||||
*/
|
||||
@ApiModelProperty(value = "版本", required = true, example = "1")
|
||||
private Integer version;
|
||||
|
||||
/**
|
||||
* 租户Id
|
||||
*/
|
||||
@ApiModelProperty(value = "租户")
|
||||
private String tenantId;
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.model;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.BpmnJsonNode;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* 流程模型的详情响应模型
|
||||
*/
|
||||
@ApiModel("流程模型的详情响应模型")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmnModelDetailVO extends BpmnModelBaseVO {
|
||||
|
||||
/**
|
||||
* 流程的 Json 结构
|
||||
*/
|
||||
@ApiModelProperty(value = "流程的 Json 结构")
|
||||
private BpmnJsonNode bpmJson;
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.process;
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -7,9 +7,9 @@ import org.flowable.common.engine.impl.db.SuspensionState;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
@ApiModel("管理后台 - 流程定义 Response VO")
|
||||
@ApiModel("流程定义响应模型")
|
||||
@Data
|
||||
public class BpmProcessDefinitionVO {
|
||||
public class BpmnProcessDefinitionVO {
|
||||
|
||||
@ApiModelProperty(value = "编号", required = true, example = "1024")
|
||||
private String id;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.process;
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.process;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@ -7,9 +7,9 @@ import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@ApiModel("管理后台 - 流程实例的分页 Item Response VO")
|
||||
@ApiModel("流程实例的分页响应模型")
|
||||
@Data
|
||||
public class BpmProcessInstancePageItemVO {
|
||||
public class BpmnProcessInstancePageItemVO {
|
||||
|
||||
@ApiModelProperty(value = "原流程实例的编号", required = true, example = "1024")
|
||||
private String id;
|
||||
@ -23,7 +23,7 @@ public class BpmProcessInstancePageItemVO {
|
||||
@ApiModelProperty(value = "流程分类", required = true, notes = "参见 bpm_model_category 数据字典", example = "1")
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "流程实例的结果", required = true, notes = "参见 bpm_process_instance_result", example = "2")
|
||||
@ApiModelProperty(value = "审核状态(PROCESSING:审核中,APPROVED:已通过,REJECTED:已拒绝,CANCELLED:已取消)", example = "APPROVED")
|
||||
private BpmProcessInstanceResultEnum result;
|
||||
|
||||
@ApiModelProperty(value = "提交时间", required = true)
|
||||
@ -1,15 +1,20 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.process;
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.process;
|
||||
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 流程实例详情响应模型
|
||||
*/
|
||||
@ApiModel("流程实例详情响应模型")
|
||||
@Data
|
||||
public class BpmProcessInstanceVO {
|
||||
public class BpmnProcessInstanceVO {
|
||||
|
||||
@ApiModelProperty(value = "流程实例的编号", example = "1024")
|
||||
private String id;
|
||||
@ -20,7 +25,7 @@ public class BpmProcessInstanceVO {
|
||||
@ApiModelProperty(value = "流程分类", notes = "参见 bpm_model_category 数据字典", example = "1")
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "流程实例的结果", notes = "参见 BpmProcessInstanceResultEnum", example = "2")
|
||||
@ApiModelProperty(value = "审核状态(PROCESSING:审核中,APPROVED:已通过,REJECTED:已拒绝,CANCELLED:已取消)", example = "APPROVED")
|
||||
private BpmProcessInstanceResultEnum result;
|
||||
|
||||
@ApiModelProperty(value = "提交时间")
|
||||
@ -35,7 +40,7 @@ public class BpmProcessInstanceVO {
|
||||
@ApiModelProperty(value = "流程变量")
|
||||
private Map<String, Object> variables;
|
||||
|
||||
@ApiModelProperty("发起人ID")
|
||||
@ApiModelProperty("发起人标识")
|
||||
private String startUserId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.task;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 运行中的任务实例响应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/29 23:24
|
||||
*/
|
||||
@ApiModel("运行中的任务实例响应模型")
|
||||
@Data
|
||||
public class BpmTaskInstanceVO {
|
||||
|
||||
@ApiModelProperty(value = "任务关联的流程实例 ID")
|
||||
private String processInstanceId;
|
||||
@ApiModelProperty(value = "任务关联的流程定义 ID")
|
||||
private String processDefinitionId;
|
||||
@ApiModelProperty(value = "任务实例 ID")
|
||||
private String taskId;
|
||||
@ApiModelProperty(value = "任务定义 KEY")
|
||||
private String taskDefinitionKey;
|
||||
@ApiModelProperty(value = "任务名称")
|
||||
private String name;
|
||||
@ApiModelProperty(value = "任务归属人")
|
||||
private String owner;
|
||||
@ApiModelProperty(value = "任务审批人")
|
||||
private String assignee;
|
||||
@ApiModelProperty(value = "任务创建时间")
|
||||
private Date createTime;
|
||||
@ApiModelProperty(value = "租户")
|
||||
private String tenantId;
|
||||
@ApiModelProperty(value = "任务关联的表单 KEY")
|
||||
private String formKey;
|
||||
@ApiModelProperty(value = "自定义分类")
|
||||
private String category;
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.task;
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.task;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -7,7 +7,7 @@ import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@ApiModel("管理后台 - 流程任务的 Running 进行中的分页项 Response VO")
|
||||
@ApiModel("待我审批的任务列表响应模型")
|
||||
public class BpmTaskTodoPageItemVO {
|
||||
|
||||
@ApiModelProperty(value = "任务编号", required = true, example = "1024")
|
||||
@ -0,0 +1,28 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.task;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 历史审批任务分组响应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/29 22:59
|
||||
*/
|
||||
@ApiModel("历史审批任务分组响应模型")
|
||||
@Data
|
||||
public class BpmnHistoricTaskInstanceGroupVO {
|
||||
|
||||
@ApiModelProperty(value = "审批任务定义KEY")
|
||||
private String taskDefinitionKey;
|
||||
|
||||
@ApiModelProperty(value = "流程实例 ID")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty(value = "该审批节点下的所有任务")
|
||||
private List<BpmnHistoricTaskInstanceVO> tasks;
|
||||
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.task;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 历史任务实例响应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/29 17:57
|
||||
*/
|
||||
@ApiModel("历史任务实例响应模型")
|
||||
@Data
|
||||
public class BpmnHistoricTaskInstanceVO {
|
||||
|
||||
@ApiModelProperty(value = "任务实例 ID")
|
||||
private String taskId;
|
||||
|
||||
@ApiModelProperty(value = "任务定义 KEY")
|
||||
private String taskDefinitionKey;
|
||||
|
||||
@ApiModelProperty(value = "任务名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "任务关联的实例 ID")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty(value = "任务关联的定义 ID")
|
||||
private String processDefinitionId;
|
||||
|
||||
@ApiModelProperty(value = "任务的审批人")
|
||||
private String assignee;
|
||||
|
||||
@ApiModelProperty(value = "任务创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "任务结束时间")
|
||||
private Date endTime;
|
||||
|
||||
@ApiModelProperty(value = "任务持续毫秒数")
|
||||
private Long durationInMillis;
|
||||
|
||||
@ApiModelProperty(value = "租户")
|
||||
private String tenantId;
|
||||
|
||||
@ApiModelProperty(value = "审核状态(PROCESSING:审核中,APPROVED:已通过,REJECTED:已拒绝,CANCELLED:已取消)", example = "APPROVED")
|
||||
private BpmProcessInstanceResultEnum result;
|
||||
|
||||
@ApiModelProperty(value = "任务审批意见")
|
||||
private String comment;
|
||||
|
||||
@ApiModelProperty(value = "删除原因")
|
||||
private transient String deleteReason;
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.task;
|
||||
package cn.axzo.workflow.core.service.dto.response.bpmn.task;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@ -9,11 +9,11 @@ import lombok.ToString;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@ApiModel("管理后台 - 流程任务的 Done 已完成的分页项 Response VO")
|
||||
@ApiModel("我已完成的任务列表响应模型")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmTaskDonePageItemVO extends BpmTaskTodoPageItemVO {
|
||||
public class BpmnTaskDonePageItemVO extends BpmTaskTodoPageItemVO {
|
||||
|
||||
@ApiModelProperty(value = "审批任务结束时间", required = true)
|
||||
private Date endTime;
|
||||
@ -21,7 +21,7 @@ public class BpmTaskDonePageItemVO extends BpmTaskTodoPageItemVO {
|
||||
@ApiModelProperty(value = "持续时间", required = true, example = "1000")
|
||||
private Long durationInMillis;
|
||||
|
||||
@ApiModelProperty(value = "任务结果", required = true, notes = "参见 BpmProcessInstanceResultEnum", example = "2")
|
||||
@ApiModelProperty(value = "审核状态(PROCESSING:审核中,APPROVED:已通过,REJECTED:已拒绝,CANCELLED:已取消)", example = "APPROVED")
|
||||
private BpmProcessInstanceResultEnum result;
|
||||
|
||||
@ApiModelProperty(value = "审批建议", required = true, example = "不请假了!")
|
||||
@ -1,10 +1,12 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.model;
|
||||
package cn.axzo.workflow.core.service.dto.response.category;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel("自定义分类详情响应模型")
|
||||
@Data
|
||||
public class BpmCategoryItemVo {
|
||||
public class CategoryItemVO {
|
||||
|
||||
@ApiModelProperty(value = "ID")
|
||||
private Long id;
|
||||
@ -1,28 +1,37 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.form.definition;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.request.form.model.FormFieldsDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.definition.FormFieldsDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 表单定义的响应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/25 14:00
|
||||
*/
|
||||
@ApiModel("表单定义的响应模型")
|
||||
@Data
|
||||
public class FormDefinitionVO {
|
||||
@ApiModelProperty(value = "模型名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "模型 KEY")
|
||||
private String key;
|
||||
|
||||
@ApiModelProperty(value = "自定义分类")
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "版本")
|
||||
private Integer version;
|
||||
|
||||
@ApiModelProperty(value = "租户")
|
||||
private String tenantId;
|
||||
|
||||
@ApiModelProperty(value = "表单模型字段")
|
||||
private List<FormFieldsDTO> fields;
|
||||
|
||||
}
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.form.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/25 11:04
|
||||
*/
|
||||
@Data
|
||||
public class BpmModelBaseVO {
|
||||
|
||||
private String id;
|
||||
|
||||
private String name;
|
||||
|
||||
private String key;
|
||||
|
||||
private String category;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
private Integer version;
|
||||
|
||||
private Date createAt;
|
||||
|
||||
private Date updateAt;
|
||||
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.form.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 基础的表单模型响应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2023/7/25 11:04
|
||||
*/
|
||||
@ApiModel("基础的表单模型响应模型")
|
||||
@Data
|
||||
public class FormModelBaseVO {
|
||||
|
||||
@ApiModelProperty(value = "模型 ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "模型名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "模型 KEY")
|
||||
private String key;
|
||||
|
||||
@ApiModelProperty(value = "自定义分类")
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "租户")
|
||||
private String tenantId;
|
||||
|
||||
@ApiModelProperty(value = "版本")
|
||||
private Integer version;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createAt;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateAt;
|
||||
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.model;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class BpmModelBaseVO {
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 流程标识
|
||||
*/
|
||||
private String key;
|
||||
/**
|
||||
* 流程名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 流程分类
|
||||
* */
|
||||
private String category;
|
||||
|
||||
@ApiModelProperty(value = "创建时间", required = true)
|
||||
private Date createAt;
|
||||
|
||||
@ApiModelProperty(value = "最后更新时间", required = true)
|
||||
private Date updateAt;
|
||||
|
||||
/**
|
||||
* 版本
|
||||
*/
|
||||
@ApiModelProperty(value = "版本", required = true, example = "1")
|
||||
private Integer version;
|
||||
|
||||
/**
|
||||
* 租户Id
|
||||
* */
|
||||
private String tenantId;
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.model;
|
||||
|
||||
import cn.axzo.workflow.core.service.dto.BpmJsonNode;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmModelDetailVO extends BpmModelBaseVO{
|
||||
|
||||
/**
|
||||
* 流程的 Json 结构
|
||||
*
|
||||
* */
|
||||
@ApiModelProperty(value = "流程的 Json 结构", required = true)
|
||||
private BpmJsonNode bpmJson;
|
||||
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.model;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmProcessModelVO extends BpmModelBaseVO {
|
||||
|
||||
@ApiModelProperty(value = "流程定义ID")
|
||||
private String processDefinitionId;
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.process;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
@ApiModel("管理后台 - 流程定义的分页的每一项 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BpmProcessDefinitionPageItemRespVO extends BpmProcessDefinitionVO {
|
||||
|
||||
@ApiModelProperty(value = "表单名字", example = "请假表单")
|
||||
private String formName;
|
||||
|
||||
@ApiModelProperty(value = "部署时间", required = true)
|
||||
private Date deploymentTime;
|
||||
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.task;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 审批任务分组响应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/29 22:59
|
||||
*/
|
||||
@Data
|
||||
public class BpmHistoricTaskInstanceGroupVO {
|
||||
|
||||
private String taskDefinitionKey;
|
||||
|
||||
private String processInstanceId;
|
||||
|
||||
private List<BpmHistoricTaskInstanceVO> tasks;
|
||||
|
||||
}
|
||||
@ -1,44 +0,0 @@
|
||||
package cn.axzo.workflow.core.service.dto.response.task;
|
||||
|
||||
import cn.axzo.workflow.core.common.enums.BpmProcessInstanceResultEnum;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 历史任务实例响应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/29 17:57
|
||||
*/
|
||||
//@ApiModel("管理后台 - 流程任务的 Done 已完成的分页项 Response VO")
|
||||
@Data
|
||||
public class BpmHistoricTaskInstanceVO {
|
||||
|
||||
private String taskId;
|
||||
|
||||
private String taskDefinitionKey;
|
||||
|
||||
private String name;
|
||||
|
||||
private String processInstanceId;
|
||||
|
||||
private String processDefinitionId;
|
||||
|
||||
private String assignee;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private Date endTime;
|
||||
|
||||
private Long durationInMillis;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
private BpmProcessInstanceResultEnum result;
|
||||
|
||||
private String comment;
|
||||
|
||||
private transient String deleteReason;
|
||||
|
||||
}
|
||||
@ -2,7 +2,7 @@ package cn.axzo.workflow.core.service.engine;
|
||||
|
||||
import cn.axzo.workflow.core.deletage.BpmTaskDelegate;
|
||||
import cn.axzo.workflow.core.listener.BpmTaskEventListener;
|
||||
import cn.axzo.workflow.core.service.impl.BpmTaskServiceImpl;
|
||||
import cn.axzo.workflow.core.service.impl.BpmnTaskServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.delegate.TaskListener;
|
||||
import org.flowable.task.service.delegate.DelegateTask;
|
||||
@ -23,7 +23,7 @@ public class EngineTaskEventListener implements TaskListener {
|
||||
private BpmTaskDelegate taskDelegate;
|
||||
@Resource
|
||||
@Lazy // 解决循环依赖
|
||||
private BpmTaskServiceImpl taskService;
|
||||
private BpmnTaskServiceImpl taskService;
|
||||
|
||||
@Override
|
||||
public void notify(DelegateTask delegateTask) {
|
||||
|
||||
@ -14,7 +14,7 @@ import org.flowable.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFacto
|
||||
* 主要解决多实例如果设置了自动跳过功能, 在历史数据中可以看到被跳过的任务. Flowable 默认的行为不存历史表.
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/29 00:34
|
||||
* @since 2023/7/29 00:34
|
||||
*/
|
||||
public class CustomActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
|
||||
@Override
|
||||
|
||||
@ -18,7 +18,7 @@ import java.util.Iterator;
|
||||
* 主要用来解决多实例自动跳过时,历史的任务实例表中没有该节点的信息
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/29 00:25
|
||||
* @since 2023/7/29 00:25
|
||||
*/
|
||||
public class CustomParallelMultiInstanceActivityBehavior extends ParallelMultiInstanceBehavior {
|
||||
public CustomParallelMultiInstanceActivityBehavior(Activity activity,
|
||||
|
||||
@ -18,7 +18,7 @@ import java.util.Iterator;
|
||||
* 主要用来解决多实例自动跳过时,历史的任务实例表中没有该节点的信息
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/29 15:27
|
||||
* @since 2023/7/29 15:27
|
||||
*/
|
||||
public class CustomSequentialMultiInstanceBehavior extends SequentialMultiInstanceBehavior {
|
||||
public CustomSequentialMultiInstanceBehavior(Activity activity,
|
||||
|
||||
@ -34,7 +34,7 @@ import java.util.List;
|
||||
* TODO
|
||||
*
|
||||
* @author wangli
|
||||
* @sine 2023/7/29 01:11
|
||||
* @since 2023/7/29 01:11
|
||||
*/
|
||||
public class CustomUserTaskActivityBehavior extends UserTaskActivityBehavior {
|
||||
public CustomUserTaskActivityBehavior(UserTask userTask) {
|
||||
|
||||
@ -2,12 +2,12 @@ package cn.axzo.workflow.core.service.impl;
|
||||
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.common.utils.BpmTransformUtil;
|
||||
import cn.axzo.workflow.core.service.BpmProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.converter.BpmProcessDefinitionConverter;
|
||||
import cn.axzo.workflow.core.service.dto.request.definition.BpmProcessDefinitionUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.process.BpmProcessDefinitionPageDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessDefinitionPageDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessDefinitionVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -32,7 +32,7 @@ import static java.util.Collections.emptyList;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionService {
|
||||
public class BpmnProcessDefinitionServiceImpl implements BpmnProcessDefinitionService {
|
||||
|
||||
|
||||
@Resource
|
||||
@ -92,7 +92,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProcessDefinition(BpmProcessDefinitionUpdateDTO dto) {
|
||||
public void updateProcessDefinition(BpmnProcessDefinitionUpdateDTO dto) {
|
||||
Model model = repositoryService.getModel(dto.getProcessModelId());
|
||||
if (Objects.isNull(model)) {
|
||||
throw new WorkflowEngineException("模型不存在");
|
||||
@ -120,7 +120,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmPageResult<BpmProcessDefinitionVO> getProcessDefinitionPage(BpmProcessDefinitionPageDTO dto) {
|
||||
public BpmPageResult<BpmnProcessDefinitionVO> getProcessDefinitionPage(BpmnProcessDefinitionPageDTO dto) {
|
||||
ProcessDefinitionQuery definitionQuery = repositoryService.createProcessDefinitionQuery()
|
||||
.processDefinitionKey(dto.getKey());
|
||||
if (StrUtil.isNotBlank(dto.getTenantId())) {
|
||||
@ -139,7 +139,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmProcessDefinitionVO getProcessDefinition(String id) {
|
||||
public BpmnProcessDefinitionVO getProcessDefinition(String id) {
|
||||
ProcessDefinition processDefinition = repositoryService.getProcessDefinition(id);
|
||||
if (Objects.isNull(processDefinition)) {
|
||||
throw new WorkflowEngineException(PROCESS_DEFINITION_ID_NOT_EXISTS, id);
|
||||
@ -159,7 +159,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmProcessDefinitionVO getActiveProcessDefinitionByKey(String key) {
|
||||
public BpmnProcessDefinitionVO getActiveProcessDefinitionByKey(String key) {
|
||||
ProcessDefinition processDefinition =
|
||||
repositoryService.createProcessDefinitionQuery().processDefinitionKey(key).latestVersion()
|
||||
.singleResult();
|
||||
@ -4,15 +4,15 @@ import cn.axzo.workflow.core.common.enums.BpmProcessInstanceDeleteReasonEnum;
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.common.utils.BpmCollectionUtils;
|
||||
import cn.axzo.workflow.core.repository.mapper.InfoMapper;
|
||||
import cn.axzo.workflow.core.service.BpmProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.BpmProcessInstanceService;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessInstanceService;
|
||||
import cn.axzo.workflow.core.service.converter.BpmHistoricProcessInstanceConverter;
|
||||
import cn.axzo.workflow.core.service.converter.BpmProcessInstancePageItemConverter;
|
||||
import cn.axzo.workflow.core.service.dto.request.process.*;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.*;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessDefinitionVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstanceVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import cn.azxo.framework.common.utils.StringUtils;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@ -47,7 +47,7 @@ import static cn.axzo.workflow.core.common.enums.BpmErrorCode.*;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService {
|
||||
public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceService {
|
||||
|
||||
@Autowired
|
||||
private TaskService engineTaskService;
|
||||
@ -57,9 +57,9 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
private RuntimeService runtimeService;
|
||||
@Autowired
|
||||
@Lazy // 解决循环依赖
|
||||
private BpmTaskServiceImpl taskService;
|
||||
private BpmnTaskServiceImpl taskService;
|
||||
@Autowired
|
||||
private BpmProcessDefinitionService processDefinitionService;
|
||||
private BpmnProcessDefinitionService processDefinitionService;
|
||||
@Autowired
|
||||
private HistoryService historyService;
|
||||
@Resource
|
||||
@ -88,7 +88,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmPageResult<BpmProcessInstancePageItemVO> getMyProcessInstancePage(@Valid BpmProcessInstanceMyPageReqVO dto) {
|
||||
public BpmPageResult<BpmnProcessInstancePageItemVO> getMyProcessInstancePage(@Valid BpmnProcessInstanceMyPageReqVO dto) {
|
||||
HistoricProcessInstanceQuery query =
|
||||
historyService.createHistoricProcessInstanceQuery().processInstanceTenantId(dto.getTenantId());
|
||||
if (StringUtils.isNotBlank(dto.getName())) {
|
||||
@ -122,9 +122,9 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
return BpmPageResult.empty();
|
||||
}
|
||||
|
||||
List<BpmProcessInstancePageItemVO> vos = new ArrayList<>();
|
||||
List<BpmnProcessInstancePageItemVO> vos = new ArrayList<>();
|
||||
instances.forEach(i -> {
|
||||
BpmProcessInstancePageItemVO vo = instancePageItemConverter.toVo(i);
|
||||
BpmnProcessInstancePageItemVO vo = instancePageItemConverter.toVo(i);
|
||||
// 暂不对外提供发起人姓名
|
||||
// List<HistoricVariableInstance> list = historyService.createHistoricVariableInstanceQuery()
|
||||
// .processInstanceId(i.getId()).variableName(INTERNAL_START_USER_NAME).list();
|
||||
@ -172,8 +172,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
|
||||
|
||||
@Override
|
||||
public String createProcessInstance(BpmProcessInstanceCreateDTO dto) {
|
||||
BpmProcessDefinitionVO definition =
|
||||
public String createProcessInstance(BpmnProcessInstanceCreateDTO dto) {
|
||||
BpmnProcessDefinitionVO definition =
|
||||
processDefinitionService.getActiveProcessDefinitionByKey(dto.getProcessDefinitionKey());
|
||||
// 校验流程定义
|
||||
if (definition == null) {
|
||||
@ -199,25 +199,12 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
.name(name)
|
||||
.tenantId(dto.getTenantId())
|
||||
.start();
|
||||
|
||||
// BpmProcessInstanceExtDO extDO = new BpmProcessInstanceExtDO();
|
||||
// extDO.setProcessInstanceId(instance.getId());
|
||||
// extDO.setName(name);
|
||||
// extDO.setTenantId(dto.getTenantId());
|
||||
// // extDO.setStartCompanyId(dto.getCompanyId());
|
||||
// extDO.setStartUserId(dto.getUserId());
|
||||
// extDO.setStartUserName(dto.getUserName());
|
||||
// extDO.setFormVariables(dto.getVariables());
|
||||
// extDO.setExt(dto.getExt());
|
||||
// // 补全流程实例的拓展表
|
||||
// processInstanceExtMapper.updateByProcessInstanceId(extDO);
|
||||
// runtimeService.updateBusinessStatus(instance.getProcessInstanceId(), PROCESSING.getStatus());
|
||||
return instance.getProcessInstanceId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createProcessInstanceWithForm(BpmProcessInstanceCreateWithFormDTO dto) {
|
||||
BpmProcessDefinitionVO definition =
|
||||
public String createProcessInstanceWithForm(BpmnProcessInstanceCreateWithFormDTO dto) {
|
||||
BpmnProcessDefinitionVO definition =
|
||||
processDefinitionService.getActiveProcessDefinitionByKey(dto.getProcessDefinitionKey());
|
||||
// 校验流程定义
|
||||
if (definition == null) {
|
||||
@ -258,7 +245,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean cancelProcessInstance(BpmProcessInstanceCancelDTO dto) {
|
||||
public Boolean cancelProcessInstance(BpmnProcessInstanceCancelDTO dto) {
|
||||
HistoricProcessInstance instance = null;
|
||||
if (StringUtils.isNotBlank(dto.getId())) {
|
||||
instance = getProcessInstance(dto.getId(), dto.getTenantId(), false);
|
||||
@ -305,7 +292,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmProcessInstanceVO getProcessInstanceVO(BpmProcessInstanceQueryDTO dto) {
|
||||
public BpmnProcessInstanceVO getProcessInstanceVO(BpmnProcessInstanceQueryDTO dto) {
|
||||
HistoricProcessInstance processInstance = null;
|
||||
if (StringUtils.isNotBlank(dto.getProcessInstanceId())) {
|
||||
processInstance = getProcessInstance(dto.getProcessInstanceId(), dto.getTenantId(), dto.getHasVariable());
|
||||
@ -323,7 +310,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
||||
// Assert.notNull(processInstanceExt, "流程实例拓展({}) 不存在", processInstance.getId());
|
||||
|
||||
// 获得流程定义
|
||||
BpmProcessDefinitionVO processDefinition = processDefinitionService
|
||||
BpmnProcessDefinitionVO processDefinition = processDefinitionService
|
||||
.getProcessDefinition(processInstance.getProcessDefinitionId());
|
||||
Assert.notNull(processDefinition, "流程定义({}) 不存在", processInstance.getProcessDefinitionId());
|
||||
|
||||
@ -2,16 +2,16 @@ package cn.axzo.workflow.core.service.impl;
|
||||
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.common.utils.BpmTransformUtil;
|
||||
import cn.axzo.workflow.core.service.BpmProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.BpmProcessModelService;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessModelService;
|
||||
import cn.axzo.workflow.core.service.converter.BpmModelConverter;
|
||||
import cn.axzo.workflow.core.service.converter.FormModelConverter;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.BpmModelBaseVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.model.BpmModelDetailVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.model.BpmnModelDetailVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.FormModelBaseVO;
|
||||
import org.flowable.common.engine.impl.db.SuspensionState;
|
||||
import org.flowable.engine.ManagementService;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
@ -31,24 +31,24 @@ import java.util.Objects;
|
||||
|
||||
import static cn.axzo.workflow.core.common.BpmConstants.MODEL_META_INFO_PROCESS;
|
||||
import static cn.axzo.workflow.core.common.enums.BpmErrorCode.*;
|
||||
import static cn.axzo.workflow.core.service.impl.BpmFormModelServiceImpl.countSql;
|
||||
import static cn.axzo.workflow.core.service.impl.BpmFormModelServiceImpl.sqlConnectors;
|
||||
import static cn.axzo.workflow.core.service.impl.FormModelServiceImpl.countSql;
|
||||
import static cn.axzo.workflow.core.service.impl.FormModelServiceImpl.sqlConnectors;
|
||||
|
||||
@Service
|
||||
public class BpmProcessModelServiceImpl implements BpmProcessModelService {
|
||||
public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private RepositoryService repositoryService;
|
||||
@Resource
|
||||
private BpmProcessDefinitionService processDefinitionService;
|
||||
private BpmnProcessDefinitionService processDefinitionService;
|
||||
@Resource
|
||||
private ManagementService managementService;
|
||||
@Resource
|
||||
private FormModelConverter formModelConverter;
|
||||
|
||||
@Override
|
||||
public BpmPageResult<BpmModelBaseVO> getModelPage(BpmModelSearchDTO dto) {
|
||||
public BpmPageResult<FormModelBaseVO> getModelPage(BpmnModelSearchDTO dto) {
|
||||
String tableName = managementService.getTableName(Model.class);
|
||||
StringBuilder baseQuerySql = new StringBuilder("SELECT * FROM ")
|
||||
.append(tableName);
|
||||
@ -88,7 +88,7 @@ public class BpmProcessModelServiceImpl implements BpmProcessModelService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createBpmModel(@Valid BpmModelCreateDTO dto) {
|
||||
public String createBpmModel(@Valid BpmnModelCreateDTO dto) {
|
||||
Model existModel = repositoryService.createModelQuery()
|
||||
.modelKey(dto.getKey())
|
||||
.modelTenantId(dto.getTenantId())
|
||||
@ -131,7 +131,7 @@ public class BpmProcessModelServiceImpl implements BpmProcessModelService {
|
||||
* 获取模型
|
||||
*/
|
||||
@Override
|
||||
public BpmModelDetailVO getById(String processModelId, @Nullable String tenantId) {
|
||||
public BpmnModelDetailVO getById(String processModelId, @Nullable String tenantId) {
|
||||
Model model = repositoryService.getModel(processModelId);
|
||||
if (Objects.isNull(model) && !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_PROCESS)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, processModelId);
|
||||
@ -143,7 +143,7 @@ public class BpmProcessModelServiceImpl implements BpmProcessModelService {
|
||||
* 获取模型
|
||||
*/
|
||||
@Override
|
||||
public BpmModelDetailVO getByKey(String processModelKey, @Nullable String tenantId) {
|
||||
public BpmnModelDetailVO getByKey(String processModelKey, @Nullable String tenantId) {
|
||||
Model model = repositoryService.createModelQuery().modelKey(processModelKey).singleResult();
|
||||
if (Objects.isNull(model) && !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_PROCESS)) {
|
||||
throw new WorkflowEngineException(MODEL_KEY_NOT_EXISTS, processModelKey);
|
||||
@ -152,7 +152,7 @@ public class BpmProcessModelServiceImpl implements BpmProcessModelService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateBpmModel(BpmModelUpdateDTO dto) {
|
||||
public void updateBpmModel(BpmnModelUpdateDTO dto) {
|
||||
Model originModel = repositoryService.createModelQuery()
|
||||
.modelId(dto.getProcessModelId())
|
||||
.modelKey(dto.getKey())
|
||||
@ -1,20 +1,17 @@
|
||||
package cn.axzo.workflow.core.service.impl;
|
||||
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.common.utils.BpmCollectionUtils;
|
||||
import cn.axzo.workflow.core.service.BpmTaskService;
|
||||
import cn.axzo.workflow.core.service.BpmnTaskService;
|
||||
import cn.axzo.workflow.core.service.converter.BpmHistoricTaskInstanceConverter;
|
||||
import cn.axzo.workflow.core.service.converter.BpmTaskConverter;
|
||||
import cn.axzo.workflow.core.service.converter.BpmTaskDonePageItemConverter;
|
||||
import cn.axzo.workflow.core.service.converter.BpmTaskTodoPageItemConverter;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAssigneeDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskCommentDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAssigneeDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskCommentDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmHistoricTaskInstanceGroupVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmHistoricTaskInstanceVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.*;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -49,7 +46,7 @@ import static cn.axzo.workflow.core.common.utils.BpmCollectionUtils.convertSet;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
public class BpmnTaskServiceImpl implements BpmnTaskService {
|
||||
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@ -60,20 +57,22 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
@Resource
|
||||
private RepositoryService repositoryService;
|
||||
@Resource
|
||||
private BpmProcessInstanceServiceImpl processInstanceService;
|
||||
private BpmnProcessInstanceServiceImpl processInstanceService;
|
||||
@Resource
|
||||
private BpmTaskTodoPageItemConverter todoPageItemConverter;
|
||||
@Resource
|
||||
private BpmTaskDonePageItemConverter donePageItemConverter;
|
||||
@Resource
|
||||
private BpmHistoricTaskInstanceConverter historicTaskInstanceConverter;
|
||||
@Resource
|
||||
private BpmTaskConverter bpmTaskConverter;
|
||||
// @Resource
|
||||
// private BpmTaskExtMapper taskExtMapper;
|
||||
// @Resource
|
||||
// private BpmProcessInstanceExtMapper bpmProcessInstanceExtMapper;
|
||||
|
||||
@Override
|
||||
public BpmPageResult<BpmTaskTodoPageItemVO> getTodoTaskPage(BpmTaskTodoPageSearchDTO dto) {
|
||||
public BpmPageResult<BpmTaskTodoPageItemVO> getTodoTaskPage(BpmnTaskTodoPageSearchDTO dto) {
|
||||
HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery()
|
||||
.unfinished()
|
||||
.taskAssignee(dto.getUserId()) // 分配给自己
|
||||
@ -109,7 +108,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmPageResult<BpmTaskDonePageItemVO> getDoneTaskPage(BpmTaskTodoPageSearchDTO dto) {
|
||||
public BpmPageResult<BpmnTaskDonePageItemVO> getDoneTaskPage(BpmnTaskTodoPageSearchDTO dto) {
|
||||
// 查询已办任务
|
||||
HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery()
|
||||
.finished() // 已完成
|
||||
@ -146,12 +145,12 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
Map<String, HistoricProcessInstance> historicProcessInstanceMap =
|
||||
processInstanceService.getHistoricProcessInstanceMap(
|
||||
processInstanceIds);
|
||||
List<BpmTaskDonePageItemVO> vos = donePageItemConverter.toVos(tasks, historicProcessInstanceMap);
|
||||
List<BpmnTaskDonePageItemVO> vos = donePageItemConverter.toVos(tasks, historicProcessInstanceMap);
|
||||
return new BpmPageResult<>(vos, query.count());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approveTask(BpmTaskAuditDTO dto) {
|
||||
public void approveTask(BpmnTaskAuditDTO dto) {
|
||||
// 校验任务存在
|
||||
Task task = checkTask(dto.getTenantId(), dto.getUserId(), dto.getTaskId());
|
||||
// 校验流程实例存在
|
||||
@ -161,47 +160,17 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
throw new WorkflowEngineException(PROCESS_INSTANCE_NOT_EXISTS);
|
||||
}
|
||||
|
||||
// 根据流程实例ID和任务定义key查询运行中的任务,并记录taskId列表
|
||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
||||
.processInstanceId(instance.getId())
|
||||
.taskTenantId(dto.getTenantId())
|
||||
.taskDefinitionKey(task.getTaskDefinitionKey());
|
||||
List<Task> taskRunningListBefore = taskQuery.list();//eg:1、2、3
|
||||
|
||||
if (taskRunningListBefore.size() > 1 && taskQuery.list().isEmpty()) {
|
||||
// 满足条件1:当前任务是多实例任务节点的子任务,
|
||||
// 满足条件2:该子任务完成时,将所在多实例任务节点中的其他子任务也一并删除,说明此时已经满足了多实例的完成条件
|
||||
// 此时需要将该任务所在多实例任务节点中的其他子任务,更新任务拓展表为已完成
|
||||
// for (Task taskRunningBefore : taskRunningListBefore) {
|
||||
// if (!task.getId().equals(taskRunningBefore.getId())) {
|
||||
// TaskExtDO taskExtDO = new TaskExtDO();
|
||||
// taskExtDO.setTaskId(taskRunningBefore.getId());
|
||||
// taskExtDO.setResult(BpmProcessInstanceResultEnum.APPROVE.getResult());
|
||||
// taskExtDO.setComment("自动完成");
|
||||
// taskExtDO.setEndTime(new Date());
|
||||
// taskExtMapper.updateByTaskId(taskExtDO);
|
||||
// }
|
||||
// }
|
||||
if (StringUtils.hasLength(dto.getComment())) {
|
||||
Authentication.setAuthenticatedUserId(dto.getUserId());
|
||||
taskService.addComment(dto.getTaskId(), instance.getId(), COMMENT_TYPE_ADVICE, dto.getComment());
|
||||
}
|
||||
// TaskExtDO taskExtDO = new TaskExtDO();
|
||||
// taskExtDO.setTaskId(task.getId());
|
||||
// taskExtDO.setResult(BpmProcessInstanceResultEnum.APPROVE.getResult());
|
||||
// taskExtDO.setComment(dto.getComment());
|
||||
// taskExtDO.setEndTime(new Date());
|
||||
// // 更新任务拓展表为通过
|
||||
// taskExtMapper.updateByTaskId(taskExtDO);
|
||||
|
||||
// Map<String, Object> transientMap = new HashMap<>();
|
||||
// transientMap.put(BpmConstants.INTERNAL_TASK_COMMENT, dto.getComment());
|
||||
Authentication.setAuthenticatedUserId(dto.getUserId());
|
||||
taskService.addComment(dto.getTaskId(), instance.getId(), dto.getComment());
|
||||
// 完成任务,审批通过
|
||||
// FIXME 如果 task 被重复删除会抛出异常
|
||||
taskService.complete(task.getId(), instance.getProcessVariables());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rejectTask(BpmTaskAuditDTO dto) {
|
||||
public void rejectTask(BpmnTaskAuditDTO dto) {
|
||||
// 校验任务存在
|
||||
Task task = checkTask(dto.getTenantId(),
|
||||
dto.getUserId(), dto.getTaskId());
|
||||
@ -225,8 +194,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BpmHistoricTaskInstanceVO> getHistoricTaskListByProcessInstanceId(String processInstanceId,
|
||||
String tenantId) {
|
||||
public List<BpmnHistoricTaskInstanceVO> getHistoricTaskListByProcessInstanceId(String processInstanceId,
|
||||
String tenantId) {
|
||||
HistoricTaskInstanceQuery query =
|
||||
historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstanceId);
|
||||
if (StringUtils.hasLength(tenantId)) {
|
||||
@ -242,16 +211,13 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
List<HistoricTaskInstance> taskInstances = query.orderByHistoricTaskInstanceStartTime()
|
||||
.desc() // 创建时间倒序
|
||||
.list();
|
||||
// Map<String, List<HistoricTaskInstance>> taskMapByDefKey =
|
||||
// taskInstances.stream().collect(Collectors.groupingBy
|
||||
// (HistoricTaskInstance::getTaskDefinitionKey));
|
||||
List<BpmHistoricTaskInstanceVO> vos = historicTaskInstanceConverter.toVosSkipMiEnd(taskInstances);
|
||||
List<BpmnHistoricTaskInstanceVO> vos = historicTaskInstanceConverter.toVosSkipMiEnd(taskInstances);
|
||||
Map<String, List<Comment>> commentByTaskIdMap = taskService.getProcessInstanceComments(processInstanceId,
|
||||
CommentEntity.TYPE_COMMENT).stream().collect(Collectors.groupingBy(Comment::getTaskId));
|
||||
|
||||
Set<String> taskDefinitionKeys = new HashSet<>();
|
||||
int count = 0;
|
||||
for (BpmHistoricTaskInstanceVO vo : vos) {
|
||||
for (BpmnHistoricTaskInstanceVO vo : vos) {
|
||||
if (!taskDefinitionKeys.contains(vo.getTaskDefinitionKey()) && count == 0) {
|
||||
vo.setResult(valueOfStatus(instance.getBusinessStatus()));
|
||||
} else {
|
||||
@ -267,16 +233,16 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BpmHistoricTaskInstanceGroupVO> getHistoricTaskListGroupByProcessInstanceId(String processInstanceId,
|
||||
String tenantId) {
|
||||
List<BpmHistoricTaskInstanceVO> vos = getHistoricTaskListByProcessInstanceId(processInstanceId, tenantId);
|
||||
public List<BpmnHistoricTaskInstanceGroupVO> getHistoricTaskListGroupByProcessInstanceId(String processInstanceId,
|
||||
String tenantId) {
|
||||
List<BpmnHistoricTaskInstanceVO> vos = getHistoricTaskListByProcessInstanceId(processInstanceId, tenantId);
|
||||
|
||||
Map<String, List<BpmHistoricTaskInstanceVO>> voMapByTaskDefKey =
|
||||
vos.stream().collect(Collectors.groupingBy(BpmHistoricTaskInstanceVO::getTaskDefinitionKey));
|
||||
Map<String, List<BpmnHistoricTaskInstanceVO>> voMapByTaskDefKey =
|
||||
vos.stream().collect(Collectors.groupingBy(BpmnHistoricTaskInstanceVO::getTaskDefinitionKey));
|
||||
|
||||
List<BpmHistoricTaskInstanceGroupVO> groupVos = new ArrayList<>();
|
||||
for (Map.Entry<String, List<BpmHistoricTaskInstanceVO>> entry : voMapByTaskDefKey.entrySet()) {
|
||||
BpmHistoricTaskInstanceGroupVO groupVO = new BpmHistoricTaskInstanceGroupVO();
|
||||
List<BpmnHistoricTaskInstanceGroupVO> groupVos = new ArrayList<>();
|
||||
for (Map.Entry<String, List<BpmnHistoricTaskInstanceVO>> entry : voMapByTaskDefKey.entrySet()) {
|
||||
BpmnHistoricTaskInstanceGroupVO groupVO = new BpmnHistoricTaskInstanceGroupVO();
|
||||
groupVO.setProcessInstanceId(processInstanceId);
|
||||
groupVO.setTaskDefinitionKey(entry.getKey());
|
||||
groupVO.setTasks(entry.getValue());
|
||||
@ -286,11 +252,12 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Task> getActiveTasksByProcessInstanceId(String processInstanceId) {
|
||||
if (StrUtil.isEmpty(processInstanceId)) {
|
||||
return Collections.emptyList();
|
||||
public List<BpmTaskInstanceVO> getActiveTasksByProcessInstanceId(String processInstanceId, String tenantId) {
|
||||
TaskQuery query = taskService.createTaskQuery().processInstanceId(processInstanceId);
|
||||
if (StringUtils.hasLength(tenantId)) {
|
||||
query.taskTenantId(tenantId);
|
||||
}
|
||||
return taskService.createTaskQuery().processInstanceId(processInstanceId).list();
|
||||
return bpmTaskConverter.toVos(query.list());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -324,86 +291,6 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
return taskQuery.singleResult();
|
||||
}
|
||||
|
||||
// public void createTaskExt(DelegateTask task) {
|
||||
// TaskExtDO taskExtDO = BpmTaskConvert.convertTaskExt(task);
|
||||
// taskExtDO.setResult(BpmProcessInstanceResultEnum.PROCESS.getResult());
|
||||
// taskExtMapper.insert(taskExtDO);
|
||||
// }
|
||||
|
||||
// public void updateTaskExtComplete(DelegateTask task) {
|
||||
// TaskExtDO taskExtDO = BpmTaskConvert.convertTaskExt(task);
|
||||
// taskExtDO.setEndTime(new Date());
|
||||
// taskExtMapper.updateByTaskId(taskExtDO);
|
||||
// }
|
||||
|
||||
// public void updateTaskExtAssign(DelegateTask task) {
|
||||
// String assignee = task.getAssignee();
|
||||
// String processDefinitionId = task.getProcessDefinitionId();
|
||||
// String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||
// // 在获取候选人列表时,向bpm_task_assignee_info表中插入选择的审批人的信息,在这里更新bpm_task_exe表时,通过task_id从bpm_task_assigner_info
|
||||
// // 表中获取审批人的完整信息
|
||||
// TaskExtDO taskExtDO = new TaskExtDO();
|
||||
// taskExtDO.setTaskId(task.getId());
|
||||
// taskExtDO.setTenantId(task.getTenantId());
|
||||
// taskExtDO.setUserId(assignee);
|
||||
// taskExtDO.setProcessDefinitionId(processDefinitionId);
|
||||
// taskExtDO.setUserName(task.getOwner());
|
||||
// taskExtMapper.updateByTaskId(taskExtDO);
|
||||
// }
|
||||
|
||||
// public void updateTaskExtCancel(DelegateTask task) {
|
||||
// // 需要在事务提交后,才进行查询。不然查询不到历史的原因
|
||||
// TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||
//
|
||||
// @Override
|
||||
// public void afterCommit() {
|
||||
// // 可能只是活动,不是任务,所以查询不到
|
||||
// String taskId = task.getId();
|
||||
// HistoricTaskInstance task = getHistoricTask(taskId);
|
||||
// if (task == null) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// // 如果任务拓展表已经是完成的状态,则跳过
|
||||
// TaskExtDO taskExt = taskExtMapper.selectByTaskId(taskId);
|
||||
// if (taskExt == null) {
|
||||
// log.error("[updateTaskExtCancel][taskId({}) 查找不到对应的记录,可能存在问题]", taskId);
|
||||
// return;
|
||||
// }
|
||||
// // 如果已经是最终的结果,则跳过
|
||||
// if (BpmProcessInstanceResultEnum.isEndResult(taskExt.getResult())) {
|
||||
// log.warn("[updateTaskExtCancel][taskId({}) 处于结果({}),无需进行更新]", taskId,
|
||||
// taskExt.getResult());
|
||||
// return;
|
||||
// }
|
||||
// taskExt.setEndTime(new Date());
|
||||
// taskExt.setResult(BpmProcessInstanceResultEnum.CANCEL.getResult());
|
||||
// taskExt.setComment(BpmProcessInstanceDeleteReasonEnum.translateReason(task.getDeleteReason()));
|
||||
//
|
||||
// // 更新任务
|
||||
// taskExtMapper.updateById(taskExt);
|
||||
// }
|
||||
//
|
||||
// });
|
||||
// }
|
||||
|
||||
public HistoricTaskInstance getHistoricTask(String id) {
|
||||
return historyService.createHistoricTaskInstanceQuery().taskId(id).singleResult();
|
||||
}
|
||||
|
||||
public Map<String, List<Task>> getTaskMapByProcessInstanceIds(List<String> processInstanceIds) {
|
||||
return BpmCollectionUtils.convertMultiMap(getTasksByProcessInstanceIds(processInstanceIds),
|
||||
Task::getProcessInstanceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Task> getTasksByProcessInstanceIds(List<String> processInstanceIds) {
|
||||
if (CollUtil.isEmpty(processInstanceIds)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return taskService.createTaskQuery().processInstanceIdIn(processInstanceIds).list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public FormInfo getTaskFormModel(String taskId) {
|
||||
Task task = getTask(taskId, null, null);
|
||||
@ -414,7 +301,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void assigneeTask(BpmTaskAssigneeDTO dto) {
|
||||
public void assigneeTask(BpmnTaskAssigneeDTO dto) {
|
||||
TaskQuery query = taskService.createTaskQuery()
|
||||
.taskId(dto.getTaskId()).taskTenantId(dto.getTenantId());
|
||||
if (StringUtils.hasLength(dto.getOriginUserId())) {
|
||||
@ -428,7 +315,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commentTask(BpmTaskCommentDTO dto) {
|
||||
public void commentTask(BpmnTaskCommentDTO dto) {
|
||||
TaskQuery query = taskService.createTaskQuery().taskId(dto.getTaskId());
|
||||
if (StringUtils.hasLength(dto.getTenantId())) {
|
||||
query.taskTenantId(dto.getTenantId());
|
||||
@ -4,12 +4,12 @@ import cn.axzo.workflow.core.common.BpmConstants;
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.repository.entity.ExtAxDictDO;
|
||||
import cn.axzo.workflow.core.repository.mapper.ExtAxDictMapper;
|
||||
import cn.axzo.workflow.core.service.BpmCategoryService;
|
||||
import cn.axzo.workflow.core.service.CategoryService;
|
||||
import cn.axzo.workflow.core.service.converter.BpmCategoryConverter;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.model.BpmCategoryItemVo;
|
||||
import cn.axzo.workflow.core.service.dto.request.category.CategoryCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.category.CategorySearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.category.CategoryUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.category.CategoryItemVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -31,7 +31,7 @@ import static cn.axzo.workflow.core.common.enums.BpmErrorCode.CATEGORY_VALUE_EXI
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class BpmCategoryServiceImpl extends ServiceImpl<ExtAxDictMapper, ExtAxDictDO> implements BpmCategoryService
|
||||
public class CategoryServiceImpl extends ServiceImpl<ExtAxDictMapper, ExtAxDictDO> implements CategoryService
|
||||
, BpmConstants {
|
||||
@Resource
|
||||
private ExtAxDictMapper bpmDictDataMapper;
|
||||
@ -39,7 +39,7 @@ public class BpmCategoryServiceImpl extends ServiceImpl<ExtAxDictMapper, ExtAxDi
|
||||
private final BpmCategoryConverter bpmCategoryConverter;
|
||||
|
||||
@Override
|
||||
public int createBpmCategory(BpmCategoryCreateDTO dto) {
|
||||
public int createCategory(CategoryCreateDTO dto) {
|
||||
Optional<ExtAxDictDO> oneOpt = this.lambdaQuery().eq(ExtAxDictDO::getLabel, dto.getLabel())
|
||||
.eq(ExtAxDictDO::getValue, dto.getValue())
|
||||
.oneOpt();
|
||||
@ -51,7 +51,7 @@ public class BpmCategoryServiceImpl extends ServiceImpl<ExtAxDictMapper, ExtAxDi
|
||||
return bpmDictDataMapper.insert(dict);
|
||||
}
|
||||
|
||||
private static void populateDict(BpmCategoryCreateDTO dto, ExtAxDictDO dict) {
|
||||
private static void populateDict(CategoryCreateDTO dto, ExtAxDictDO dict) {
|
||||
dict.setType(BPM_MODEL_CATEGORY);
|
||||
dict.setLabel(dto.getLabel());
|
||||
dict.setValue(dto.getValue());
|
||||
@ -62,7 +62,7 @@ public class BpmCategoryServiceImpl extends ServiceImpl<ExtAxDictMapper, ExtAxDi
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateBpmCategory(BpmCategoryUpdateDTO dto) {
|
||||
public int updateCategory(CategoryUpdateDTO dto) {
|
||||
Optional<ExtAxDictDO> dictDO = this.lambdaQuery().eq(ExtAxDictDO::getId, dto.getId())
|
||||
.oneOpt();
|
||||
if (!dictDO.isPresent()) {
|
||||
@ -75,26 +75,27 @@ public class BpmCategoryServiceImpl extends ServiceImpl<ExtAxDictMapper, ExtAxDi
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteBpmCategory(Long id) {
|
||||
public int deleteCategory(Long id) {
|
||||
return bpmDictDataMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<BpmCategoryItemVo> findBpmCategory(BpmCategoryDTO findDTO) {
|
||||
public Page<CategoryItemVO> findCategory(CategorySearchDTO dto) {
|
||||
|
||||
LambdaQueryWrapper<ExtAxDictDO> queryWrapper = Wrappers.lambdaQuery(ExtAxDictDO.class)
|
||||
.eq(StringUtils.isNotBlank(findDTO.getDictType()), ExtAxDictDO::getType, findDTO.getDictType())
|
||||
.eq(StringUtils.isNotBlank(findDTO.getLabel()), ExtAxDictDO::getLabel, findDTO.getLabel())
|
||||
.eq(StringUtils.isNotBlank(findDTO.getValue()), ExtAxDictDO::getValue, findDTO.getValue())
|
||||
.eq(Objects.nonNull(findDTO.getStatus()), ExtAxDictDO::getStatus, findDTO.getStatus())
|
||||
.eq(StringUtils.isNotBlank(findDTO.getTenantId()), ExtAxDictDO::getTenantId, findDTO.getTenantId());
|
||||
.eq(StringUtils.isNotBlank(dto.getDictType()), ExtAxDictDO::getType, dto.getDictType())
|
||||
.eq(StringUtils.isNotBlank(dto.getLabel()), ExtAxDictDO::getLabel, dto.getLabel())
|
||||
.eq(StringUtils.isNotBlank(dto.getValue()), ExtAxDictDO::getValue, dto.getValue())
|
||||
.eq(Objects.nonNull(dto.getStatus()), ExtAxDictDO::getStatus, dto.getStatus())
|
||||
.eq(StringUtils.isNotBlank(dto.getTenantId()), ExtAxDictDO::getTenantId, dto.getTenantId());
|
||||
|
||||
Page<ExtAxDictDO> page = bpmDictDataMapper.selectPage(findDTO.toPage(), queryWrapper);
|
||||
Page<ExtAxDictDO> page = bpmDictDataMapper.selectPage(new Page<>(dto.getPageNo(), dto.getPageSize()),
|
||||
queryWrapper);
|
||||
|
||||
List<BpmCategoryItemVo> categoryVOS =
|
||||
List<CategoryItemVO> categoryVOS =
|
||||
page.getRecords().stream().map(bpmCategoryConverter::toVo).collect(Collectors.toList());
|
||||
|
||||
Page<BpmCategoryItemVo> result = new Page<>();
|
||||
Page<CategoryItemVO> result = new Page<>();
|
||||
result.setRecords(categoryVOS);
|
||||
result.setSize(page.getSize());
|
||||
result.setTotal(page.getTotal());
|
||||
@ -1,8 +1,8 @@
|
||||
package cn.axzo.workflow.core.service.impl;
|
||||
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.service.BpmFormDefinitionService;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.FormDefinitionDTO;
|
||||
import cn.axzo.workflow.core.service.FormDefinitionService;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.definition.FormDefinitionDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.definition.FormDefinitionUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.definition.FormDefinitionVO;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@ -30,7 +30,7 @@ import java.util.Objects;
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class BpmFormDefinitionServiceImpl implements BpmFormDefinitionService {
|
||||
public class FormDefinitionServiceImpl implements FormDefinitionService {
|
||||
|
||||
@Resource
|
||||
private FormRepositoryService formRepositoryService;
|
||||
@ -1,8 +1,8 @@
|
||||
package cn.axzo.workflow.core.service.impl;
|
||||
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.service.BpmFormInstanceService;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.FormContentUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.FormInstanceService;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.instance.FormContentUpdateDTO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.TaskService;
|
||||
@ -24,7 +24,7 @@ import java.util.Objects;
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class BpmFormInstanceServiceImpl implements BpmFormInstanceService {
|
||||
public class FormInstanceServiceImpl implements FormInstanceService {
|
||||
|
||||
@Autowired
|
||||
private FormRepositoryService formRepositoryService;
|
||||
@ -1,13 +1,13 @@
|
||||
package cn.axzo.workflow.core.service.impl;
|
||||
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.service.BpmFormModelService;
|
||||
import cn.axzo.workflow.core.service.FormModelService;
|
||||
import cn.axzo.workflow.core.service.converter.FormModelConverter;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.model.FormModelCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.form.model.FormModelUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.BpmModelBaseVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.FormModelBaseVO;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.flowable.engine.ManagementService;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
@ -36,7 +36,7 @@ import static cn.axzo.workflow.core.common.BpmConstants.MODEL_META_INFO_FORM;
|
||||
* @since 2023/7/25 10:13
|
||||
*/
|
||||
@Service
|
||||
public class BpmFormModelServiceImpl implements BpmFormModelService {
|
||||
public class FormModelServiceImpl implements FormModelService {
|
||||
|
||||
@Resource
|
||||
private FormRepositoryService formRepositoryService;
|
||||
@ -85,7 +85,7 @@ public class BpmFormModelServiceImpl implements BpmFormModelService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmPageResult<BpmModelBaseVO> getModelPage(BpmModelSearchDTO dto) {
|
||||
public BpmPageResult<FormModelBaseVO> getModelPage(BpmnModelSearchDTO dto) {
|
||||
String tableName = managementService.getTableName(Model.class);
|
||||
StringBuilder baseQuerySql = new StringBuilder("SELECT * FROM ")
|
||||
.append(tableName);
|
||||
@ -126,7 +126,7 @@ public class BpmFormModelServiceImpl implements BpmFormModelService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmModelBaseVO getById(String formModelId, @Nullable String tenantId) {
|
||||
public FormModelBaseVO getById(String formModelId, @Nullable String tenantId) {
|
||||
Model model = repositoryService.getModel(formModelId);
|
||||
if (Objects.isNull(model) && !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_FORM)) {
|
||||
throw new WorkflowEngineException("模型不存在");
|
||||
@ -138,7 +138,7 @@ public class BpmFormModelServiceImpl implements BpmFormModelService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BpmModelBaseVO getByKey(String formModelKey, @Nullable String tenantId) {
|
||||
public FormModelBaseVO getByKey(String formModelKey, @Nullable String tenantId) {
|
||||
ModelQuery modelQuery = repositoryService.createModelQuery();
|
||||
if (StringUtils.hasLength(tenantId)) {
|
||||
modelQuery.modelTenantId(tenantId);
|
||||
@ -1,118 +0,0 @@
|
||||
package cn.axzo.workflow.server.controller.web;
|
||||
|
||||
import cn.axzo.workflow.core.service.BpmTaskService;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAssigneeDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmHistoricTaskInstanceGroupVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmHistoricTaskInstanceVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.form.api.FormInfo;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RequestMapping("/web/v1/api/process/task")
|
||||
@RestController
|
||||
public class BpmTaskController {
|
||||
|
||||
@Autowired
|
||||
private BpmTaskService bpmTaskService;
|
||||
|
||||
|
||||
/**
|
||||
* 待审核列表
|
||||
*/
|
||||
@GetMapping("/page/todo")
|
||||
public CommonResponse<BpmPageResult<BpmTaskTodoPageItemVO>> getTodoTaskPage(@RequestBody BpmTaskTodoPageSearchDTO dto) {
|
||||
log.info("待审核列表 getTodoTaskPage===>>>参数:{}", dto);
|
||||
return CommonResponse.success(bpmTaskService.getTodoTaskPage(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 已完成的审批列表
|
||||
*/
|
||||
@GetMapping("/page/done")
|
||||
public CommonResponse<BpmPageResult<BpmTaskDonePageItemVO>> getDoneTaskPage(@RequestBody BpmTaskTodoPageSearchDTO dto) {
|
||||
log.info("已完成的审批列表 getDoneTaskPage===>>>参数:{}", dto);
|
||||
return CommonResponse.success(bpmTaskService.getDoneTaskPage(dto));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 同意
|
||||
*/
|
||||
@PutMapping("/approve")
|
||||
public CommonResponse<Boolean> approveTask(@RequestBody BpmTaskAuditDTO dto) {
|
||||
log.info("同意 approveTask===>>>参数:{}", dto);
|
||||
bpmTaskService.approveTask(dto);
|
||||
return CommonResponse.success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 拒绝
|
||||
*/
|
||||
@PutMapping("/reject")
|
||||
public CommonResponse<Boolean> rejectTask(@Valid @RequestBody BpmTaskAuditDTO dto) {
|
||||
log.info("拒绝 rejectTask===>>>参数:{}", dto);
|
||||
bpmTaskService.rejectTask(dto);
|
||||
return CommonResponse.success(true);
|
||||
}
|
||||
|
||||
@Operation(summary = "直接修改审批任务的审批人")
|
||||
@PutMapping("/assignee")
|
||||
public CommonResponse<Boolean> assigneeTask(@RequestBody BpmTaskAssigneeDTO dto) {
|
||||
bpmTaskService.assigneeTask(dto);
|
||||
return CommonResponse.success(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取指定流程实例的审批过程信息
|
||||
* <p>
|
||||
* 同一层级机构
|
||||
*/
|
||||
@GetMapping("/list/flat")
|
||||
public CommonResponse<List<BpmHistoricTaskInstanceVO>> getTaskListFlatByProcessInstanceId(@RequestParam String processInstanceId,
|
||||
@RequestParam(required
|
||||
= false) String tenantId) {
|
||||
log.info("获取历史已审批的列表详情 getTaskListByProcessInstanceId===>>>参数:{}", processInstanceId);
|
||||
return CommonResponse.success(bpmTaskService.getHistoricTaskListByProcessInstanceId(processInstanceId,
|
||||
tenantId));
|
||||
}
|
||||
|
||||
@GetMapping("/list/group")
|
||||
public CommonResponse<List<BpmHistoricTaskInstanceGroupVO>> getTaskListGroupByProcessInstanceId(@RequestParam String processInstanceId,
|
||||
@RequestParam(required
|
||||
= false) String tenantId) {
|
||||
log.info("获取历史已审批的列表详情 getTaskListByProcessInstanceId===>>>参数:{}", processInstanceId);
|
||||
return CommonResponse.success(bpmTaskService.getHistoricTaskListGroupByProcessInstanceId(processInstanceId,
|
||||
tenantId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取实例正在审核的人列表
|
||||
*/
|
||||
@GetMapping("/active/listTasksByProcessInstanceId")
|
||||
public CommonResponse<List<Task>> getActiveTasksByProcessInstanceId(@RequestBody String processInstanceId) {
|
||||
log.info(" 获取实例正在审核的人列表 getActiveTasksByProcessInstanceId===>>>参数:{}", processInstanceId);
|
||||
List<Task> result = bpmTaskService.getActiveTasksByProcessInstanceId(processInstanceId);
|
||||
return CommonResponse.success(result);
|
||||
}
|
||||
|
||||
@GetMapping("/form")
|
||||
public CommonResponse<FormInfo> getTaskForm(@NotBlank(message = "任务 ID 不能为空") @RequestParam String taskId) {
|
||||
return CommonResponse.success(bpmTaskService.getTaskFormModel(taskId));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,10 +1,10 @@
|
||||
package cn.axzo.workflow.server.controller.web;
|
||||
package cn.axzo.workflow.server.controller.web.bpmn;
|
||||
|
||||
import cn.axzo.workflow.core.service.BpmProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.dto.request.definition.BpmProcessDefinitionUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.process.BpmProcessDefinitionPageDTO;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessDefinitionService;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.definition.BpmnProcessDefinitionUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.BpmnProcessDefinitionPageDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessDefinitionVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessDefinitionVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -17,26 +17,28 @@ import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import static cn.azxo.framework.common.model.CommonResponse.success;
|
||||
|
||||
@Slf4j
|
||||
@RequestMapping("/web/v1/api/process/definition")
|
||||
@RestController
|
||||
public class BpmProcessDefinitionController {
|
||||
public class BpmnProcessDefinitionController {
|
||||
@Resource
|
||||
private BpmProcessDefinitionService bpmProcessDefinitionService;
|
||||
private BpmnProcessDefinitionService bpmnProcessDefinitionService;
|
||||
|
||||
/**
|
||||
* 获取活跃的流程定义分页
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
public CommonResponse<BpmPageResult<BpmProcessDefinitionVO>> getProcessDefinitionPage(@Valid @RequestBody BpmProcessDefinitionPageDTO dto) {
|
||||
public CommonResponse<BpmPageResult<BpmnProcessDefinitionVO>> getProcessDefinitionPage(@Valid @RequestBody BpmnProcessDefinitionPageDTO dto) {
|
||||
log.info("获取活跃的流程定义分页getProcessDefinitionPage===>>>参数:{}", JSON.toJSONString(dto));
|
||||
return CommonResponse.success(bpmProcessDefinitionService.getProcessDefinitionPage(dto));
|
||||
return success(bpmnProcessDefinitionService.getProcessDefinitionPage(dto));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
public CommonResponse updateProcessDefinition(@RequestBody BpmProcessDefinitionUpdateDTO dto) {
|
||||
bpmProcessDefinitionService.updateProcessDefinition(dto);
|
||||
return CommonResponse.success(true);
|
||||
public CommonResponse updateProcessDefinition(@RequestBody BpmnProcessDefinitionUpdateDTO dto) {
|
||||
bpmnProcessDefinitionService.updateProcessDefinition(dto);
|
||||
return success(true);
|
||||
|
||||
}
|
||||
|
||||
@ -47,9 +49,9 @@ public class BpmProcessDefinitionController {
|
||||
* @return 流程定义
|
||||
*/
|
||||
@GetMapping("/get")
|
||||
public CommonResponse<BpmProcessDefinitionVO> getProcessDefinition(@Valid @NotBlank(message = "流程定义ID不能为空") @RequestParam String id) {
|
||||
public CommonResponse<BpmnProcessDefinitionVO> getProcessDefinition(@Valid @NotBlank(message = "流程定义ID不能为空") @RequestParam String id) {
|
||||
log.info("获取活跃的流程定义分页getProcessDefinition===>>>参数:{}", JSON.toJSONString(id));
|
||||
return CommonResponse.success(bpmProcessDefinitionService.getProcessDefinition(id));
|
||||
return success(bpmnProcessDefinitionService.getProcessDefinition(id));
|
||||
}
|
||||
|
||||
|
||||
@ -63,8 +65,8 @@ public class BpmProcessDefinitionController {
|
||||
public CommonResponse<ProcessDefinition> getProcessDefinitionByDeploymentId(@Valid @NotBlank(message = "流程部署ID" +
|
||||
"不能为空") @RequestParam String deploymentId) {
|
||||
log.info(" 获得 deploymentId 对应的 getProcessDefinitionByDeploymentId===>>>参数:{}", JSON.toJSONString(deploymentId));
|
||||
ProcessDefinition result = bpmProcessDefinitionService.getProcessDefinitionByDeploymentId(deploymentId);
|
||||
return CommonResponse.success(result);
|
||||
ProcessDefinition result = bpmnProcessDefinitionService.getProcessDefinitionByDeploymentId(deploymentId);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
|
||||
@ -75,10 +77,11 @@ public class BpmProcessDefinitionController {
|
||||
* @return 流程定义
|
||||
*/
|
||||
@GetMapping("/active/getByKey")
|
||||
public CommonResponse<BpmProcessDefinitionVO> getActiveProcessDefinitionByKey(@Valid @NotBlank(message = "模型定义KEY" +
|
||||
public CommonResponse<BpmnProcessDefinitionVO> getActiveProcessDefinitionByKey(@Valid @NotBlank(message =
|
||||
"模型定义KEY" +
|
||||
"不能为空") @RequestParam String key) {
|
||||
log.info("获得流程定义标识对应的激活的流程定义 getActiveProcessDefinitionByKey===>>>参数:{}", JSON.toJSONString(key));
|
||||
return CommonResponse.success(bpmProcessDefinitionService.getActiveProcessDefinitionByKey(key));
|
||||
return success(bpmnProcessDefinitionService.getActiveProcessDefinitionByKey(key));
|
||||
}
|
||||
|
||||
|
||||
@ -92,8 +95,8 @@ public class BpmProcessDefinitionController {
|
||||
public CommonResponse<Boolean> getActiveProcessDefinitionByKey(@Valid @NotBlank(message = "流程定义ID不能为空") @RequestParam String processDefinitionId,
|
||||
@Valid @NotNull(message = "状态不能为空") @RequestParam Integer state) {
|
||||
log.info("挂起/激活流程 updateProcessDefinitionSuspendedState===>>>参数:{},{}", processDefinitionId, state);
|
||||
bpmProcessDefinitionService.updateProcessDefinitionSuspendedState(processDefinitionId, state);
|
||||
return CommonResponse.success(true);
|
||||
bpmnProcessDefinitionService.updateProcessDefinitionSuspendedState(processDefinitionId, state);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
|
||||
@ -106,7 +109,7 @@ public class BpmProcessDefinitionController {
|
||||
public CommonResponse<String> getActiveProcessDefinitionId(@Valid @NotBlank(message = "租户不能为空") @RequestParam String tenantId,
|
||||
@Valid @NotBlank(message = "分类不能为空") @RequestParam String category) {
|
||||
log.info("挂起/激活流程 getActiveProcessDefinitionId===>>>参数:{},{}", tenantId, category);
|
||||
String result = bpmProcessDefinitionService.getActiveProcessDefinitionId(tenantId, category);
|
||||
return CommonResponse.success(result);
|
||||
String result = bpmnProcessDefinitionService.getActiveProcessDefinitionId(tenantId, category);
|
||||
return success(result);
|
||||
}
|
||||
}
|
||||
@ -1,73 +1,80 @@
|
||||
package cn.axzo.workflow.server.controller.web;
|
||||
package cn.axzo.workflow.server.controller.web.bpmn;
|
||||
|
||||
import cn.axzo.workflow.core.service.BpmProcessInstanceService;
|
||||
import cn.axzo.workflow.core.service.dto.request.process.*;
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessInstanceService;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.process.*;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.process.BpmProcessInstanceVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstancePageItemVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
import static cn.azxo.framework.common.model.CommonResponse.success;
|
||||
|
||||
@Slf4j
|
||||
@RequestMapping("/web/v1/api/process/instance")
|
||||
@RestController
|
||||
public class BpmProcessInstanceController {
|
||||
public class BpmnProcessInstanceController {
|
||||
|
||||
@Autowired
|
||||
private BpmProcessInstanceService bpmProcessInstanceService;
|
||||
private BpmnProcessInstanceService bpmnProcessInstanceService;
|
||||
|
||||
|
||||
/**
|
||||
* 我发起的审批列表
|
||||
*/
|
||||
@GetMapping("/page/my")
|
||||
public CommonResponse<BpmPageResult<BpmProcessInstancePageItemVO>> getMyProcessInstancePage(@RequestBody BpmProcessInstanceMyPageReqVO dto) {
|
||||
public CommonResponse<BpmPageResult<BpmnProcessInstancePageItemVO>> getMyProcessInstancePage(@RequestBody BpmnProcessInstanceMyPageReqVO dto) {
|
||||
log.info("我发起的审批列表 getOwnTaskPage===>>>参数:{}", JSON.toJSONString(dto));
|
||||
BpmPageResult<BpmProcessInstancePageItemVO> result = bpmProcessInstanceService.getMyProcessInstancePage(dto);
|
||||
return CommonResponse.success(result);
|
||||
BpmPageResult<BpmnProcessInstancePageItemVO> result = bpmnProcessInstanceService.getMyProcessInstancePage(dto);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起审核
|
||||
*/
|
||||
@PostMapping("/create")
|
||||
public CommonResponse<String> createProcessInstance(@Valid @RequestBody BpmProcessInstanceCreateDTO dto) {
|
||||
public CommonResponse<String> createProcessInstance(@Valid @RequestBody BpmnProcessInstanceCreateDTO dto) {
|
||||
log.info("发起审核createProcessInstance===>>>参数:{}", JSON.toJSONString(dto));
|
||||
String result = bpmProcessInstanceService.createProcessInstance(dto);
|
||||
return CommonResponse.success(result);
|
||||
String result = bpmnProcessInstanceService.createProcessInstance(dto);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
@PostMapping("/form/create")
|
||||
public CommonResponse<String> createProcessInstanceWith(@Valid @RequestBody BpmProcessInstanceCreateWithFormDTO dto) {
|
||||
public CommonResponse<String> createProcessInstanceWith(@Valid @RequestBody BpmnProcessInstanceCreateWithFormDTO dto) {
|
||||
log.info("发起审核createProcessInstanceWith===>>>参数:{}", JSON.toJSONString(dto));
|
||||
String result = bpmProcessInstanceService.createProcessInstanceWithForm(dto);
|
||||
return CommonResponse.success(result);
|
||||
String result = bpmnProcessInstanceService.createProcessInstanceWithForm(dto);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
@DeleteMapping("/cancel")
|
||||
public CommonResponse<Boolean> cancelProcessInstant(@Valid @RequestBody BpmProcessInstanceCancelDTO dto) {
|
||||
public CommonResponse<Boolean> cancelProcessInstant(@Valid @RequestBody BpmnProcessInstanceCancelDTO dto) {
|
||||
log.info("取消审核cancelProcessInstant===>>>参数:{}", JSON.toJSONString(dto));
|
||||
return CommonResponse.success(bpmProcessInstanceService.cancelProcessInstance(dto));
|
||||
if (!StringUtils.hasLength(dto.getId()) && !StringUtils.hasLength(dto.getBusinessKey())) {
|
||||
throw new WorkflowEngineException("条件必须二选一");
|
||||
}
|
||||
return success(bpmnProcessInstanceService.cancelProcessInstance(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得流程实例
|
||||
*
|
||||
* @param dto {@link BpmProcessInstanceQueryDTO} 可根据 Id,BusinessKey进行查询
|
||||
* @param dto {@link BpmnProcessInstanceQueryDTO} 可根据 Id,BusinessKey进行查询
|
||||
* @return 流程实例, 租户Id不必传
|
||||
*/
|
||||
@GetMapping("/get")
|
||||
public CommonResponse<BpmProcessInstanceVO> getProcessInstanceVO(@RequestBody BpmProcessInstanceQueryDTO dto) {
|
||||
public CommonResponse<BpmnProcessInstanceVO> getProcessInstanceVO(@RequestBody BpmnProcessInstanceQueryDTO dto) {
|
||||
log.info("获得历史的流程实例 getProcessInstanceVO===>>>参数:{}", JSON.toJSONString(dto));
|
||||
BpmProcessInstanceVO result = bpmProcessInstanceService.getProcessInstanceVO(dto);
|
||||
return CommonResponse.success(result);
|
||||
BpmnProcessInstanceVO result = bpmnProcessInstanceService.getProcessInstanceVO(dto);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,14 +88,14 @@ public class BpmProcessInstanceController {
|
||||
public CommonResponse<Boolean> updateProcessStatus(@RequestParam String processDefinitionId,
|
||||
@RequestParam Integer status) {
|
||||
log.info("获得流程实例 updateProcessStatus===>>>参数:{},{}", processDefinitionId, status);
|
||||
Boolean result = bpmProcessInstanceService.updateProcessStatus(processDefinitionId, status);
|
||||
return CommonResponse.success(result);
|
||||
Boolean result = bpmnProcessInstanceService.updateProcessStatus(processDefinitionId, status);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
@GetMapping("/graphical")
|
||||
public CommonResponse<ObjectNode> processInstanceGraphical(@RequestParam String processInstanceId,
|
||||
@RequestParam String tenantId) {
|
||||
return CommonResponse.success(bpmProcessInstanceService.getProcessInstanceGraphical(processInstanceId,
|
||||
return success(bpmnProcessInstanceService.getProcessInstanceGraphical(processInstanceId,
|
||||
tenantId));
|
||||
}
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
package cn.axzo.workflow.server.controller.web;
|
||||
package cn.axzo.workflow.server.controller.web.bpmn;
|
||||
|
||||
import cn.axzo.workflow.core.service.BpmProcessModelService;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.model.BpmModelUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.BpmnProcessModelService;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelCreateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.model.BpmnModelUpdateDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.BpmModelBaseVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.model.BpmModelDetailVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.model.BpmnModelDetailVO;
|
||||
import cn.axzo.workflow.core.service.dto.response.form.model.FormModelBaseVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@ -19,25 +19,27 @@ import org.springframework.web.bind.annotation.*;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
import static cn.azxo.framework.common.model.CommonResponse.success;
|
||||
|
||||
@Tag(name = "运维管理 - 流程模型")
|
||||
@Slf4j
|
||||
@RequestMapping("/web/v1/api/process/model")
|
||||
@RestController
|
||||
@Validated
|
||||
public class BpmProcessModelController {
|
||||
public class BpmnProcessModelController {
|
||||
|
||||
@Autowired
|
||||
private BpmProcessModelService bpmProcessModelService;
|
||||
private BpmnProcessModelService bpmnProcessModelService;
|
||||
|
||||
/**
|
||||
* 获取流程模型的查询结果
|
||||
*/
|
||||
@Operation(summary = "流程模型列表")
|
||||
@GetMapping("/page")
|
||||
public CommonResponse<BpmPageResult<BpmModelBaseVO>> page(@Valid @RequestBody BpmModelSearchDTO dto) {
|
||||
public CommonResponse<BpmPageResult<FormModelBaseVO>> page(@Valid @RequestBody BpmnModelSearchDTO dto) {
|
||||
log.info("获取流程模型getModelPage===>>>参数:{}", JSON.toJSONString(dto));
|
||||
BpmPageResult<BpmModelBaseVO> result = bpmProcessModelService.getModelPage(dto);
|
||||
return CommonResponse.success(result);
|
||||
BpmPageResult<FormModelBaseVO> result = bpmnProcessModelService.getModelPage(dto);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -46,17 +48,17 @@ public class BpmProcessModelController {
|
||||
*/
|
||||
@Operation(summary = "创建流程模型")
|
||||
@PostMapping("/create")
|
||||
public CommonResponse<String> create(@Valid @RequestBody BpmModelCreateDTO dto) {
|
||||
public CommonResponse<String> create(@Valid @RequestBody BpmnModelCreateDTO dto) {
|
||||
log.info("创建流程createBpmModel===>>>参数:{}", JSON.toJSONString(dto));
|
||||
String result = bpmProcessModelService.createBpmModel(dto);
|
||||
return CommonResponse.success(result);
|
||||
String result = bpmnProcessModelService.createBpmModel(dto);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
@Operation(summary = "通过 Xml 创建模型", hidden = true)
|
||||
@PostMapping("/xml/create")
|
||||
public CommonResponse<String> createWithXml() {
|
||||
// TODO 不完善的接口
|
||||
return CommonResponse.success(bpmProcessModelService.createBpmModelWithXml(""));
|
||||
return success(bpmnProcessModelService.createBpmModelWithXml(""));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -64,11 +66,11 @@ public class BpmProcessModelController {
|
||||
*/
|
||||
@Operation(summary = "通过模型ID查询指定流程模型")
|
||||
@GetMapping("/get")
|
||||
public CommonResponse<BpmModelDetailVO> getById(@RequestParam String processModelId,
|
||||
@RequestParam String tenantId) {
|
||||
public CommonResponse<BpmnModelDetailVO> getById(@RequestParam String processModelId,
|
||||
@RequestParam String tenantId) {
|
||||
log.info("获取模型getModelDetailById===>>>参数:{}", JSON.toJSONString(processModelId));
|
||||
BpmModelDetailVO result = bpmProcessModelService.getById(processModelId, tenantId);
|
||||
return CommonResponse.success(result);
|
||||
BpmnModelDetailVO result = bpmnProcessModelService.getById(processModelId, tenantId);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
|
||||
@ -77,11 +79,11 @@ public class BpmProcessModelController {
|
||||
*/
|
||||
@Operation(summary = "通过模型KEY查询指定流程模型")
|
||||
@GetMapping("/getByKey")
|
||||
public CommonResponse<BpmModelDetailVO> getByKey(@RequestParam String processModelKey,
|
||||
@RequestParam String tenantId) {
|
||||
public CommonResponse<BpmnModelDetailVO> getByKey(@RequestParam String processModelKey,
|
||||
@RequestParam String tenantId) {
|
||||
log.info("获取模型getModelDetailByKey===>>>参数:{}", JSON.toJSONString(processModelKey));
|
||||
BpmModelDetailVO result = bpmProcessModelService.getByKey(processModelKey, tenantId);
|
||||
return CommonResponse.success(result);
|
||||
BpmnModelDetailVO result = bpmnProcessModelService.getByKey(processModelKey, tenantId);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
|
||||
@ -90,10 +92,10 @@ public class BpmProcessModelController {
|
||||
*/
|
||||
@Operation(summary = "更新流程模型")
|
||||
@PutMapping("/update")
|
||||
public CommonResponse<String> update(@Valid @RequestBody BpmModelUpdateDTO dto) {
|
||||
public CommonResponse<String> update(@Valid @RequestBody BpmnModelUpdateDTO dto) {
|
||||
log.info("修改流程信息updateBpmModel===>>>参数:{}", JSON.toJSONString(dto));
|
||||
bpmProcessModelService.updateBpmModel(dto);
|
||||
return CommonResponse.success();
|
||||
bpmnProcessModelService.updateBpmModel(dto);
|
||||
return success();
|
||||
}
|
||||
|
||||
|
||||
@ -106,8 +108,8 @@ public class BpmProcessModelController {
|
||||
public CommonResponse<String> deployById(@Valid @NotBlank(message = "模型 ID 不能为空") @RequestParam String processModelId,
|
||||
@RequestParam(required = false) String tenantId) {
|
||||
log.info("部署模型deployBpmModelById===>>>参数:{}", JSON.toJSONString(processModelId));
|
||||
String result = bpmProcessModelService.deployBpmModelById(processModelId, tenantId);
|
||||
return CommonResponse.success(result);
|
||||
String result = bpmnProcessModelService.deployBpmModelById(processModelId, tenantId);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
|
||||
@ -120,8 +122,8 @@ public class BpmProcessModelController {
|
||||
public CommonResponse<String> deployByKey(@Valid @NotBlank(message = "模型 KEY 不能为空") @RequestParam String processModelKey,
|
||||
@RequestParam(required = false) String tenantId) {
|
||||
log.info("部署模型deployBpmModelByKey===>>>参数:{}", JSON.toJSONString(processModelKey));
|
||||
String result = bpmProcessModelService.deployBpmModelByKey(processModelKey, tenantId);
|
||||
return CommonResponse.success(result);
|
||||
String result = bpmnProcessModelService.deployBpmModelByKey(processModelKey, tenantId);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
|
||||
@ -133,8 +135,8 @@ public class BpmProcessModelController {
|
||||
public CommonResponse<Void> deleteById(@RequestParam String processModelId,
|
||||
@RequestParam(required = false) String tenantId) {
|
||||
log.info("删除模型deleteBpmModel===>>>参数:{}", JSON.toJSONString(processModelId));
|
||||
bpmProcessModelService.deleteBpmModelById(processModelId, tenantId);
|
||||
return CommonResponse.success();
|
||||
bpmnProcessModelService.deleteBpmModelById(processModelId, tenantId);
|
||||
return success();
|
||||
}
|
||||
|
||||
@Operation(summary = "删除指定模型 KEY 的流程模型")
|
||||
@ -142,8 +144,8 @@ public class BpmProcessModelController {
|
||||
public CommonResponse<Void> deleteByKey(@RequestParam String processModelKey,
|
||||
@RequestParam(required = false) String tenantId) {
|
||||
log.info("删除模型deleteBpmModel===>>>参数:{}", JSON.toJSONString(processModelKey));
|
||||
bpmProcessModelService.deleteBpmModelByKey(processModelKey, tenantId);
|
||||
return CommonResponse.success();
|
||||
bpmnProcessModelService.deleteBpmModelByKey(processModelKey, tenantId);
|
||||
return success();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,116 @@
|
||||
package cn.axzo.workflow.server.controller.web.bpmn;
|
||||
|
||||
import cn.axzo.workflow.core.service.BpmnTaskService;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAssigneeDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskAuditDTO;
|
||||
import cn.axzo.workflow.core.service.dto.request.bpmn.task.BpmnTaskTodoPageSearchDTO;
|
||||
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
|
||||
import cn.axzo.workflow.core.service.dto.response.bpmn.task.*;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.form.api.FormInfo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.azxo.framework.common.model.CommonResponse.success;
|
||||
|
||||
@Slf4j
|
||||
@RequestMapping("/web/v1/api/process/task")
|
||||
@RestController
|
||||
public class BpmnTaskController {
|
||||
|
||||
@Autowired
|
||||
private BpmnTaskService bpmnTaskService;
|
||||
|
||||
|
||||
/**
|
||||
* 待审核列表
|
||||
*/
|
||||
@GetMapping("/page/todo")
|
||||
public CommonResponse<BpmPageResult<BpmTaskTodoPageItemVO>> getTodoTaskPage(@RequestBody BpmnTaskTodoPageSearchDTO dto) {
|
||||
log.info("待审核列表 getTodoTaskPage===>>>参数:{}", dto);
|
||||
return success(bpmnTaskService.getTodoTaskPage(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 已完成的审批列表
|
||||
*/
|
||||
@GetMapping("/page/done")
|
||||
public CommonResponse<BpmPageResult<BpmnTaskDonePageItemVO>> getDoneTaskPage(@RequestBody BpmnTaskTodoPageSearchDTO dto) {
|
||||
log.info("已完成的审批列表 getDoneTaskPage===>>>参数:{}", dto);
|
||||
return success(bpmnTaskService.getDoneTaskPage(dto));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 同意
|
||||
*/
|
||||
@PutMapping("/approve")
|
||||
public CommonResponse<Boolean> approveTask(@RequestBody BpmnTaskAuditDTO dto) {
|
||||
log.info("同意 approveTask===>>>参数:{}", dto);
|
||||
bpmnTaskService.approveTask(dto);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 拒绝
|
||||
*/
|
||||
@PutMapping("/reject")
|
||||
public CommonResponse<Boolean> rejectTask(@Valid @RequestBody BpmnTaskAuditDTO dto) {
|
||||
log.info("拒绝 rejectTask===>>>参数:{}", dto);
|
||||
bpmnTaskService.rejectTask(dto);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@Operation(summary = "直接修改审批任务的审批人")
|
||||
@PutMapping("/assignee")
|
||||
public CommonResponse<Boolean> assigneeTask(@RequestBody BpmnTaskAssigneeDTO dto) {
|
||||
bpmnTaskService.assigneeTask(dto);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取指定流程实例的审批过程信息
|
||||
* <p>
|
||||
* 同一层级机构
|
||||
*/
|
||||
@GetMapping("/list/flat")
|
||||
public CommonResponse<List<BpmnHistoricTaskInstanceVO>> getTaskListFlatByProcessInstanceId(@RequestParam String processInstanceId,
|
||||
@RequestParam(required
|
||||
= false) String tenantId) {
|
||||
log.info("获取历史已审批的列表详情 getTaskListByProcessInstanceId===>>>参数:{}", processInstanceId);
|
||||
return success(bpmnTaskService.getHistoricTaskListByProcessInstanceId(processInstanceId,
|
||||
tenantId));
|
||||
}
|
||||
|
||||
@GetMapping("/list/group")
|
||||
public CommonResponse<List<BpmnHistoricTaskInstanceGroupVO>> getTaskListGroupByProcessInstanceId(@RequestParam String processInstanceId,
|
||||
@RequestParam(required
|
||||
= false) String tenantId) {
|
||||
log.info("获取历史已审批的列表详情 getTaskListByProcessInstanceId===>>>参数:{}", processInstanceId);
|
||||
return success(bpmnTaskService.getHistoricTaskListGroupByProcessInstanceId(processInstanceId,
|
||||
tenantId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取实例正在审核的人列表
|
||||
*/
|
||||
@GetMapping("/active/list")
|
||||
public CommonResponse<List<BpmTaskInstanceVO>> getActiveTasksByProcessInstanceId(@RequestParam String processInstanceId,
|
||||
@RequestParam String tenantId) {
|
||||
log.info(" 获取实例正在审核的人列表 getActiveTasksByProcessInstanceId===>>>参数:{}", processInstanceId);
|
||||
return success(bpmnTaskService.getActiveTasksByProcessInstanceId(processInstanceId, tenantId));
|
||||
}
|
||||
|
||||
@GetMapping("/form")
|
||||
public CommonResponse<FormInfo> getTaskForm(@NotBlank(message = "任务 ID 不能为空") @RequestParam String taskId) {
|
||||
return success(bpmnTaskService.getTaskFormModel(taskId));
|
||||
}
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user