重新发起和取消流程接口优化
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,11 @@ public class QuitRunningDevice extends BaseEntity implements Serializable{
|
|||||||
*/
|
*/
|
||||||
private String processInstanceId;
|
private String processInstanceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 历史流程实例编号
|
||||||
|
*/
|
||||||
|
private String historyInstanceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 状态:0-删除 1-正常
|
* 状态:0-删除 1-正常
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
//更新状态
|
//更新状态
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user