草稿功能

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

@@ -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.SupervisionTempLineDebugPO;
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.SupervisionTempLineDebugVO;
import com.njcn.supervision.service.device.SupervisionDevMainReportPOService;
@@ -95,7 +94,7 @@ public class SupervisionTempLineDebugPOServiceImpl extends ServiceImpl<Supervisi
BeanUtils.copyProperties(supervisionTempLineReportParam,supervisionTempLineDebugPO);
supervisionTempLineDebugPO.setState(DataStateEnum.ENABLE.getCode());
supervisionTempLineDebugPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
this.save(supervisionTempLineDebugPO);
this.saveOrUpdate(supervisionTempLineDebugPO);
String id = supervisionTempLineDebugPO.getId();
// 发起 BPM 流程
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);
}
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())) {
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.SupervisionKeyEnum;
import com.njcn.supervision.enums.SupervisionUserStatusEnum;
import com.njcn.supervision.mapper.device.SupervisionTempLineDebugPOMapper;
import com.njcn.supervision.mapper.device.SupervisionTempLineReportMapper;
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.vo.device.CheckDeviceVo;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO;
@@ -62,6 +64,8 @@ public class SupervisionTempLineReportServiceImpl extends ServiceImpl<Supervisio
private final UserFeignClient userFeignClient;
private final DictTreeFeignClient dictTreeFeignClient;
private final UserReportPOService userReportPOService;
private final SupervisionTempLineDebugPOMapper supervisionTempLineDebugPOMapper;
@Override
@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();
if(status.equals(BpmProcessInstanceStatusEnum.APPROVE.getStatus())){
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.device.pms.utils.PubUtil;
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.poi.excel.ExcelUtil;
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.user.api.DeptFeignClient;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.enums.UserStatusEnum;
import com.njcn.user.pojo.vo.UserVO;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
@@ -93,14 +91,27 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
@Override
@Transactional(rollbackFor = Exception.class)
public String addUserReport(UserReportParam userReportParam) {
//判断工程名称是否有重复的
checkProjectName(userReportParam, false);
UserReportPO userReportPO = new UserReportPO();
BeanUtils.copyProperties(userReportParam, userReportPO);
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);
this.save(userReportPO);
this.saveOrUpdate(userReportPO);
if (
CollectionUtil.newArrayList(
UserNatureEnum.BUILD_POWER_GRID.getCode(),
@@ -130,17 +141,21 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
userReportSensitivePO.setState(DataStateEnum.ENABLE.getCode());
userReportSensitivePOService.saveOrUpdate(userReportSensitivePO);
}
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(SupervisionKeyEnum.BUILD_USER_INFO.getKey());
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportPO.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(userReportPO.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
userReportPO.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(userReportPO);
// 如何未提交审则不需要发起 BPM 流程
if(Objects.equals(userReportParam.getSaveOrCheckflag(),"2")){
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(SupervisionKeyEnum.BUILD_USER_INFO.getKey());
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportPO.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(userReportPO.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
userReportPO.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(userReportPO);
}
return userReportPO.getId();
}
@@ -646,28 +661,31 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
* @param isExcludeSelf 是否排除自己,一般新增不排除,更新时需要排除自己
*/
private void checkProjectName(UserReportParam userReportParam, boolean isExcludeSelf) {
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) {
if (userReportParam instanceof UserReportParam.UserReportUpdate) {
userReportPOLambdaQueryWrapper.ne(UserReportPO::getId, ((UserReportParam.UserReportUpdate) userReportParam).getId());
if(!StringUtils.isEmpty(userReportParam.getProjectName())){
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) {
if (userReportParam instanceof UserReportParam.UserReportUpdate) {
userReportPOLambdaQueryWrapper.ne(UserReportPO::getId, ((UserReportParam.UserReportUpdate) userReportParam).getId());
}
}
}
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());
//如果还存在,则说明有人申请过了
List<UserReportPO> userReportPOList = this.baseMapper.selectList(userReportPOLambdaQueryWrapper);
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("申请"));
}
}
}
}