重新发起和取消流程接口优化

This commit is contained in:
2024-05-28 16:37:36 +08:00
parent 6817b33020
commit b7c9eedeaa
7 changed files with 71 additions and 1 deletions

View File

@@ -16,6 +16,7 @@ public enum SupervisionResponseEnum {
* A00550 ~ A00649 * A00550 ~ A00649
*/ */
SUPERVISION_COMMON_ERROR("A00550","监督管理模块异常"), SUPERVISION_COMMON_ERROR("A00550","监督管理模块异常"),
NO_POWER("A00550","很抱歉,该流程不是您创建的,没有权限操作!")
; ;
private final String code; private final String code;

View File

@@ -67,6 +67,12 @@ public class QuitRunningDeviceParam implements Serializable {
@ApiModelProperty(value = "流程实例的编号") @ApiModelProperty(value = "流程实例的编号")
private String processInstanceId; private String processInstanceId;
/**
* 历史流程实例编号
*/
@ApiModelProperty(value = "历史流程实例编号")
private String historyInstanceId;
@ApiModelProperty("发起人自选审批人 Map") @ApiModelProperty("发起人自选审批人 Map")
private Map<String, List<String>> startUserSelectAssignees; private Map<String, List<String>> startUserSelectAssignees;

View File

@@ -58,6 +58,11 @@ public class QuitRunningDevice extends BaseEntity implements Serializable{
*/ */
private String processInstanceId; private String processInstanceId;
/**
* 历史流程实例编号
*/
private String historyInstanceId;
/** /**
* 状态0-删除 1-正常 * 状态0-删除 1-正常
*/ */

View File

@@ -81,5 +81,11 @@ public class QuitRunningDeviceVO extends BaseEntity implements Serializable{
@ApiModelProperty(value = "流程实例的编号") @ApiModelProperty(value = "流程实例的编号")
private String processInstanceId; private String processInstanceId;
/**
* 历史流程实例编号
*/
@ApiModelProperty(value = "历史流程实例编号")
private String historyInstanceId;
} }

View File

@@ -10,6 +10,7 @@
supervision_quit_running_device.property_no, supervision_quit_running_device.property_no,
supervision_quit_running_device.report_path, supervision_quit_running_device.report_path,
supervision_quit_running_device.process_instance_id, supervision_quit_running_device.process_instance_id,
supervision_quit_running_device.history_instance_id,
supervision_quit_running_device.create_time, supervision_quit_running_device.create_time,
supervision_quit_running_device.status supervision_quit_running_device.status
FROM supervision_quit_running_device supervision_quit_running_device FROM supervision_quit_running_device supervision_quit_running_device

View File

@@ -27,6 +27,7 @@ import com.njcn.supervision.pojo.param.device.QuitRunningDeviceParam;
import com.njcn.supervision.pojo.po.device.QuitRunningDevice; import com.njcn.supervision.pojo.po.device.QuitRunningDevice;
import com.njcn.supervision.pojo.vo.device.QuitRunningDeviceVO; import com.njcn.supervision.pojo.vo.device.QuitRunningDeviceVO;
import com.njcn.supervision.service.device.IQuitRunningDeviceService; import com.njcn.supervision.service.device.IQuitRunningDeviceService;
import com.njcn.supervision.utils.InstanceUtil;
import com.njcn.user.api.UserFeignClient; import com.njcn.user.api.UserFeignClient;
import com.njcn.web.factory.PageFactory; import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil; import com.njcn.web.utils.RequestUtil;
@@ -93,9 +94,16 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String updateQuitRunningDevice(QuitRunningDeviceParam.QuitRunningDeviceUpdateParam quitRunningDeviceUpdateParam) { public String updateQuitRunningDevice(QuitRunningDeviceParam.QuitRunningDeviceUpdateParam quitRunningDeviceUpdateParam) {
QuitRunningDevice quitRunningDevice = this.baseMapper.selectById(quitRunningDeviceUpdateParam.getId()); QuitRunningDevice quitRunningDevice = this.baseMapper.selectById(quitRunningDeviceUpdateParam.getId());
//判断是否有权限操作
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(),quitRunningDevice.getCreateBy());
quitRunningDeviceUpdateParam.setStatus(quitRunningDevice.getStatus());
quitRunningDeviceUpdateParam.setProcessInstanceId(quitRunningDevice.getProcessInstanceId());
quitRunningDeviceUpdateParam.setHistoryInstanceId(quitRunningDevice.getHistoryInstanceId());
BeanUtils.copyProperties(quitRunningDeviceUpdateParam, quitRunningDevice); BeanUtils.copyProperties(quitRunningDeviceUpdateParam, quitRunningDevice);
quitRunningDevice.setState(DataStateEnum.ENABLE.getCode()); quitRunningDevice.setState(DataStateEnum.ENABLE.getCode());
quitRunningDevice.setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); quitRunningDevice.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
//处理历史流程id列表
String historyInstanceIds = InstanceUtil.dealHistoryId(quitRunningDevice.getProcessInstanceId(), quitRunningDevice.getHistoryInstanceId());
// 发起 BPM 流程 // 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>(); Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO(); BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
@@ -106,6 +114,8 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
String processInstanceId = bpmProcessFeignClient.createProcessInstance(quitRunningDevice.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData(); String processInstanceId = bpmProcessFeignClient.createProcessInstance(quitRunningDevice.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中 // 将工作流的编号,更新到流程单中
quitRunningDevice.setProcessInstanceId(processInstanceId); quitRunningDevice.setProcessInstanceId(processInstanceId);
//保存历史流程id列表
quitRunningDevice.setHistoryInstanceId(historyInstanceIds);
this.baseMapper.updateById(quitRunningDevice); this.baseMapper.updateById(quitRunningDevice);
return quitRunningDevice.getId(); return quitRunningDevice.getId();
} }
@@ -127,7 +137,7 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
//获取当前用户部门所有同事的id查看该部门下所有的数据 //获取当前用户部门所有同事的id查看该部门下所有的数据
List<String> colleaguesIds = userFeignClient.getColleaguesIdByUserId(RequestUtil.getUserIndex()).getData(); List<String> colleaguesIds = userFeignClient.getColleaguesIdByUserId(RequestUtil.getUserIndex()).getData();
quitRunningDeviceVOQueryWrapper.in("supervision_quit_running_device.Create_By",colleaguesIds) quitRunningDeviceVOQueryWrapper.in("supervision_quit_running_device.Create_By", colleaguesIds)
.orderByDesc("supervision_quit_running_device.Update_Time"); .orderByDesc("supervision_quit_running_device.Update_Time");
Page<QuitRunningDeviceVO> page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(quitRunningDeviceQueryParam), PageFactory.getPageSize(quitRunningDeviceQueryParam)), quitRunningDeviceVOQueryWrapper); Page<QuitRunningDeviceVO> page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(quitRunningDeviceQueryParam), PageFactory.getPageSize(quitRunningDeviceQueryParam)), quitRunningDeviceVOQueryWrapper);
List<QuitRunningDeviceVO> records = page.getRecords(); List<QuitRunningDeviceVO> records = page.getRecords();
@@ -205,6 +215,8 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
public String cancelQuitRunningDevice(BpmProcessInstanceCancelParam cancelReqVO) { public String cancelQuitRunningDevice(BpmProcessInstanceCancelParam cancelReqVO) {
//准备取消该流程,需要远程调用接口 //准备取消该流程,需要远程调用接口
QuitRunningDevice quitRunningDevice = this.baseMapper.selectById(cancelReqVO.getId()); QuitRunningDevice quitRunningDevice = this.baseMapper.selectById(cancelReqVO.getId());
//判断是否有权限操作
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(),quitRunningDevice.getCreateBy());
//取消流程 //取消流程
bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO); bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO);
//更新状态 //更新状态

View File

@@ -0,0 +1,39 @@
package com.njcn.supervision.utils;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.StrUtil;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.supervision.enums.SupervisionResponseEnum;
/**
* 处理流程实例的工具类
*/
public class InstanceUtil {
/**
* 处理历史流程实例的id
*
* @param lastId 最近一次流程实例id
* @param historyIds 之前历史id列表
* @return 最新的历史id列表
*/
public static String dealHistoryId(String lastId, String historyIds) {
if (StrUtil.isBlank(historyIds)) {
return lastId;
}
return historyIds.concat(StrPool.COMMA).concat(lastId);
}
/**
* 判断用户是否有权限操作
* @param userId 当前用户id
* @param createBy 数据创建用户id
*/
public static void judgeUserPower(String userId,String createBy){
if(!userId.equalsIgnoreCase(createBy)){
throw new BusinessException(SupervisionResponseEnum.NO_POWER);
}
}
}