草稿功能

This commit is contained in:
hzj
2024-06-19 10:46:22 +08:00
parent dec5914265
commit 60382f718c
7 changed files with 74 additions and 41 deletions

View File

@@ -31,7 +31,7 @@ public enum BpmTaskStatusEnum {
* 1. 任务被向前【加签】时,它会变成 WAIT 状态,需要等待【加签】出来的任务被审批后,它才能继续变为 RUNNING 继续审批 * 1. 任务被向前【加签】时,它会变成 WAIT 状态,需要等待【加签】出来的任务被审批后,它才能继续变为 RUNNING 继续审批
* 2. 任务被向后【加签】时,【加签】出来的任务处于 WAIT 状态,它们需要等待该任务被审批后,它们才能继续变为 RUNNING 继续审批 * 2. 任务被向后【加签】时,【加签】出来的任务处于 WAIT 状态,它们需要等待该任务被审批后,它们才能继续变为 RUNNING 继续审批
*/ */
WAIT(0, "待审批"); WAIT(0, "提交审批");
/** /**
* 状态 * 状态

View File

@@ -10,7 +10,7 @@ import java.util.Objects;
@Getter @Getter
public enum FlowStatusEnum { public enum FlowStatusEnum {
NEW(0, "新建"), NEW(0, "待提交审批"),
AUDIT(1, "审批中"), AUDIT(1, "审批中"),
APPROVE(2, "审批通过"), APPROVE(2, "审批通过"),
OPPOSE(3, "审批不通过"), OPPOSE(3, "审批不通过"),

View File

@@ -23,7 +23,10 @@ import java.util.Map;
@NoArgsConstructor @NoArgsConstructor
public class SupervisionDevMainReportParam { public class SupervisionDevMainReportParam {
private String id;
@ApiModelProperty(value = "保存1,提交审批2")
private String saveOrCheckflag;
/** /**
* 填报人 * 填报人
*/ */

View File

@@ -1,7 +1,6 @@
package com.njcn.supervision.pojo.param.user; package com.njcn.supervision.pojo.param.user;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity;
import com.njcn.supervision.pojo.po.user.UserReportProjectPO; import com.njcn.supervision.pojo.po.user.UserReportProjectPO;
import com.njcn.supervision.pojo.po.user.UserReportSensitivePO; import com.njcn.supervision.pojo.po.user.UserReportSensitivePO;
import com.njcn.supervision.pojo.po.user.UserReportSubstationPO; import com.njcn.supervision.pojo.po.user.UserReportSubstationPO;
@@ -29,6 +28,7 @@ import java.util.Map;
@NoArgsConstructor @NoArgsConstructor
public class UserReportParam { public class UserReportParam {
private String id;
/** /**
* 填报人 * 填报人
@@ -112,6 +112,8 @@ public class UserReportParam {
@ApiModelProperty("发起人自选审批人 Map") @ApiModelProperty("发起人自选审批人 Map")
private Map<String, List<String>> startUserSelectAssignees; private Map<String, List<String>> startUserSelectAssignees;
@ApiModelProperty(value = "保存1,提交审批2")
private String saveOrCheckflag;
private UserReportProjectPO userReportProjectPO; private UserReportProjectPO userReportProjectPO;

View File

@@ -27,7 +27,6 @@ import com.njcn.supervision.pojo.param.device.SupervisionTempLineDebugParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport; import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineDebugPO; import com.njcn.supervision.pojo.po.device.SupervisionTempLineDebugPO;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
import com.njcn.supervision.pojo.vo.device.CheckDeviceVo;
import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO; import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineDebugVO; import com.njcn.supervision.pojo.vo.device.SupervisionTempLineDebugVO;
import com.njcn.supervision.service.device.SupervisionDevMainReportPOService; import com.njcn.supervision.service.device.SupervisionDevMainReportPOService;
@@ -95,7 +94,7 @@ public class SupervisionTempLineDebugPOServiceImpl extends ServiceImpl<Supervisi
BeanUtils.copyProperties(supervisionTempLineReportParam,supervisionTempLineDebugPO); BeanUtils.copyProperties(supervisionTempLineReportParam,supervisionTempLineDebugPO);
supervisionTempLineDebugPO.setState(DataStateEnum.ENABLE.getCode()); supervisionTempLineDebugPO.setState(DataStateEnum.ENABLE.getCode());
supervisionTempLineDebugPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); supervisionTempLineDebugPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
this.save(supervisionTempLineDebugPO); this.saveOrUpdate(supervisionTempLineDebugPO);
String id = supervisionTempLineDebugPO.getId(); String id = supervisionTempLineDebugPO.getId();
// 发起 BPM 流程 // 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>(); Map<String, Object> processInstanceVariables = new HashMap<>();
@@ -153,7 +152,7 @@ public class SupervisionTempLineDebugPOServiceImpl extends ServiceImpl<Supervisi
queryWrapper.in("supervision_temp_line_report.org_id", data); queryWrapper.in("supervision_temp_line_report.org_id", data);
} }
if (Objects.nonNull(supervisionTempLineDebugQuery.getStatus())) { if (Objects.nonNull(supervisionTempLineDebugQuery.getStatus())) {
queryWrapper.eq("supervision_temp_line_report.status", supervisionTempLineDebugQuery.getStatus()); queryWrapper.eq("supervision_temp_line_debug.status", supervisionTempLineDebugQuery.getStatus());
} }
if (StrUtil.isNotBlank(supervisionTempLineDebugQuery.getSearchValue())) { if (StrUtil.isNotBlank(supervisionTempLineDebugQuery.getSearchValue())) {
queryWrapper.and(x->x queryWrapper.and(x->x

View File

@@ -19,8 +19,10 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.supervision.enums.FlowStatusEnum; import com.njcn.supervision.enums.FlowStatusEnum;
import com.njcn.supervision.enums.SupervisionKeyEnum; import com.njcn.supervision.enums.SupervisionKeyEnum;
import com.njcn.supervision.enums.SupervisionUserStatusEnum; import com.njcn.supervision.enums.SupervisionUserStatusEnum;
import com.njcn.supervision.mapper.device.SupervisionTempLineDebugPOMapper;
import com.njcn.supervision.mapper.device.SupervisionTempLineReportMapper; import com.njcn.supervision.mapper.device.SupervisionTempLineReportMapper;
import com.njcn.supervision.pojo.param.device.SupervisionTempLineReportParam; import com.njcn.supervision.pojo.param.device.SupervisionTempLineReportParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineDebugPO;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
import com.njcn.supervision.pojo.vo.device.CheckDeviceVo; import com.njcn.supervision.pojo.vo.device.CheckDeviceVo;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO; import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO;
@@ -62,6 +64,8 @@ public class SupervisionTempLineReportServiceImpl extends ServiceImpl<Supervisio
private final UserFeignClient userFeignClient; private final UserFeignClient userFeignClient;
private final DictTreeFeignClient dictTreeFeignClient; private final DictTreeFeignClient dictTreeFeignClient;
private final UserReportPOService userReportPOService; private final UserReportPOService userReportPOService;
private final SupervisionTempLineDebugPOMapper supervisionTempLineDebugPOMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@@ -162,6 +166,13 @@ public class SupervisionTempLineReportServiceImpl extends ServiceImpl<Supervisio
this.lambdaUpdate().set(SupervisionTempLineReport::getStatus,status).eq(SupervisionTempLineReport::getId,businessKey).update(); this.lambdaUpdate().set(SupervisionTempLineReport::getStatus,status).eq(SupervisionTempLineReport::getId,businessKey).update();
if(status.equals(BpmProcessInstanceStatusEnum.APPROVE.getStatus())){ if(status.equals(BpmProcessInstanceStatusEnum.APPROVE.getStatus())){
userReportPOService.updateUserStatus(businessKey, SupervisionUserStatusEnum.BUILD.getCode()); userReportPOService.updateUserStatus(businessKey, SupervisionUserStatusEnum.BUILD.getCode());
//新增监测点联调
SupervisionTempLineDebugPO supervisionTempLineDebugPO = new SupervisionTempLineDebugPO();
supervisionTempLineDebugPO.setId(businessKey);
supervisionTempLineDebugPO.setState(DataStateEnum.ENABLE.getCode());
supervisionTempLineDebugPO.setStatus(BpmTaskStatusEnum.WAIT.getStatus());
supervisionTempLineDebugPOMapper.insert(supervisionTempLineDebugPO);
} }
} }

View File

@@ -22,7 +22,6 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.utils.PubUtil; import com.njcn.device.pms.utils.PubUtil;
import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.bo.excel.OracleTerminalExcel;
import com.njcn.device.pq.pojo.po.LineDetail; import com.njcn.device.pq.pojo.po.LineDetail;
import com.njcn.poi.excel.ExcelUtil; import com.njcn.poi.excel.ExcelUtil;
import com.njcn.poi.excel.PullDown; import com.njcn.poi.excel.PullDown;
@@ -49,7 +48,6 @@ import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData; import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.api.UserFeignClient; import com.njcn.user.api.UserFeignClient;
import com.njcn.user.enums.UserStatusEnum;
import com.njcn.user.pojo.vo.UserVO; import com.njcn.user.pojo.vo.UserVO;
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,14 +91,27 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String addUserReport(UserReportParam userReportParam) { public String addUserReport(UserReportParam userReportParam) {
//判断工程名称是否有重复的
checkProjectName(userReportParam, false);
UserReportPO userReportPO = new UserReportPO(); UserReportPO userReportPO = new UserReportPO();
BeanUtils.copyProperties(userReportParam, userReportPO); BeanUtils.copyProperties(userReportParam, userReportPO);
userReportPO.setState(DataStateEnum.ENABLE.getCode()); userReportPO.setState(DataStateEnum.ENABLE.getCode());
userReportPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); if(StringUtils.isEmpty(userReportParam.getId())){
checkProjectName(userReportParam, false);
}else {
checkProjectName(userReportParam, true);
}
//判断工程名称是否有重复的
if(Objects.equals(userReportParam.getSaveOrCheckflag(),"1")){
userReportPO.setStatus(BpmTaskStatusEnum.WAIT.getStatus());
}else {
userReportPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
}
userReportPO.setDataType(0); userReportPO.setDataType(0);
this.save(userReportPO); this.saveOrUpdate(userReportPO);
if ( if (
CollectionUtil.newArrayList( CollectionUtil.newArrayList(
UserNatureEnum.BUILD_POWER_GRID.getCode(), UserNatureEnum.BUILD_POWER_GRID.getCode(),
@@ -130,17 +141,21 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
userReportSensitivePO.setState(DataStateEnum.ENABLE.getCode()); userReportSensitivePO.setState(DataStateEnum.ENABLE.getCode());
userReportSensitivePOService.saveOrUpdate(userReportSensitivePO); userReportSensitivePOService.saveOrUpdate(userReportSensitivePO);
} }
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>(); // 如何未提交审则不需要发起 BPM 流程
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO(); if(Objects.equals(userReportParam.getSaveOrCheckflag(),"2")){
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(SupervisionKeyEnum.BUILD_USER_INFO.getKey()); Map<String, Object> processInstanceVariables = new HashMap<>();
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportPO.getId()); BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees()); bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(SupervisionKeyEnum.BUILD_USER_INFO.getKey());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables); bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportPO.getId());
String processInstanceId = bpmProcessFeignClient.createProcessInstance(userReportPO.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData(); bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees());
// 将工作流的编号,更新到流程单中 bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
userReportPO.setProcessInstanceId(processInstanceId); String processInstanceId = bpmProcessFeignClient.createProcessInstance(userReportPO.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
this.baseMapper.updateById(userReportPO); // 将工作流的编号,更新到流程单中
userReportPO.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(userReportPO);
}
return userReportPO.getId(); return userReportPO.getId();
} }
@@ -646,28 +661,31 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
* @param isExcludeSelf 是否排除自己,一般新增不排除,更新时需要排除自己 * @param isExcludeSelf 是否排除自己,一般新增不排除,更新时需要排除自己
*/ */
private void checkProjectName(UserReportParam userReportParam, boolean isExcludeSelf) { private void checkProjectName(UserReportParam userReportParam, boolean isExcludeSelf) {
LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>(); if(!StringUtils.isEmpty(userReportParam.getProjectName())){
userReportPOLambdaQueryWrapper LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>();
.eq(UserReportPO::getProjectName, userReportParam.getProjectName()) userReportPOLambdaQueryWrapper
.in(UserReportPO::getStatus, CollectionUtil.newArrayList(BpmProcessInstanceStatusEnum.RUNNING.getStatus(), BpmProcessInstanceStatusEnum.APPROVE.getStatus())) .eq(UserReportPO::getProjectName, userReportParam.getProjectName())
.eq(UserReportPO::getState, DataStateEnum.ENABLE.getCode()); .in(UserReportPO::getStatus, CollectionUtil.newArrayList(BpmProcessInstanceStatusEnum.RUNNING.getStatus(), BpmProcessInstanceStatusEnum.APPROVE.getStatus()))
//更新的时候,需排除当前记录 .eq(UserReportPO::getState, DataStateEnum.ENABLE.getCode());
if (isExcludeSelf) { //更新的时候,需排除当前记录
if (userReportParam instanceof UserReportParam.UserReportUpdate) { if (isExcludeSelf) {
userReportPOLambdaQueryWrapper.ne(UserReportPO::getId, ((UserReportParam.UserReportUpdate) userReportParam).getId()); if (userReportParam instanceof UserReportParam.UserReportUpdate) {
userReportPOLambdaQueryWrapper.ne(UserReportPO::getId, ((UserReportParam.UserReportUpdate) userReportParam).getId());
}
} }
} List<UserReportPO> userReportPOList = this.baseMapper.selectList(userReportPOLambdaQueryWrapper);
List<UserReportPO> userReportPOList = this.baseMapper.selectList(userReportPOLambdaQueryWrapper);
if (CollectionUtil.isNotEmpty(userReportPOList)) {
//过滤已取消的申请
userReportPOList = userReportPOList.stream()
.filter(userReportPO -> !userReportPO.getStatus().equals(FlowStatusEnum.CANCEL.getCode()))
.collect(Collectors.toList());
//如果还存在,则说明有人申请过了
if (CollectionUtil.isNotEmpty(userReportPOList)) { if (CollectionUtil.isNotEmpty(userReportPOList)) {
throw new BusinessException(userReportParam.getProjectName().concat(",该工程已被").concat(userReportPOList.get(0).getReporter()).concat("申请")); //过滤已取消的申请
userReportPOList = userReportPOList.stream()
.filter(userReportPO -> !userReportPO.getStatus().equals(FlowStatusEnum.CANCEL.getCode()))
.collect(Collectors.toList());
//如果还存在,则说明有人申请过了
if (CollectionUtil.isNotEmpty(userReportPOList)) {
throw new BusinessException(userReportParam.getProjectName().concat(",该工程已被").concat(userReportPOList.get(0).getReporter()).concat("申请"));
}
} }
} }
} }