1.技术监督台账管理-台账管理,监测点终端数量bug解决

2.干扰源常态化用户,编辑新增功能流程
This commit is contained in:
wr
2024-06-28 17:32:37 +08:00
parent dbee4ca31d
commit 87c60206f0
17 changed files with 699 additions and 30 deletions

View File

@@ -0,0 +1,52 @@
package com.njcn.supervision.controller.user;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.service.user.IUserReportDeleteService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 用户档案信息表 前端控制器
* </p>
*
* @author wr
* @since 2024-06-26
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/userReportDelete")
@Api(tags = "干扰源常态化管理信息删除")
public class UserReportDeleteController extends BaseController {
private final IUserReportDeleteService userReportDeleteService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addEditor")
@ApiOperation("干扰源用户管理删除信息新增功能")
public HttpResult<String> addEditor(@RequestBody @Validated UserReportParam userReportParam) {
String methodDescribe = getMethodDescribe("addEditor");
String s = userReportDeleteService.addEditor(userReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/resend")
@ApiOperation("干扰源用户管理删除信息重新发送功能")
public HttpResult<String> resend(@RequestBody @Validated UserReportParam userReportParam) {
String methodDescribe = getMethodDescribe("resend");
String s = userReportDeleteService.resend(userReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
}

View File

@@ -0,0 +1,77 @@
package com.njcn.supervision.controller.user;
import com.njcn.bpm.pojo.dto.BpmInstanceInfo;
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;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.user.UserReportRenewalPO;
import com.njcn.supervision.service.user.IUserReportRenewalService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.njcn.web.controller.BaseController;
/**
* <p>
* 干扰源常态化管理更新信息 前端控制器
* </p>
*
* @author wr
* @since 2024-06-26
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/userReportRenewal")
@Api(tags = "干扰源常态化管理信息更新")
public class UserReportRenewalController extends BaseController {
private final IUserReportRenewalService userReportRenewalService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getUserReportUpdateById")
@ApiOperation("干扰源用户管理更新后信息查看")
public HttpResult<UserReportRenewalPO> getUserReportUpdateById(@RequestParam String businessId) {
String methodDescribe = getMethodDescribe("getUserReportUpdateById");
UserReportRenewalPO userReportUpdateById = userReportRenewalService.getUserReportUpdateById(businessId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, userReportUpdateById, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addEditor")
@ApiOperation("干扰源用户管理更新信息新增功能")
public HttpResult<String> addEditor(@RequestBody @Validated UserReportParam userReportParam) {
String methodDescribe = getMethodDescribe("addEditor");
String s = userReportRenewalService.addEditor(userReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@PostMapping("/cancel")
@ApiOperation("取消")
@ApiImplicitParam(name = "cancelReqVO", value = "取消原因", required = true)
public HttpResult<String> cancelUserReport(@Validated @RequestBody BpmProcessInstanceCancelParam cancelReqVO) {
String methodDescribe = getMethodDescribe("cancelUserReport");
String userReportId = userReportRenewalService.cancelUserReportRenewal(cancelReqVO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, userReportId, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/resend")
@ApiOperation("干扰源用户管理更新信息重新发送功能")
public HttpResult<String> resend(@RequestBody @Validated UserReportParam userReportParam) {
String methodDescribe = getMethodDescribe("resend");
String s = userReportRenewalService.resend(userReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
}
}

View File

@@ -17,4 +17,6 @@ import org.apache.ibatis.annotations.Param;
*/
public interface UserReportPOMapper extends BaseMapper<UserReportPO> {
Page<UserReportVO> page(@Param("page")Page<Object> objectPage, @Param("ew") QueryWrapper<UserReportVO> userReportVOQueryWrapper);
Page<UserReportVO> pageUpdate(@Param("page")Page<Object> objectPage, @Param("ew") QueryWrapper<UserReportVO> userReportVOQueryWrapper);
}

View File

@@ -0,0 +1,16 @@
package com.njcn.supervision.mapper.user;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.supervision.pojo.po.user.UserReportRenewalPO;
/**
* <p>
* 用户档案信息表 Mapper 接口
* </p>
*
* @author wr
* @since 2024-06-26
*/
public interface UserReportRenewalMapper extends BaseMapper<UserReportRenewalPO> {
}

View File

@@ -56,4 +56,30 @@
FROM supervision_user_report supervision_user_report
WHERE ${ew.sqlSegment}
</select>
<select id="pageUpdate" resultType="UserReportVO">
SELECT
supervision_user_report.id,
supervision_user_report.report_date,
supervision_user_report.org_id,
supervision_user_report.expected_production_date,
supervision_user_report.user_type,
supervision_user_report.city,
supervision_user_report.responsible_department,
supervision_user_report.user_status,
supervision_user_report.substation,
supervision_user_report.voltage_level,
supervision_user_report.project_name,
supervision_user_report.evaluation_dept,
supervision_user_report.data_type,
supervision_user_report.evaluation_conclusion,
r.process_instance_id,
r.history_instance_id,
supervision_user_report.create_time,
supervision_user_report.create_by,
r.status
FROM supervision_user_report supervision_user_report
LEFT JOIN supervision_user_report_renewal r ON supervision_user_report.id=r.id
WHERE ${ew.sqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.supervision.mapper.user.UserReportUpdateMapper">
</mapper>

View File

@@ -2,6 +2,7 @@ package com.njcn.supervision.service.device.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -191,15 +192,18 @@ public class CheckDeviceServiceImpl extends MppServiceImpl<CheckDeviceMapper, Ch
@Override
public BpmInstanceInfo getInstanceInfo(String businessId) {
BpmInstanceInfo bpmInstanceInfo = new BpmInstanceInfo();
BpmInstanceInfo bpmInstanceInfo= null;
CheckDeviceVo checkDevice = this.getInfoById(businessId);
bpmInstanceInfo.setHistoryInstanceId(checkDevice.getHistoryInstanceId());
String sign = checkDevice.getDept()
.concat(StrPool.SLASH)
.concat(checkDevice.getSubstation())
.concat(StrPool.SLASH)
.concat(checkDevice.getDeviceName());
bpmInstanceInfo.setInstanceSign(sign);
if(ObjUtil.isNotNull(checkDevice)) {
bpmInstanceInfo = new BpmInstanceInfo();
bpmInstanceInfo.setHistoryInstanceId(checkDevice.getHistoryInstanceId());
String sign = checkDevice.getDept()
.concat(StrPool.SLASH)
.concat(checkDevice.getSubstation())
.concat(StrPool.SLASH)
.concat(checkDevice.getDeviceName());
bpmInstanceInfo.setInstanceSign(sign);
}
return bpmInstanceInfo;
}
}

View File

@@ -0,0 +1,31 @@
package com.njcn.supervision.service.user;
import com.njcn.bpm.service.IBpmService;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.user.UserReportPO;
/**
* <p>
* 用户档案信息表 服务类
* </p>
*
* @author wr
* @since 2024-06-26
*/
public interface IUserReportDeleteService extends IBpmService<UserReportPO> {
/**
* 干扰源用户管理信息删除功能
* @param userReportParam
* @return
*/
String addEditor(UserReportParam userReportParam);
/**
* 干扰源用户管理删除重新发送功能
* @param userReportParam
* @return
*/
String resend(UserReportParam userReportParam);
}

View File

@@ -0,0 +1,41 @@
package com.njcn.supervision.service.user;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.bpm.service.IBpmService;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.user.UserReportRenewalPO;
/**
* <p>
* 用户档案信息表 服务类
* </p>
*
* @author wr
* @since 2024-06-26
*/
public interface IUserReportRenewalService extends IBpmService<UserReportRenewalPO> {
/**
* 干扰源用户管理更新后信息查看
* @param
* @return
*/
UserReportRenewalPO getUserReportUpdateById(String id);
/**
* 干扰源用户管理更新信息新增功能
* @param userReportParam
* @return
*/
String addEditor(UserReportParam userReportParam);
/**
* 干扰源用户管理更新信息重新发送功能
* @param userReportParam
* @return
*/
String resend(UserReportParam userReportParam);
String cancelUserReportRenewal(BpmProcessInstanceCancelParam cancelReqVO);
}

View File

@@ -0,0 +1,141 @@
package com.njcn.supervision.service.user.impl;
import cn.hutool.core.util.ObjUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.enums.BpmTaskStatusEnum;
import com.njcn.bpm.pojo.dto.BpmInstanceInfo;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.supervision.enums.SupervisionKeyEnum;
import com.njcn.supervision.mapper.user.UserReportPOMapper;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.user.*;
import com.njcn.supervision.service.user.*;
import com.njcn.supervision.utils.InstanceUtil;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
* <p>
* 用户档案信息表 服务实现类
* </p>
*
* @author wr
* @since 2024-06-26
*/
@Service
@RequiredArgsConstructor
public class UserReportDeleteServiceImpl extends ServiceImpl<UserReportPOMapper, UserReportPO> implements IUserReportDeleteService {
private final UserReportProjectPOService userReportProjectPOService;
private final UserReportSubstationPOService userReportSubstationPOService;
private final UserReportSensitivePOService userReportSensitivePOService;
private final BpmProcessFeignClient bpmProcessFeignClient;
@Override
@Transactional(rollbackFor = Exception.class)
public void updateProcessStatus(String businessId, Integer status) {
if (status == 2) {
//电网工程类用户额外数据
userReportProjectPOService.update(new LambdaUpdateWrapper<UserReportProjectPO>()
.set(UserReportProjectPO::getState, status)
.eq(UserReportProjectPO::getId, businessId));
//非线性负荷用户 & 新能源发电站用户
userReportSubstationPOService.update(new LambdaUpdateWrapper<UserReportSubstationPO>()
.set(UserReportSubstationPO::getState, 0)
.eq(UserReportSubstationPO::getId, businessId));
// 敏感及重要用户
userReportSensitivePOService.update(new LambdaUpdateWrapper<UserReportSensitivePO>()
.set(UserReportSensitivePO::getState, 0)
.eq(UserReportSensitivePO::getId, businessId));
this.update(new LambdaUpdateWrapper<UserReportPO>()
.set(UserReportPO::getState, 0)
.eq(UserReportPO::getId, businessId));
}
this.lambdaUpdate().set(UserReportPO::getStatus, status).eq(UserReportPO::getId, businessId).update();
}
@Override
public BpmInstanceInfo getInstanceInfo(String businessId) {
BpmInstanceInfo bpmInstanceInfo = new BpmInstanceInfo();
//todo 删除展示信息暂未确定
// bpmInstanceInfo.setHistoryInstanceId(userReportPO.getHistoryInstanceId());
// bpmInstanceInfo.setInstanceSign(userReportPO.getUserReportMessageJson().getProjectName());
return bpmInstanceInfo;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String addEditor(UserReportParam userReportParam) {
UserReportPO po = this.getById(userReportParam.getId());
if (ObjUtil.isNull(po)) {
throw new BusinessException("当前信息不存在,请确认信息是否存在");
}
//处理历史流程id列表
String historyInstanceIds = InstanceUtil.dealHistoryId(po.getProcessInstanceId(), po.getHistoryInstanceId());
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(SupervisionKeyEnum.USER_REPORT_DELETE.getKey());
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportParam.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(RequestUtil.getUserIndex(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
po.setProcessInstanceId(processInstanceId);
po.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
po.setState(DataStateEnum.ENABLE.getCode());
//保存历史流程id列表
po.setHistoryInstanceId(historyInstanceIds);
if (this.updateById(po)) {
return userReportParam.getId();
}
return "失败";
}
@Override
@Transactional(rollbackFor = Exception.class)
public String resend(UserReportParam userReportParam) {
UserReportPO po = this.getById(userReportParam.getId());
if (ObjUtil.isNull(po)) {
throw new BusinessException("当前信息不存在,请确认信息是否存在");
}else{
if (Objects.equals(po.getStatus(), BpmTaskStatusEnum.APPROVE.getStatus())) {
throw new BusinessException("当前流程以完成审批,无法重新发起");
}
}
//处理历史流程id列表
String historyInstanceIds = InstanceUtil.dealHistoryId(po.getProcessInstanceId(), po.getHistoryInstanceId());
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(SupervisionKeyEnum.USER_REPORT_DELETE.getKey());
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportParam.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(RequestUtil.getUserIndex(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
po.setProcessInstanceId(processInstanceId);
po.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
po.setState(DataStateEnum.ENABLE.getCode());
//保存历史流程id列表
po.setHistoryInstanceId(historyInstanceIds);
if (this.updateById(po)) {
return userReportParam.getId();
}
return "失败";
}
}

View File

@@ -104,22 +104,17 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
BeanUtils.copyProperties(userReportParam, userReportPO);
userReportPO.setState(DataStateEnum.ENABLE.getCode());
if (Objects.equals(userReportParam.getSaveOrCheckflag(), "2")) {
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());
}
if(ObjectUtil.isNotNull(userReportParam.getDataType())){
userReportPO.setDataType(userReportParam.getDataType());
@@ -174,7 +169,6 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
userReportPO.setProcessInstanceId(processInstanceId);
this.baseMapper.updateById(userReportPO);
}
return userReportPO.getId();
}
@@ -429,7 +423,12 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
userReportVOQueryWrapper.orderByDesc("supervision_user_report.Update_Time");
}
userReportVOQueryWrapper.orderByDesc("supervision_user_report.create_time");
Page<UserReportVO> page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(userReportQueryParam), PageFactory.getPageSize(userReportQueryParam)), userReportVOQueryWrapper);
Page<UserReportVO> page;
if(!allDataFlag){
page= this.baseMapper.page(new Page<>(PageFactory.getPageNum(userReportQueryParam), PageFactory.getPageSize(userReportQueryParam)), userReportVOQueryWrapper);
}else{
page = this.baseMapper.pageUpdate(new Page<>(PageFactory.getPageNum(userReportQueryParam), PageFactory.getPageSize(userReportQueryParam)), userReportVOQueryWrapper);
}
page.getRecords().forEach(temp->{
Integer needGovernance = 0;
@@ -1005,7 +1004,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
* @param userReportParam 用户申请数据
* @param isExcludeSelf 是否排除自己,一般新增不排除,更新时需要排除自己
*/
private void checkProjectName(UserReportParam userReportParam, boolean isExcludeSelf) {
protected void checkProjectName(UserReportParam userReportParam, boolean isExcludeSelf) {
if (!StringUtils.isEmpty(userReportParam.getProjectName())) {
LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>();
userReportPOLambdaQueryWrapper

View File

@@ -0,0 +1,207 @@
package com.njcn.supervision.service.user.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.BpmInstanceInfo;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.supervision.enums.*;
import com.njcn.supervision.mapper.user.UserReportRenewalMapper;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.po.device.SupervisionDevMainReportPO;
import com.njcn.supervision.pojo.po.user.*;
import com.njcn.supervision.pojo.vo.user.UserReportVO;
import com.njcn.supervision.service.user.*;
import com.njcn.supervision.utils.InstanceUtil;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
* <p>
* 用户档案信息表 服务实现类
* </p>
*
* @author wr
* @since 2024-06-26
*/
@Service
@RequiredArgsConstructor
public class UserReportRenewalServiceImpl extends ServiceImpl<UserReportRenewalMapper, UserReportRenewalPO> implements IUserReportRenewalService {
private final UserReportPOServiceImpl userReportPOService;
private final BpmProcessFeignClient bpmProcessFeignClient;
@Override
@Transactional(rollbackFor = Exception.class)
public void updateProcessStatus(String businessId, Integer status) {
UserReportRenewalPO userReportPO = this.getById(businessId);
if (ObjUtil.isNotNull(userReportPO)) {
if (BpmTaskStatusEnum.APPROVE.getStatus() == status) {
UserReportParam userReportParam = new UserReportParam();
userReportParam.setId(businessId);
BeanUtil.copyProperties(userReportPO, userReportParam);
userReportPOService.addUserReport(userReportParam);
}
this.lambdaUpdate().set(UserReportRenewalPO::getStatus, status).eq(UserReportRenewalPO::getId, businessId).update();
} else {
throw new BusinessException(SupervisionResponseEnum.NO_USER_REPORT_UPDATE);
}
}
@Override
public BpmInstanceInfo getInstanceInfo(String businessId) {
BpmInstanceInfo bpmInstanceInfo = new BpmInstanceInfo();
UserReportRenewalPO userReportPO = this.getById(businessId);
bpmInstanceInfo.setHistoryInstanceId(userReportPO.getHistoryInstanceId());
bpmInstanceInfo.setInstanceSign(userReportPO.getUserReportMessageJson().getProjectName());
return bpmInstanceInfo;
}
@Override
public UserReportRenewalPO getUserReportUpdateById(String id) {
return this.getById(id);
}
@Override
@Transactional(rollbackFor = Exception.class)
public String addEditor(UserReportParam userReportParam) {
UserReportRenewalPO po = new UserReportRenewalPO();
UserReportPO userReportPO = new UserReportPO();
BeanUtils.copyProperties(userReportParam, userReportPO);
userReportPO.setState(DataStateEnum.ENABLE.getCode());
if (Objects.equals(userReportParam.getSaveOrCheckflag(), "2")) {
po.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
if (StringUtils.isEmpty(userReportParam.getId())) {
userReportPOService.checkProjectName(userReportParam, false);
} else {
userReportPOService.checkProjectName(userReportParam, true);
}
}else {
po.setStatus(BpmTaskStatusEnum.WAIT.getStatus());
}
if (ObjectUtil.isNotNull(userReportParam.getDataType())) {
userReportPO.setDataType(userReportParam.getDataType());
if (userReportParam.getDataType() == 1) {
userReportPO.setStatus(FlowStatusEnum.APPROVE.getCode());
}
} else {
userReportPO.setDataType(0);
}
addition(userReportParam, userReportPO.getUserType());
// 如何未提交审则不需要发起 BPM 流程
if (Objects.equals(userReportParam.getSaveOrCheckflag(), "2")) {
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(SupervisionKeyEnum.USER_REPORT_RENEWAL.getKey());
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportPO.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(RequestUtil.getUserIndex(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
po.setProcessInstanceId(processInstanceId);
}
String userReport = JSONObject.toJSONStringWithDateFormat(userReportParam, JSON.DEFFAULT_DATE_FORMAT);
po.setId(userReportParam.getId());
po.setUserReportMessage(userReport);
po.setState(DataStateEnum.ENABLE.getCode());
if (this.saveOrUpdate(po)) {
return userReportParam.getId();
}
return "失败";
}
@Override
@Transactional(rollbackFor = Exception.class)
public String resend(UserReportParam userReportParam) {
UserReportRenewalPO po = this.getById(userReportParam.getId());
//判断是否有权限操作
InstanceUtil.judgeUserPower(RequestUtil.getUserIndex(), po.getCreateBy());
if (Objects.equals(po.getStatus(), BpmTaskStatusEnum.APPROVE.getStatus())) {
throw new BusinessException("当前流程以完成审批,无法重新发起");
}
//处理历史流程id列表
String historyInstanceIds = InstanceUtil.dealHistoryId(po.getProcessInstanceId(), po.getHistoryInstanceId());
addition(userReportParam, userReportParam.getUserType());
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(SupervisionKeyEnum.USER_REPORT_RENEWAL.getKey());
bpmProcessInstanceCreateReqDTO.setBusinessKey(userReportParam.getId());
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(userReportParam.getStartUserSelectAssignees());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(po.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
po.setProcessInstanceId(processInstanceId);
po.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
po.setState(DataStateEnum.ENABLE.getCode());
//保存历史流程id列表
po.setHistoryInstanceId(historyInstanceIds);
String userReport = JSONObject.toJSONStringWithDateFormat(userReportParam, JSON.DEFFAULT_DATE_FORMAT);
po.setUserReportMessage(userReport);
if (this.updateById(po)) {
return userReportParam.getId();
}
return "失败";
}
@Override
public String cancelUserReportRenewal(BpmProcessInstanceCancelParam cancelReqVO) {
//准备取消该流程,需要远程调用接口
UserReportRenewalPO userReportRenewalPO = this.baseMapper.selectById(cancelReqVO.getId());
//取消流程
bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO);
//更新状态
userReportRenewalPO.setStatus(BpmProcessInstanceStatusEnum.CANCEL.getStatus());
this.updateById(userReportRenewalPO);
return userReportRenewalPO.getId();
}
private void addition(UserReportParam userReportParam, Integer userType) {
if (
CollectionUtil.newArrayList(
UserNatureEnum.BUILD_POWER_GRID.getCode(),
UserNatureEnum.EXTEND_POWER_GRID.getCode()
).contains(userType)) {
//电网工程类用户额外数据
UserReportProjectPO userReportProjectPO = userReportParam.getUserReportProjectPO();
userReportProjectPO.setId(userReportParam.getId());
userReportProjectPO.setState(DataStateEnum.ENABLE.getCode());
} else if (
CollectionUtil.newArrayList(
UserNatureEnum.BUILD_NON_LINEAR_LOAD.getCode(),
UserNatureEnum.EXTEND_NON_LINEAR_LOAD.getCode(),
UserNatureEnum.BUILD_NEW_ENERGY_POWER_STATION.getCode(),
UserNatureEnum.EXTEND_NEW_ENERGY_POWER_STATION.getCode()
).contains(userType)) {
//非线性负荷用户 & 新能源发电站用户
UserReportSubstationPO userReportSubstationPO = userReportParam.getUserReportSubstationPO();
userReportSubstationPO.setId(userReportParam.getId());
userReportSubstationPO.setState(DataStateEnum.ENABLE.getCode());
} else if (UserNatureEnum.SENSITIVE_USER.getCode().equals(userType)) {
// 敏感及重要用户
UserReportSensitivePO userReportSensitivePO = userReportParam.getUserReportSensitivePO();
userReportSensitivePO.setId(userReportParam.getId());
userReportSensitivePO.setState(DataStateEnum.ENABLE.getCode());
}
}
}