重新发起和取消功能实现,重新发起还有待办事项

This commit is contained in:
2024-05-14 19:54:55 +08:00
parent 1f3f27632d
commit b496452fd2
12 changed files with 153 additions and 46 deletions

View File

@@ -2,6 +2,7 @@ package com.njcn.bpm.api;
import com.njcn.bpm.api.fallback.BpmProcessFeignClientFallbackFactory;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import org.springframework.cloud.openfeign.FeignClient;
@@ -15,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam;
*
* @author hongawen
*/
@FeignClient(value = ServerInfo.BPM,path = "/bpm/processDefinition",fallbackFactory = BpmProcessFeignClientFallbackFactory.class)
@FeignClient(value = ServerInfo.BPM,path = "/bpm/processInstance",fallbackFactory = BpmProcessFeignClientFallbackFactory.class)
public interface BpmProcessFeignClient {
/**
@@ -27,4 +28,9 @@ public interface BpmProcessFeignClient {
@PostMapping("/createProcessInstance")
HttpResult<String> createProcessInstance(@RequestParam("userId") String userId, @RequestBody BpmProcessInstanceCreateReqDTO reqDTO);
@PostMapping("/cancelByStartUser")
HttpResult<Boolean> cancelProcessInstanceByStartUser(@RequestBody BpmProcessInstanceCancelParam cancelReqVO);
}

View File

@@ -2,6 +2,7 @@ package com.njcn.bpm.api.fallback;
import com.njcn.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.bpm.utils.BpmEnumUtil;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
@@ -34,6 +35,12 @@ public class BpmProcessFeignClientFallbackFactory implements FallbackFactory<Bpm
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> cancelProcessInstanceByStartUser(BpmProcessInstanceCancelParam cancelReqVO) {
log.error("{}异常,降级处理,异常为:{}", "取消流程实例", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -46,6 +46,8 @@ public enum BpmResponseEnum {
REPEAT_CATEGORY_CODE_FORM("A00568", "流程类型编码重复"),
QUIT_RUNNING_REPEAT("A00568", "该设备已在审批中"),
REPEAT_SIGN_NAME_FORM("A00568", "流程标识名称重复"),
REPEAT_SIGN_KEY_FORM("A00568", "流程标识key重复"),

View File

@@ -10,12 +10,16 @@ import javax.validation.constraints.NotEmpty;
@Data
public class BpmProcessInstanceCancelParam {
@ApiModelProperty("流程实例的编号")
@NotEmpty(message = "流程实例的编号不能为空")
@ApiModelProperty("流程业务的编号")
@NotEmpty(message = "流程业务的编号不能为空")
private String id;
@ApiModelProperty("取消原因")
@NotEmpty(message = "取消原因不能为空")
private String reason;
@ApiModelProperty("流程实例的编号")
@NotEmpty(message = "流程实例的编号不能为空")
private String processInstanceId;
}

View File

@@ -57,8 +57,6 @@ public class BpmProcessDefinitionController extends BaseController {
private final IBpmCategoryService categoryService;
private final IBpmProcessInstanceService processInstanceService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/page")
@ApiOperation("获得流程定义分页")
@@ -125,13 +123,4 @@ public class BpmProcessDefinitionController extends BaseController {
processDefinition, null, null, null, null, bpmnModel, userTaskList), methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@ApiOperation("创建流程实例")
@PostMapping("/createProcessInstance")
HttpResult<String> createProcessInstance(@RequestParam("userId") String userId, @RequestBody BpmProcessInstanceCreateReqDTO reqDTO){
String methodDescribe = getMethodDescribe("createProcessInstance");
String instanceId = processInstanceService.createProcessInstance(userId, reqDTO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, instanceId, methodDescribe);
}
}

View File

@@ -19,6 +19,7 @@ import com.njcn.bpm.utils.BpmProcessInstanceConvert;
import com.njcn.bpm.utils.BpmnModelUtils;
import com.njcn.bpm.utils.CollectionUtils;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
@@ -192,4 +193,13 @@ public class BpmProcessInstanceController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@ApiOperation("创建流程实例")
@PostMapping("/createProcessInstance")
HttpResult<String> createProcessInstance(@RequestParam("userId") String userId, @RequestBody BpmProcessInstanceCreateReqDTO reqDTO){
String methodDescribe = getMethodDescribe("createProcessInstance");
String instanceId = processInstanceService.createProcessInstance(userId, reqDTO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, instanceId, methodDescribe);
}
}

View File

@@ -227,7 +227,7 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
@Override
public void cancelProcessInstanceByStartUser(String userId, BpmProcessInstanceCancelParam cancelReqVO) {
// 1.1 校验流程实例存在
ProcessInstance instance = getProcessInstance(cancelReqVO.getId());
ProcessInstance instance = getProcessInstance(cancelReqVO.getProcessInstanceId());
if (instance == null) {
throw new BusinessException(BpmResponseEnum.PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS);
}
@@ -238,7 +238,7 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
// 2. 通过删除流程实例,实现流程实例的取消,
// 删除流程实例,正则执行任务 ACT_RU_TASK. 任务会被删除。
deleteProcessInstance(cancelReqVO.getId(),
deleteProcessInstance(cancelReqVO.getProcessInstanceId(),
BpmDeleteReasonEnum.CANCEL_PROCESS_INSTANCE_BY_START_USER.format(cancelReqVO.getReason()));
// 3. 进一步的处理,交给 updateProcessInstanceCancel 方法

View File

@@ -25,7 +25,7 @@ import java.util.Map;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuitRunningDeviceParam extends BaseEntity implements Serializable {
public class QuitRunningDeviceParam implements Serializable {
private static final long serialVersionUID = 1L;

View File

@@ -2,6 +2,7 @@ package com.njcn.supervision.controller.device;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -24,9 +25,11 @@ import org.springframework.web.bind.annotation.*;
import com.njcn.web.controller.BaseController;
import javax.validation.Valid;
/**
* <p>
* 前端控制器
* 前端控制器
* </p>
*
* @author hongawen
@@ -45,28 +48,48 @@ public class QuitRunningDeviceController extends BaseController {
@PostMapping("/list")
@ApiOperation("分页查询当前用户能看到的退运设备数据")
@ApiImplicitParam(name = "quitRunningDeviceQueryParam", value = "参数", required = true)
public HttpResult<Page<QuitRunningDeviceVO>> getQuitRunningDevice(@RequestBody @Validated QuitRunningDeviceParam.QuitRunningDeviceQueryParam quitRunningDeviceQueryParam){
public HttpResult<Page<QuitRunningDeviceVO>> getQuitRunningDevice(@RequestBody @Validated QuitRunningDeviceParam.QuitRunningDeviceQueryParam quitRunningDeviceQueryParam) {
String methodDescribe = getMethodDescribe("getQuitRunningDevice");
Page<QuitRunningDeviceVO> out = quitRunningDeviceService.getQuitRunningDevice(quitRunningDeviceQueryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD)
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/add")
@ApiOperation("新增设备退运")
@ApiImplicitParam(name = "quitRunningDeviceParam", value = "实体参数", required = true)
public HttpResult<String> addRunningDevice(@RequestBody @Validated QuitRunningDeviceParam quitRunningDeviceParam){
public HttpResult<String> addRunningDevice(@RequestBody @Validated QuitRunningDeviceParam quitRunningDeviceParam) {
String methodDescribe = getMethodDescribe("addRunningDevice");
String runningDeviceId = quitRunningDeviceService.addRunningDevice(quitRunningDeviceParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runningDeviceId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/update")
@ApiOperation("更新设备退运")
@ApiImplicitParam(name = "quitRunningDeviceParam", value = "实体参数", required = true)
public HttpResult<String> quitRunningDeviceUpdate(@RequestBody @Validated QuitRunningDeviceParam.QuitRunningDeviceUpdateParam quitRunningDeviceUpdateParam) {
String methodDescribe = getMethodDescribe("quitRunningDeviceUpdateParam");
String runningDeviceId = quitRunningDeviceService.quitRunningDeviceUpdate(quitRunningDeviceUpdateParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runningDeviceId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/cancel")
@ApiOperation("取消设备退运")
@ApiImplicitParam(name = "cancelReqVO", value = "取消原因", required = true)
public HttpResult<String> cancelQuitRunningDevice(@Validated @RequestBody BpmProcessInstanceCancelParam cancelReqVO) {
String methodDescribe = getMethodDescribe("cancelQuitRunningDevice");
String runningDeviceId = quitRunningDeviceService.cancelQuitRunningDevice(cancelReqVO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runningDeviceId, methodDescribe);
}
@GetMapping("/updateDeviceStatus")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@Operation(summary = "更新退运装置流程状态")
public HttpResult<Object> updateDeviceStatus(String businessKey,Integer status) {
public HttpResult<Object> updateDeviceStatus(String businessKey, Integer status) {
String methodDescribe = getMethodDescribe("updateDeviceStatus");
quitRunningDeviceService.updateDeviceStatus(businessKey,status);
quitRunningDeviceService.updateDeviceStatus(businessKey, status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@@ -80,7 +103,5 @@ public class QuitRunningDeviceController extends BaseController {
}
}

View File

@@ -2,6 +2,7 @@ package com.njcn.supervision.service.device;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.supervision.pojo.param.device.QuitRunningDeviceParam;
import com.njcn.supervision.pojo.po.device.QuitRunningDevice;
import com.njcn.supervision.pojo.vo.device.QuitRunningDeviceVO;
@@ -17,10 +18,13 @@ import com.njcn.supervision.pojo.vo.device.QuitRunningDeviceVO;
public interface IQuitRunningDeviceService extends IService<QuitRunningDevice> {
String addRunningDevice(QuitRunningDeviceParam quitRunningDeviceParam);
String quitRunningDeviceUpdate(QuitRunningDeviceParam.QuitRunningDeviceUpdateParam quitRunningDeviceUpdateParam);
Page<QuitRunningDeviceVO> getQuitRunningDevice(QuitRunningDeviceParam.QuitRunningDeviceQueryParam quitRunningDeviceQueryParam);
void updateDeviceStatus(String businessKey, Integer status);
QuitRunningDeviceVO getVOById(String id);
String cancelQuitRunningDevice(BpmProcessInstanceCancelParam cancelReqVO);
}

View File

@@ -2,14 +2,20 @@ package com.njcn.supervision.service.device.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum;
import com.njcn.bpm.enums.BpmResponseEnum;
import com.njcn.bpm.enums.BpmTaskStatusEnum;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.BpmCategoryParam;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.bpm.pojo.po.BpmCategory;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.biz.enums.RunFlagEnum;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.po.line.LineInfoVO;
@@ -25,6 +31,7 @@ import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
@@ -33,7 +40,7 @@ import java.util.Objects;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author hongawen
@@ -44,7 +51,6 @@ import java.util.Objects;
public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceMapper, QuitRunningDevice> implements IQuitRunningDeviceService {
private final BpmProcessFeignClient bpmProcessFeignClient;
private final LineFeignClient lineFeignClient;
@@ -55,9 +61,11 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
public static final String PROCESS_KEY = "quit_running_device";
@Override
@Transactional(rollbackFor = Exception.class)
public String addRunningDevice(QuitRunningDeviceParam quitRunningDeviceParam) {
//判断设备状态,是不是已经退运了
checkDeviceStatus(quitRunningDeviceParam);
//判断设备是否已经有在申请的
checkQuitRunningDevice(quitRunningDeviceParam, false);
QuitRunningDevice quitRunningDevice = new QuitRunningDevice();
BeanUtils.copyProperties(quitRunningDeviceParam, quitRunningDevice);
quitRunningDevice.setState(DataStateEnum.ENABLE.getCode());
@@ -70,7 +78,28 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
bpmProcessInstanceCreateReqDTO.setBusinessKey(quitRunningDevice.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(quitRunningDeviceParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(quitRunningDevice.getCreateBy(),bpmProcessInstanceCreateReqDTO).getData();
String processInstanceId = bpmProcessFeignClient.createProcessInstance(quitRunningDevice.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
quitRunningDevice.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(quitRunningDevice);
return quitRunningDevice.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public String quitRunningDeviceUpdate(QuitRunningDeviceParam.QuitRunningDeviceUpdateParam quitRunningDeviceUpdateParam) {
QuitRunningDevice quitRunningDevice = this.baseMapper.selectById(quitRunningDeviceUpdateParam.getId());
BeanUtils.copyProperties(quitRunningDeviceUpdateParam, quitRunningDevice);
quitRunningDevice.setState(DataStateEnum.ENABLE.getCode());
quitRunningDevice.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY);
bpmProcessInstanceCreateReqDTO.setBusinessKey(quitRunningDevice.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(quitRunningDeviceUpdateParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(quitRunningDevice.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
quitRunningDevice.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(quitRunningDevice);
@@ -82,29 +111,28 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
QueryWrapper<QuitRunningDeviceVO> quitRunningDeviceVOQueryWrapper = new QueryWrapper<>();
if (Objects.nonNull(quitRunningDeviceQueryParam)) {
//判断监测点/设备的选择
if(Objects.nonNull(quitRunningDeviceQueryParam.getDeviceType())&&Objects.nonNull(quitRunningDeviceQueryParam.getDeviceId())){
quitRunningDeviceVOQueryWrapper.eq("supervision_quit_running_device.device_type",quitRunningDeviceQueryParam.getDeviceType());
quitRunningDeviceVOQueryWrapper.eq("supervision_quit_running_device.device_id",quitRunningDeviceQueryParam.getDeviceId());
if (Objects.nonNull(quitRunningDeviceQueryParam.getDeviceType()) && Objects.nonNull(quitRunningDeviceQueryParam.getDeviceId())) {
quitRunningDeviceVOQueryWrapper.eq("supervision_quit_running_device.device_type", quitRunningDeviceQueryParam.getDeviceType());
quitRunningDeviceVOQueryWrapper.eq("supervision_quit_running_device.device_id", quitRunningDeviceQueryParam.getDeviceId());
}
//添加上时间范围
quitRunningDeviceVOQueryWrapper.between("supervision_quit_running_device.Create_Time",
DateUtil.beginOfDay(DateUtil.parse(quitRunningDeviceQueryParam.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(quitRunningDeviceQueryParam.getSearchEndTime())));
}
quitRunningDeviceVOQueryWrapper.orderByDesc("supervision_quit_running_device.create_time");
//todo...根据设备id获取详细数据用于回显待会做
quitRunningDeviceVOQueryWrapper.orderByDesc("supervision_quit_running_device.Update_Time");
Page<QuitRunningDeviceVO> page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(quitRunningDeviceQueryParam), PageFactory.getPageSize(quitRunningDeviceQueryParam)), quitRunningDeviceVOQueryWrapper);
List<QuitRunningDeviceVO> records = page.getRecords();
if(CollectionUtil.isNotEmpty(records)){
if (CollectionUtil.isNotEmpty(records)) {
for (QuitRunningDeviceVO record : records) {
if(record.getDeviceType() == 1){
if (record.getDeviceType() == 1) {
DeviceVO deviceVO = lineFeignClient.getDeviceDetailData(record.getDeviceId()).getData();
record.setDeviceName(deviceVO.getName());
record.setDeviceStatus(deviceVO.getRunFlag());
record.setGdName(deviceVO.getGdName());
record.setSubName(deviceVO.getSubName());
//获取装置详细信息
}else if(record.getDeviceType() == 2){
} else if (record.getDeviceType() == 2) {
//获取监测点详细信息
LineInfoVO lineInfoVO = lineFeignClient.getLineInfoVO(record.getDeviceId()).getData();
record.setDeviceStatus(lineInfoVO.getRunFlag());
@@ -126,14 +154,14 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
public void updateDeviceStatus(String businessKey, Integer status) {
QuitRunningDevice quitRunningDevice = this.baseMapper.selectById(businessKey);
//如果状态为审批通过
if(status.equals(BpmProcessInstanceStatusEnum.APPROVE.getStatus())){
if (status.equals(BpmProcessInstanceStatusEnum.APPROVE.getStatus())) {
//通过,则需要远程将该装置调整为退运
if(quitRunningDevice.getDeviceType() == 1){
if (quitRunningDevice.getDeviceType() == 1) {
//修改装置
lineFeignClient.updateDeviceRunFlag(quitRunningDevice.getDeviceId(), RunFlagEnum.QUIT.getStatus());
}else if(quitRunningDevice.getDeviceType() == 2){
} else if (quitRunningDevice.getDeviceType() == 2) {
//修改监测点
lineFeignClient.updateLineRunFlag(quitRunningDevice.getDeviceId(),RunFlagEnum.QUIT.getStatus());
lineFeignClient.updateLineRunFlag(quitRunningDevice.getDeviceId(), RunFlagEnum.QUIT.getStatus());
}
}
quitRunningDevice.setStatus(status);
@@ -146,14 +174,14 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
QuitRunningDeviceVO quitRunningDeviceVO = new QuitRunningDeviceVO();
BeanUtils.copyProperties(quitRunningDevice, quitRunningDeviceVO);
//通过,则需要远程将该装置调整为退运
if(quitRunningDeviceVO.getDeviceType() == 1){
if (quitRunningDeviceVO.getDeviceType() == 1) {
DeviceVO deviceVO = lineFeignClient.getDeviceDetailData(quitRunningDeviceVO.getDeviceId()).getData();
quitRunningDeviceVO.setDeviceName(deviceVO.getName());
quitRunningDeviceVO.setDeviceStatus(deviceVO.getRunFlag());
quitRunningDeviceVO.setGdName(deviceVO.getGdName());
quitRunningDeviceVO.setSubName(deviceVO.getSubName());
//获取装置详细信息
}else if(quitRunningDeviceVO.getDeviceType() == 2){
} else if (quitRunningDeviceVO.getDeviceType() == 2) {
//获取监测点详细信息
LineInfoVO lineInfoVO = lineFeignClient.getLineInfoVO(quitRunningDeviceVO.getDeviceId()).getData();
quitRunningDeviceVO.setDeviceStatus(lineInfoVO.getRunFlag());
@@ -165,7 +193,40 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
return quitRunningDeviceVO;
}
private void checkDeviceStatus(QuitRunningDeviceParam quitRunningDeviceParam) {
//todo...
@Override
@Transactional(rollbackFor = Exception.class)
public String cancelQuitRunningDevice(BpmProcessInstanceCancelParam cancelReqVO) {
//准备取消该流程,需要远程调用接口
QuitRunningDevice quitRunningDevice = this.baseMapper.selectById(cancelReqVO.getId());
//取消流程
bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO);
//更新状态
quitRunningDevice.setStatus(BpmProcessInstanceStatusEnum.CANCEL.getStatus());
this.updateById(quitRunningDevice);
return quitRunningDevice.getId();
}
/**
* 校验是否已经有在审批的当前设备
*/
private void checkQuitRunningDevice(QuitRunningDeviceParam quitRunningDeviceParam, boolean isExcludeSelf) {
LambdaQueryWrapper<QuitRunningDevice> quitRunningDeviceLambdaQueryWrapper = new LambdaQueryWrapper<>();
//判断流程表单的名称
quitRunningDeviceLambdaQueryWrapper
.eq(QuitRunningDevice::getDeviceId, quitRunningDeviceParam.getDeviceId())
//审批中、审批通过
.in(QuitRunningDevice::getStatus, CollectionUtil.newArrayList(BpmProcessInstanceStatusEnum.RUNNING.getStatus(), BpmProcessInstanceStatusEnum.APPROVE.getStatus()))
.eq(QuitRunningDevice::getState, DataStateEnum.ENABLE.getCode());
//更新的时候,需排除当前记录
if (isExcludeSelf) {
if (quitRunningDeviceParam instanceof QuitRunningDeviceParam.QuitRunningDeviceUpdateParam) {
quitRunningDeviceLambdaQueryWrapper.ne(QuitRunningDevice::getId, ((QuitRunningDeviceParam.QuitRunningDeviceUpdateParam) quitRunningDeviceParam).getId());
}
}
int deviceCountByAccount = this.count(quitRunningDeviceLambdaQueryWrapper);
//大于等于1个则表示重复
if (deviceCountByAccount >= 1) {
throw new BusinessException(BpmResponseEnum.QUIT_RUNNING_REPEAT);
}
}
}

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum;
import com.njcn.bpm.enums.BpmTaskStatusEnum;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.common.pojo.enums.common.DataStateEnum;
@@ -17,6 +18,7 @@ import com.njcn.supervision.enums.FlowStatusEnum;
import com.njcn.supervision.enums.UserNatureEnum;
import com.njcn.supervision.mapper.user.UserReportPOMapper;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.device.QuitRunningDevice;
import com.njcn.supervision.pojo.po.user.UserReportPO;
import com.njcn.supervision.pojo.po.user.UserReportProjectPO;
import com.njcn.supervision.pojo.po.user.UserReportSensitivePO;
@@ -271,6 +273,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>();
userReportPOLambdaQueryWrapper
.eq(UserReportPO::getProjectName, userReportParam.getProjectName())
.in(UserReportPO::getStatus,CollectionUtil.newArrayList(BpmProcessInstanceStatusEnum.RUNNING.getStatus(),BpmProcessInstanceStatusEnum.APPROVE.getStatus()))
.eq(UserReportPO::getState, DataStateEnum.ENABLE.getCode());
//更新的时候,需排除当前记录
if (isExcludeSelf) {