add 添加流程撤销
remove 删除无用代码
This commit is contained in:
parent
75b17b5a58
commit
4a43f48120
@ -7,7 +7,8 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.warm.flow.core.entity.Instance;
|
||||
import org.dromara.warm.flow.core.service.InsService;
|
||||
import org.dromara.workflow.domain.bo.InstanceBo;
|
||||
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
||||
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||
import org.dromara.workflow.service.IFlwInstanceService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -75,11 +76,11 @@ public class FlwInstanceController extends BaseController {
|
||||
/**
|
||||
* 撤销流程
|
||||
*
|
||||
* @param businessId 业务id
|
||||
* @param bo 参数
|
||||
*/
|
||||
@PutMapping("/cancelProcessApply/{businessId}")
|
||||
public R<Void> cancelProcessApply(@PathVariable String businessId) {
|
||||
return toAjax(flwInstanceService.cancelProcessApply(businessId));
|
||||
@PutMapping("/cancelProcessApply")
|
||||
public R<Void> cancelProcessApply(@RequestBody FlowCancelBo bo) {
|
||||
return toAjax(flwInstanceService.cancelProcessApply(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -101,12 +102,12 @@ public class FlwInstanceController extends BaseController {
|
||||
/**
|
||||
* 获取当前登陆人发起的流程实例
|
||||
*
|
||||
* @param instanceBo 参数
|
||||
* @param flowInstanceBo 参数
|
||||
* @param pageQuery 分页
|
||||
*/
|
||||
@GetMapping("/getPageByCurrent")
|
||||
public TableDataInfo<FlowInstanceVo> getPageByCurrent(InstanceBo instanceBo, PageQuery pageQuery) {
|
||||
return flwInstanceService.getPageByCurrent(instanceBo, pageQuery);
|
||||
public TableDataInfo<FlowInstanceVo> getPageByCurrent(FlowInstanceBo flowInstanceBo, PageQuery pageQuery) {
|
||||
return flwInstanceService.getPageByCurrent(flowInstanceBo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
|
@ -159,7 +159,7 @@ public class FlwTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/terminationTask")
|
||||
public R<Boolean> terminationTask(@RequestBody TerminationBo bo) {
|
||||
public R<Boolean> terminationTask(@RequestBody FlowTerminationBo bo) {
|
||||
return R.ok(flwTaskService.terminationTask(bo));
|
||||
}
|
||||
|
||||
@ -171,7 +171,7 @@ public class FlwTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/delegateTask")
|
||||
public R<Void> delegateTask(@Validated({AddGroup.class}) @RequestBody DelegateBo bo) {
|
||||
public R<Void> delegateTask(@Validated({AddGroup.class}) @RequestBody FlowDelegateBo bo) {
|
||||
FlowParams flowParams = new FlowParams();
|
||||
flowParams.addHandlers(Collections.singletonList(USER.getCode()+bo.getUserId()));
|
||||
flowParams.handler(LoginHelper.getUserIdStr());
|
||||
@ -189,7 +189,7 @@ public class FlwTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/transferTask")
|
||||
public R<Void> transferTask(@Validated({AddGroup.class}) @RequestBody TransferBo bo) {
|
||||
public R<Void> transferTask(@Validated({AddGroup.class}) @RequestBody FlowTransferBo bo) {
|
||||
FlowParams flowParams = new FlowParams();
|
||||
flowParams.addHandlers(Collections.singletonList(USER.getCode()+bo.getUserId()));
|
||||
flowParams.handler(LoginHelper.getUserIdStr());
|
||||
|
@ -1,40 +0,0 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 加签参数请求
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class AddMultiBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@NotBlank(message = "任务ID不能为空", groups = AddGroup.class)
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 加签人员id
|
||||
*/
|
||||
@NotEmpty(message = "加签人员不能为空", groups = AddGroup.class)
|
||||
private List<Long> assignees;
|
||||
|
||||
/**
|
||||
* 加签人员名称
|
||||
*/
|
||||
@NotEmpty(message = "加签人员不能为空", groups = AddGroup.class)
|
||||
private List<String> assigneeNames;
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 减签参数请求
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class DeleteMultiBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@NotBlank(message = "任务ID不能为空", groups = AddGroup.class)
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 减签人员
|
||||
*/
|
||||
@NotEmpty(message = "减签人员不能为空", groups = AddGroup.class)
|
||||
private List<String> taskIds;
|
||||
|
||||
/**
|
||||
* 执行id
|
||||
*/
|
||||
@NotEmpty(message = "执行id不能为空", groups = AddGroup.class)
|
||||
private List<String> executionIds;
|
||||
|
||||
/**
|
||||
* 人员id
|
||||
*/
|
||||
@NotEmpty(message = "减签人员id不能为空", groups = AddGroup.class)
|
||||
private List<Long> assigneeIds;
|
||||
|
||||
/**
|
||||
* 人员名称
|
||||
*/
|
||||
@NotEmpty(message = "减签人员不能为空", groups = AddGroup.class)
|
||||
private List<String> assigneeNames;
|
||||
}
|
@ -8,24 +8,24 @@ import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程实例作废请求对象
|
||||
* 撤销任务请求对象
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class ProcessInvalidBo implements Serializable {
|
||||
public class FlowCancelBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 业务id
|
||||
* 任务ID
|
||||
*/
|
||||
@NotBlank(message = "业务id不能为空", groups = {AddGroup.class})
|
||||
private String businessKey;
|
||||
@NotBlank(message = "业务ID不能为空", groups = AddGroup.class)
|
||||
private String businessId;
|
||||
|
||||
/**
|
||||
* 作废原因
|
||||
* 办理意见
|
||||
*/
|
||||
private String deleteReason;
|
||||
private String message;
|
||||
}
|
@ -13,7 +13,7 @@ import java.io.Serializable;
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class DelegateBo implements Serializable {
|
||||
public class FlowDelegateBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
@ -4,10 +4,9 @@ import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务请求对象
|
||||
* 流程实例请求对象
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@ -18,27 +17,27 @@ public class FlowInstanceBo implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
private String nodeName;
|
||||
|
||||
/**
|
||||
* 流程定义名称
|
||||
* 流程名称
|
||||
*/
|
||||
private String flowName;
|
||||
|
||||
/**
|
||||
* 流程定义编码
|
||||
* 流程编码
|
||||
*/
|
||||
private String flowCode;
|
||||
|
||||
/**
|
||||
* 流程实例id
|
||||
* 任务发起人
|
||||
*/
|
||||
private Long instanceId;
|
||||
private String startUserId;
|
||||
|
||||
/**
|
||||
* 权限列表
|
||||
* 业务id
|
||||
*/
|
||||
private List<String> permissionList;
|
||||
private String businessKey;
|
||||
|
||||
/**
|
||||
* 模型分类
|
||||
*/
|
||||
private String categoryCode;
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ import java.io.Serializable;
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class TerminationBo implements Serializable {
|
||||
public class FlowTerminationBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
@ -6,7 +6,6 @@ import org.dromara.common.core.validate.AddGroup;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 终转办务请求对象
|
||||
@ -14,7 +13,7 @@ import java.util.List;
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class TransferBo implements Serializable {
|
||||
public class FlowTransferBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
@ -1,43 +0,0 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程实例请求对象
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class InstanceBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 流程名称
|
||||
*/
|
||||
private String flowName;
|
||||
|
||||
/**
|
||||
* 流程编码
|
||||
*/
|
||||
private String flowCode;
|
||||
|
||||
/**
|
||||
* 任务发起人
|
||||
*/
|
||||
private String startUserId;
|
||||
|
||||
/**
|
||||
* 业务id
|
||||
*/
|
||||
private String businessKey;
|
||||
|
||||
/**
|
||||
* 模型分类
|
||||
*/
|
||||
private String categoryCode;
|
||||
}
|
@ -1,66 +0,0 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.workflow.common.constant.FlowConstant;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 模型请求对象
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class ModelBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 模型id
|
||||
*/
|
||||
@NotBlank(message = "模型ID不能为空", groups = {EditGroup.class})
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
@NotBlank(message = "模型名称不能为空", groups = {AddGroup.class})
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 模型标识key
|
||||
*/
|
||||
@NotBlank(message = "模型标识key不能为空", groups = {AddGroup.class})
|
||||
@Pattern(regexp = FlowConstant.MODEL_KEY_PATTERN, message = "模型标识key只能字符或者下划线开头", groups = {AddGroup.class})
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 模型分类
|
||||
*/
|
||||
@NotBlank(message = "模型分类不能为空", groups = {AddGroup.class})
|
||||
private String categoryCode;
|
||||
|
||||
/**
|
||||
* 模型XML
|
||||
*/
|
||||
@NotBlank(message = "模型XML不能为空", groups = {AddGroup.class})
|
||||
private String xml;
|
||||
|
||||
/**
|
||||
* 模型SVG图片
|
||||
*/
|
||||
@NotBlank(message = "模型SVG不能为空", groups = {EditGroup.class})
|
||||
private String svg;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String description;
|
||||
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程定义请求对象
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class ProcessDefinitionBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 流程定义名称key
|
||||
*/
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 流程定义名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 模型分类
|
||||
*/
|
||||
private String categoryCode;
|
||||
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* 用户加签查询
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class SysUserMultiBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 人员名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 人员名称
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private String deptId;
|
||||
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
private String taskId;
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 任务请求对象
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class TaskBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 流程定义名称
|
||||
*/
|
||||
private String processDefinitionName;
|
||||
|
||||
/**
|
||||
* 流程定义key
|
||||
*/
|
||||
private String processDefinitionKey;
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务催办
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class TaskUrgingBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 流程实例id
|
||||
*/
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 消息类型
|
||||
*/
|
||||
private List<String> messageType;
|
||||
|
||||
/**
|
||||
* 催办内容(为空默认系统内置信息)
|
||||
*/
|
||||
private String message;
|
||||
}
|
@ -129,10 +129,15 @@ public class FlowHisTaskVo implements Serializable {
|
||||
private String skipType;
|
||||
|
||||
/**
|
||||
* 流程状态(1审批中 2 审批通过 9已退回 10失效)
|
||||
* 流程状态
|
||||
*/
|
||||
private String flowStatus;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
private String flowTaskStatus;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
|
@ -4,7 +4,8 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.warm.flow.core.entity.Instance;
|
||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
||||
import org.dromara.workflow.domain.bo.InstanceBo;
|
||||
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
||||
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||
|
||||
import java.util.List;
|
||||
@ -62,10 +63,10 @@ public interface IFlwInstanceService {
|
||||
/**
|
||||
* 撤销流程
|
||||
*
|
||||
* @param businessId 业务id
|
||||
* @param bo 参数
|
||||
* @return 结果
|
||||
*/
|
||||
boolean cancelProcessApply(String businessId);
|
||||
boolean cancelProcessApply(FlowCancelBo bo);
|
||||
|
||||
/**
|
||||
* 获取当前登陆人发起的流程实例
|
||||
@ -74,7 +75,7 @@ public interface IFlwInstanceService {
|
||||
* @param pageQuery 分页
|
||||
* @return 结果
|
||||
*/
|
||||
TableDataInfo<FlowInstanceVo> getPageByCurrent(InstanceBo instanceBo, PageQuery pageQuery);
|
||||
TableDataInfo<FlowInstanceVo> getPageByCurrent(FlowInstanceBo instanceBo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 获取流程图,流程记录
|
||||
|
@ -101,5 +101,5 @@ public interface IFlwTaskService {
|
||||
* @param bo 参数
|
||||
* @return 结果
|
||||
*/
|
||||
boolean terminationTask(TerminationBo bo);
|
||||
boolean terminationTask(FlowTerminationBo bo);
|
||||
}
|
||||
|
@ -10,28 +10,41 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.enums.BusinessStatusEnum;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.warm.flow.core.constant.ExceptionCons;
|
||||
import org.dromara.warm.flow.core.dto.FlowParams;
|
||||
import org.dromara.warm.flow.core.entity.Definition;
|
||||
import org.dromara.warm.flow.core.entity.Instance;
|
||||
import org.dromara.warm.flow.core.entity.Node;
|
||||
import org.dromara.warm.flow.core.enums.CooperateType;
|
||||
import org.dromara.warm.flow.core.enums.FlowStatus;
|
||||
import org.dromara.warm.flow.core.enums.NodeType;
|
||||
import org.dromara.warm.flow.core.enums.SkipType;
|
||||
import org.dromara.warm.flow.core.service.DefService;
|
||||
import org.dromara.warm.flow.core.service.InsService;
|
||||
import org.dromara.warm.flow.core.service.NodeService;
|
||||
import org.dromara.warm.flow.core.service.TaskService;
|
||||
import org.dromara.warm.flow.core.utils.AssertUtil;
|
||||
import org.dromara.warm.flow.orm.entity.FlowDefinition;
|
||||
import org.dromara.warm.flow.orm.entity.FlowHisTask;
|
||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
||||
import org.dromara.warm.flow.orm.entity.FlowNode;
|
||||
import org.dromara.warm.flow.orm.mapper.FlowDefinitionMapper;
|
||||
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
|
||||
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
|
||||
import org.dromara.warm.flow.orm.mapper.FlowNodeMapper;
|
||||
import org.dromara.workflow.common.enums.TaskStatusEnum;
|
||||
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
||||
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
||||
import org.dromara.workflow.domain.bo.InstanceBo;
|
||||
import org.dromara.workflow.domain.vo.FlowHisTaskVo;
|
||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||
import org.dromara.workflow.domain.vo.VariableVo;
|
||||
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
||||
import org.dromara.workflow.mapper.FlwInstanceMapper;
|
||||
import org.dromara.workflow.service.IFlwInstanceService;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -59,6 +72,10 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
private final FlowInstanceMapper flowInstanceMapper;
|
||||
private final FlwInstanceMapper flwInstanceMapper;
|
||||
private final FlowDefinitionMapper flowDefinitionMapper;
|
||||
private final TaskService taskService;
|
||||
private final FlowNodeMapper flowNodeMapper;
|
||||
private final NodeService nodeService;
|
||||
private final FlowProcessEventHandler flowProcessEventHandler;
|
||||
|
||||
/**
|
||||
* 分页查询正在运行的流程实例
|
||||
@ -69,7 +86,6 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
@Override
|
||||
public TableDataInfo<FlowInstanceVo> getPageByRunning(Instance instance, PageQuery pageQuery) {
|
||||
QueryWrapper<FlowInstanceBo> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("t.flow_status", BusinessStatusEnum.WAITING.getStatus());
|
||||
Page<FlowInstanceVo> page = flwInstanceMapper.page(pageQuery.build(), queryWrapper);
|
||||
TableDataInfo<FlowInstanceVo> build = TableDataInfo.build();
|
||||
build.setRows(BeanUtil.copyToList(page.getRecords(), FlowInstanceVo.class));
|
||||
@ -133,12 +149,42 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
/**
|
||||
* 撤销流程
|
||||
*
|
||||
* @param businessId 业务id
|
||||
* @param bo 参数
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean cancelProcessApply(String businessId) {
|
||||
throw new RuntimeException("暂未开发");
|
||||
public boolean cancelProcessApply(FlowCancelBo bo) {
|
||||
try {
|
||||
Instance instance = instanceByBusinessId(bo.getBusinessId());
|
||||
if (instance == null) {
|
||||
throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE);
|
||||
}
|
||||
Definition definition = defService.getById(instance.getDefinitionId());
|
||||
if (definition == null) {
|
||||
throw new ServiceException(ExceptionCons.NOT_FOUNT_DEF);
|
||||
}
|
||||
//获取已发布的流程节点
|
||||
List<FlowNode> flowNodes = flowNodeMapper.selectList(new LambdaQueryWrapper<FlowNode>().eq(FlowNode::getDefinitionId, definition.getId()));
|
||||
AssertUtil.isTrue(CollUtil.isEmpty(flowNodes), ExceptionCons.NOT_PUBLISH_NODE);
|
||||
Node startNode = flowNodes.stream().filter(t -> NodeType.isStart(t.getNodeType())).findFirst().orElse(null);
|
||||
AssertUtil.isNull(startNode, ExceptionCons.LOST_START_NODE);
|
||||
Node nextNode = nodeService.getNextNode(definition.getId(), startNode.getNodeCode(), null, SkipType.NONE.getKey());
|
||||
FlowParams flowParams = FlowParams.build();
|
||||
flowParams.handler(LoginHelper.getUserIdStr());
|
||||
flowParams.nodeCode(nextNode.getNodeCode());
|
||||
flowParams.message(bo.getMessage());
|
||||
flowParams.flowStatus(BusinessStatusEnum.CANCEL.getStatus()).hisStatus(TaskStatusEnum.CANCEL.getStatus());
|
||||
taskService.retrieve(instance.getId(), flowParams);
|
||||
// 更新状态
|
||||
updateStatus(instance.getId(), BusinessStatusEnum.CANCEL.getStatus());
|
||||
//流程撤销监听
|
||||
flowProcessEventHandler.processHandler(definition.getFlowCode(),
|
||||
bo.getBusinessId(), BusinessStatusEnum.CANCEL.getStatus(), false);
|
||||
} catch (Exception e) {
|
||||
log.error("撤销失败: {}", e.getMessage(), e);
|
||||
throw new ServiceException(e.getMessage());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -148,7 +194,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
* @param pageQuery 分页
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<FlowInstanceVo> getPageByCurrent(InstanceBo instanceBo, PageQuery pageQuery) {
|
||||
public TableDataInfo<FlowInstanceVo> getPageByCurrent(FlowInstanceBo instanceBo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<FlowInstance> wrapper = Wrappers.lambdaQuery();
|
||||
if (StringUtils.isNotBlank(instanceBo.getFlowCode())) {
|
||||
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(
|
||||
@ -192,7 +238,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
LambdaQueryWrapper<FlowHisTask> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(FlowHisTask::getInstanceId, flowInstance.getId());
|
||||
wrapper.eq(FlowHisTask::getNodeType, NodeType.BETWEEN.getKey());
|
||||
wrapper.orderByDesc(FlowHisTask::getCreateTime);
|
||||
wrapper.orderByDesc(FlowHisTask::getCreateTime).orderByDesc(FlowHisTask::getUpdateTime);
|
||||
List<FlowHisTask> flowHisTasks = flowHisTaskMapper.selectList(wrapper);
|
||||
List<FlowHisTaskVo> list = BeanUtil.copyToList(flowHisTasks, FlowHisTaskVo.class);
|
||||
for (FlowHisTaskVo vo : list) {
|
||||
|
@ -225,12 +225,15 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
||||
long taskId = identifierGenerator.nextId(null).longValue();
|
||||
task.setId(taskId);
|
||||
task.setNodeName("【抄送】" + task.getNodeName());
|
||||
Date updateTime = new Date(flowHisTask.getUpdateTime().getTime()-1000);
|
||||
FlowParams flowParams = FlowParams.build();
|
||||
flowParams.skipType(SkipType.NONE.getKey());
|
||||
flowParams.hisStatus(TaskStatusEnum.PASS.getStatus());
|
||||
flowParams.hisStatus(TaskStatusEnum.COPY.getStatus());
|
||||
flowParams.handler(LoginHelper.getUserIdStr());
|
||||
flowParams.message("【抄送给】" + StreamUtils.join(wfCopyList, WfCopy::getUserName));
|
||||
HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams);
|
||||
hisTask.setCreateTime(updateTime);
|
||||
hisTask.setUpdateTime(updateTime);
|
||||
hisTaskService.save(hisTask);
|
||||
//保存抄送人员
|
||||
List<User> userList = new ArrayList<>();
|
||||
@ -399,7 +402,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean terminationTask(TerminationBo bo) {
|
||||
public boolean terminationTask(FlowTerminationBo bo) {
|
||||
try {
|
||||
FlowTask flowTask = flowTaskMapper.selectById(bo.getTaskId());
|
||||
Instance ins = insService.getById(flowTask.getInstanceId());
|
||||
|
@ -93,7 +93,8 @@
|
||||
a.target_node_name,
|
||||
a.definition_id,
|
||||
a.instance_id,
|
||||
a.flow_status,
|
||||
a.flow_status flow_task_status,
|
||||
b.flow_status,
|
||||
a.message,
|
||||
a.ext,
|
||||
a.create_time,
|
||||
|
Loading…
x
Reference in New Issue
Block a user