1.技术监督试运行,不通过整体预告警单流程

This commit is contained in:
wr
2024-07-05 09:01:12 +08:00
parent fd23719a41
commit 6ec0ef54e9
37 changed files with 714 additions and 96 deletions

View File

@@ -0,0 +1,27 @@
package com.njcn.bpm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.bpm.pojo.dto.BpmInstanceInfo;
/**
* 统筹流程实例的公共方案
* @author hongawen
* @version 1.0.0
* @date 2024年06月12日 18:14
*/
public interface IBpmReasonService<T> extends IService<T> {
/**
* 根据业务id实时更新当前业务流程状态
* @param businessId 实际业务id
* @param status 流程实例当前状态具体参考BpmTaskStatusEnum枚举
*/
void updateProcessStatus(String businessId,String reason, Integer status);
/**
* 根据业务id获取历史审批id以及该任务的重要信息
* @param businessId 业务流程id
*/
BpmInstanceInfo getInstanceInfo(String businessId);
}

View File

@@ -35,6 +35,12 @@ public class BpmProcessInstanceStatusEvent extends ApplicationEvent {
*/
private String businessKey;
/**
* 审核消息
* 例如说,请假
*/
private String reason;
public BpmProcessInstanceStatusEvent(Object source) {
super(source);
}

View File

@@ -31,7 +31,7 @@ public class BpmSupervisionStatusListener implements ApplicationListener<BpmPro
* @param event 事件
*/
protected void onEvent(BpmProcessInstanceStatusEvent event) {
businessCommonFeignClient.updateProcessStatus(event.getProcessDefinitionKey(),event.getBusinessKey(), event.getStatus());
businessCommonFeignClient.updateProcessStatus(event.getProcessDefinitionKey(),event.getBusinessKey(),event.getReason(), event.getStatus());
}
}

View File

@@ -314,7 +314,7 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
// 4. 发送流程实例的状态事件
processInstanceEventPublisher.sendProcessInstanceResultEvent(
BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceStatusEvent(this, processInstance, BpmProcessInstanceStatusEnum.REJECT.getStatus()));
BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceStatusEvent(this, processInstance,reason ,BpmProcessInstanceStatusEnum.REJECT.getStatus()));
}
public void deleteProcessInstance(String id, String reason) {

View File

@@ -105,12 +105,13 @@ public interface BpmProcessInstanceConvert {
return bpmProcessInstanceStatusEvent;
}
default BpmProcessInstanceStatusEvent buildProcessInstanceStatusEvent(Object source, ProcessInstance instance, Integer status) {
default BpmProcessInstanceStatusEvent buildProcessInstanceStatusEvent(Object source, ProcessInstance instance,String reason, Integer status) {
BpmProcessInstanceStatusEvent bpmProcessInstanceStatusEvent = new BpmProcessInstanceStatusEvent(source);
bpmProcessInstanceStatusEvent.setId(instance.getId());
bpmProcessInstanceStatusEvent.setStatus(status);
bpmProcessInstanceStatusEvent.setProcessDefinitionKey(instance.getProcessDefinitionKey());
bpmProcessInstanceStatusEvent.setBusinessKey(instance.getBusinessKey());
bpmProcessInstanceStatusEvent.setReason(reason);
return bpmProcessInstanceStatusEvent;
}

View File

@@ -7,8 +7,10 @@ import com.njcn.device.pq.pojo.param.SyncTerminalParam;
import com.njcn.device.pq.pojo.po.Line;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -31,11 +33,17 @@ public interface TerminalBaseClient {
*/
@PostMapping("/getSubstationById")
HttpResult<List<Line>> getSubstationById(@RequestBody List<String> list);
/*
冀北技术监督台账同步
*/
/**
* 冀北技术监督台账同步
*/
@ApiOperation("终端/母线/监测点同步操作")
@PostMapping("terminalSync")
HttpResult<String> terminalSync( @RequestBody SyncTerminalParam syncTerminalParam);
/**
* 监测点和装置同步成运行状态
*/
@GetMapping("/terminalSyncRunFly")
HttpResult<Boolean> terminalSyncRunFly(@RequestParam("lineId") String lineId);
}

View File

@@ -44,6 +44,12 @@ public class TerminalBaseClientFallbackFactory implements FallbackFactory<Termin
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> terminalSyncRunFly(String lineId) {
log.error("{}异常,降级处理,异常为:{}", "监测点和装置同步成运行状态", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};

View File

@@ -12,10 +12,6 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil;
import com.njcn.device.biz.enums.DeviceResponseEnum;
import com.njcn.device.pq.mapper.LineDetailMapper;
import com.njcn.device.pq.mapper.LineMapper;
import com.njcn.device.pq.mapper.OverlimitMapper;
import com.njcn.device.pq.mapper.VoltageMapper;
import com.njcn.device.pq.pojo.bo.DeviceType;
import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
@@ -27,7 +23,6 @@ import com.njcn.device.pq.pojo.vo.TerminalVO;
import com.njcn.device.pq.service.TerminalBaseService;
import com.njcn.device.pq.service.impl.GeneralDeviceService;
import com.njcn.poi.util.PoiUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.*;
import lombok.RequiredArgsConstructor;
@@ -60,23 +55,6 @@ import java.util.stream.Stream;
public class TerminalBaseController extends BaseController {
private final TerminalBaseService terminalBaseService;
private final LineDetailMapper lineDetailMapper;
private final OverlimitMapper overlimitMapper;
private final DicDataFeignClient dicDataFeignClient;
private final LineMapper lineMapper;
private final VoltageMapper voltageMapper;
private final GeneralDeviceService generalDeviceService;
@@ -148,11 +126,19 @@ public class TerminalBaseController extends BaseController {
@PostMapping("terminalSync")
public HttpResult<String> terminalSync(@Valid @RequestBody SyncTerminalParam syncTerminalParam) {
String methodDescribe = getMethodDescribe("terminalSync");
String subtation = terminalBaseService.terminalSync(syncTerminalParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, subtation, methodDescribe);
String substation = terminalBaseService.terminalSync(syncTerminalParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, substation, methodDescribe);
}
@ApiOperation("监测点和装置同步成运行状态")
@OperateInfo(operateType = OperateType.ADD, info = LogEnum.BUSINESS_MEDIUM)
@GetMapping("/terminalSyncRunFly")
public HttpResult<Boolean> terminalSyncRunFly(@RequestParam("lineId") String lineId) {
String methodDescribe = getMethodDescribe("terminalSyncRunFly");
Boolean b = terminalBaseService.terminalSyncRunFly(lineId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, b, methodDescribe);
}
/**
* 终端修改操作
*

View File

@@ -243,4 +243,11 @@ public interface TerminalBaseService {
* @Date: 2024/5/29
*/
String terminalSync(SyncTerminalParam syncTerminalParam);
/**
* 监测点和装置同步成运行状态
* @param lineId
* @return
*/
Boolean terminalSyncRunFly(String lineId);
}

View File

@@ -5,12 +5,15 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.text.StrBuilder;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.dto.SimpleDTO;
@@ -21,6 +24,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.LogUtil;
import com.njcn.common.utils.PubUtils;
import com.njcn.device.biz.enums.DeviceResponseEnum;
import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.po.DeviceBak;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.biz.utils.COverlimitUtil;
@@ -108,9 +112,6 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
private final FileStorageUtil fileStorageUtil;
private final GeneralInfo generalInfo;
/**
* 终端新增操作
*
@@ -1882,7 +1883,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
Device deviceDetail = new Device();
BeanUtils.copyProperties(deviceParam, deviceDetail);
deviceDetail.setId(device.getId());
deviceDetail.setRunFlag(0);
deviceDetail.setRunFlag(3);
deviceDetail.setCallFlag(0);
deviceDetail.setComFlag(0);
deviceDetail.setCheckFlag(1);
@@ -1947,7 +1948,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
LineDetail lineDetail = new LineDetail();
BeanUtils.copyProperties(lineParam, lineDetail);
lineDetail.setId(line.getId());
lineDetail.setRunFlag(0);
lineDetail.setRunFlag(3);
//判断国网监测点id
if (StrUtil.isNotBlank(lineDetail.getMonitorId())) {
lineDetail.setMonitorFlag(1);
@@ -1987,6 +1988,23 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
return subIndex;
}
@Override
public Boolean terminalSyncRunFly(String lineId) {
LineDTO lineDTO = this.baseMapper.selectLineDetail(lineId);
if(ObjectUtil.isNotNull(lineDTO)){
lineDetailMapper.update(null,new LambdaUpdateWrapper<LineDetail>()
.set(LineDetail::getRunFlag, 0)
.eq(LineDetail::getId, lineDTO.getLineId())
);
deviceMapper.update(null,new LambdaUpdateWrapper<Device>()
.set(Device::getRunFlag, 0)
.eq(Device::getId, lineDTO.getDevId())
);
}
return false;
}
private String saveTerminalInfo(List<OracleTerminalExcel> oracleTerminalExcels, List<OverLimitExcel> overLimitExcels) {
List<OracleTerminalExcel.OracleTerminalExcelMsg> oracleTerminalExcelMsg = new ArrayList<>();

View File

@@ -23,16 +23,18 @@ public interface BusinessCommonFeignClient {
/**
* 根据流程key,业务id去实时更新流程状态
*
* @param processKey 流程定义key
* @param businessId 业务id
* @param status 目标状态
*/
@GetMapping("/updateProcessStatus")
HttpResult<Object> updateProcessStatus(@RequestParam("processKey") String processKey,@RequestParam("businessId") String businessId, @RequestParam("status")Integer status);
HttpResult<Object> updateProcessStatus(@RequestParam("processKey") String processKey, @RequestParam("businessId") String businessId, @RequestParam("reason") String reason, @RequestParam("status") Integer status);
/**
* 根据流程key,业务id去实时更新流程状态
*
* @param processKey 流程定义key
* @param businessId 业务id
*/

View File

@@ -25,7 +25,7 @@ public class BusinessCommonFeignClientFallbackFactory implements FallbackFactory
Enum<?> finalExceptionEnum = exceptionEnum;
return new BusinessCommonFeignClient() {
@Override
public HttpResult<Object> updateProcessStatus(String processKey,String businessId, Integer status) {
public HttpResult<Object> updateProcessStatus(String processKey, String businessId, String reason, Integer status) {
log.error("{}异常,降级处理,异常为:{}", "更新流程状态", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}

View File

@@ -23,4 +23,16 @@ public class WarningAddParam {
*/
@ApiModelProperty(value = "整改意见")
private String reformAdvice;
@Data
public static class Extend extends WarningAddParam{
@ApiModelProperty(name = "type", value = "1:预警单 2:告警单")
private Integer type;
@ApiModelProperty(name = "type", value = "预警单Id")
private String problemId;
@ApiModelProperty(name = "issueDetail", value = "问题描述")
private String issueDetail;
}
}

View File

@@ -44,7 +44,6 @@ public class CheckDevice extends BaseEntity implements Serializable {
/**
* 本次定检时间
*/
@MppMultiId("now_check_time")
private LocalDate nowCheckTime;
/**
@@ -75,6 +74,7 @@ public class CheckDevice extends BaseEntity implements Serializable {
/**
* 状态 0未处理 1已处理
*/
@MppMultiId("state")
private Integer state;
/**

View File

@@ -0,0 +1,44 @@
package com.njcn.supervision.pojo.po.device;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
/**
*
* @TableName supervision_temp_line_run_test_warning
*/
@TableName(value ="supervision_temp_line_run_test_warning")
@Data
public class TempLineRunTestWarning extends BaseEntity implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.INPUT)
private String id;
/**
* 试运行表主键
*/
@TableField(value = "line_run_id")
private String lineRunId;
/**
* 试运行成功报告地址
*/
private String testRunReport;
/**
* 试运行表主键
*/
@TableField(value = "reason")
private String reason;
}

View File

@@ -17,7 +17,6 @@ public class SupervisionTempLineDebugVO extends BaseEntity {
private String id;
@ApiModelProperty(value = "监测点编号")
private String lineId;
@@ -39,31 +38,36 @@ public class SupervisionTempLineDebugVO extends BaseEntity {
@ApiModelProperty(value = "电网侧变电站")
private String powerSubstationName;
@ApiModelProperty(value = "调试原因")
private String reason;
@ApiModelProperty(value = "流程实例的编号")
private String processInstanceId;
@ApiModelProperty(value = "流程实例的编号")
@ApiModelProperty(value = "历史流程实列")
private String historyInstanceId;
@ApiModelProperty(value = "1:审批中2审批通过3审批不通过4已取消,5数据同步完成")
private Integer status;
/**
* 0:未试运行 1试运行中 2.试运行成功 3.试运行异常
*/
@ApiModelProperty(value = "0:未试运行 1试运行中 2.试运行成功 3.试运行异常")
private Integer testRunState;
/**
* 试运行时间范围
*/
@ApiModelProperty(value = "试运行时间范围")
private String testRunTime;
/**
* 试运行成功报告地址
*/
@ApiModelProperty(value = "试运行成功报告地址")
private String testRunReport;
@ApiModelProperty(value = "审核不通过原因")
private String problemReason;
@ApiModelProperty(value = "1技术监督管理2在线监测超标问题3用户投诉4试运行监测点问题")
private Integer problemType;
@ApiModelProperty(value = "预告警单问题Id")
private String problemId;
public void setTestRunReport(String testRunReport) {
if (StrUtil.isNotBlank(testRunReport)) {
this.testRunReport = "/" + testRunReport;

View File

@@ -77,8 +77,14 @@ public class SupervisionTempLineRunTestVO extends BaseEntity{
private String lineName;
private String userName;
/**
* 母线
*/
private String connectedBus;
private String monitoringTerminalCode;
/**
* 终端名称
*/
private String monitoringTerminalName;
private String powerSubstationName;
private String reason;
@@ -98,6 +104,5 @@ public class SupervisionTempLineRunTestVO extends BaseEntity{
this.testRunReport = testRunReport;
}
}
}

View File

@@ -0,0 +1,31 @@
package com.njcn.supervision.pojo.vo.device;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author wr
* @description
* @date 2024/7/4 12:31
*/
@ApiModel(description="告警信息")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TempLineRunTestWarningVO {
@ApiModelProperty(value = "试运行id")
private String id;
@ApiModelProperty(value = "告警单Id")
private String warningId;
@ApiModelProperty(value = "审批类型 1:审批中2审批通过3审批不通过4已取消5待反馈")
private Integer status;
@ApiModelProperty(value = "不通过时间")
private String time;
}

View File

@@ -2,6 +2,7 @@ package com.njcn.supervision.controller;
import cn.hutool.extra.spring.SpringUtil;
import com.njcn.bpm.pojo.dto.BpmInstanceInfo;
import com.njcn.bpm.service.IBpmReasonService;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -34,10 +35,9 @@ public class BusinessCommonController extends BaseController {
@GetMapping("/updateProcessStatus")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("更新流程状态")
public HttpResult<Object> updateProcessStatus(String processKey,String businessId, Integer status) {
public HttpResult<Object> updateProcessStatus(String processKey, String businessId, String reason, Integer status) {
String methodDescribe = getMethodDescribe("updateProcessStatus");
IBpmService iBpmService = getBpmServiceByBusinessKey(processKey);
iBpmService.updateProcessStatus(businessId, status);
getBpmServiceByBusinessStatusKey(processKey, businessId, reason, status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@@ -47,13 +47,62 @@ public class BusinessCommonController extends BaseController {
@ApiOperation("获取业务数据")
public HttpResult<BpmInstanceInfo> getInstanceInfo(String processKey, String businessId) {
String methodDescribe = getMethodDescribe("getInstanceInfo");
IBpmService iBpmService = getBpmServiceByBusinessKey(processKey);
BpmInstanceInfo instanceInfo = iBpmService.getInstanceInfo(businessId);
BpmInstanceInfo instanceInfo = getBpmServiceByBusinessKey(processKey,businessId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, instanceInfo, methodDescribe);
}
/**
* 根据业务流key获取实现类对象
*
* @param processKey 业务流key
*/
private void getBpmServiceByBusinessStatusKey(String processKey, String businessId, String reason, Integer status) {
String fullServicePath = SupervisionKeyEnum.getFullServicePathByKey(processKey);
try {
if ("SupervisionTempLineRunTestServiceImpl".equals(fullServicePath.substring(fullServicePath.lastIndexOf(".")+1))) {
IBpmReasonService iBpmService = (IBpmReasonService) SpringUtil.getBean(Class.forName(fullServicePath));
iBpmService.updateProcessStatus(businessId, reason, status);
} else {
IBpmService executor = (IBpmService) SpringUtil.getBean(Class.forName(fullServicePath));
executor.updateProcessStatus(businessId, status);
}
} catch (ClassNotFoundException e) {
throw new BusinessException(SupervisionResponseEnum.SUPERVISION_SERVICE_NOT_FOUND);
}
}
/**
* 根据业务流key获取实现类对象
*
* @param processKey 业务流key
*/
private BpmInstanceInfo getBpmServiceByBusinessKey(String processKey, String businessId) {
String fullServicePath = SupervisionKeyEnum.getFullServicePathByKey(processKey);
BpmInstanceInfo instanceInfo ;
try {
if ("SupervisionTempLineRunTestServiceImpl".equals(fullServicePath.substring(fullServicePath.lastIndexOf(".")+1))) {
IBpmReasonService iBpmService = (IBpmReasonService) SpringUtil.getBean(Class.forName(fullServicePath));
instanceInfo = iBpmService.getInstanceInfo(businessId);
} else {
IBpmService executor = (IBpmService) SpringUtil.getBean(Class.forName(fullServicePath));
instanceInfo = executor.getInstanceInfo(businessId);
}
} catch (ClassNotFoundException e) {
throw new BusinessException(SupervisionResponseEnum.SUPERVISION_SERVICE_NOT_FOUND);
}
return instanceInfo;
}
/**
* 根据业务流key获取实现类对象
*
* @param processKey 业务流key
*/
private IBpmService getBpmServiceByBusinessKey(String processKey) {

View File

@@ -53,7 +53,7 @@ public class SupervisionTempLineRunTestController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.UPDATE)
@PostMapping("/update")
@ApiOperation("新增监测点试运行")
@ApiOperation("重新发送监测点试运行")
@ApiImplicitParam(name = "supervisionTempLineRunTestParam", value = "实体参数", required = true)
public HttpResult<Object> updateRunTest(@RequestBody @Validated SupervisionTempLineRunTestParam.SupervisionTempLineRunTestUpdateParam supervisionTempLineRunTestParam){
String methodDescribe = getMethodDescribe("updateRunTest");
@@ -79,7 +79,7 @@ public class SupervisionTempLineRunTestController extends BaseController {
@ApiOperation("修改业务审核状态")
public HttpResult<Object> updateStatus(@RequestParam("businessKey") String businessKey, @RequestParam("status")Integer status){
String methodDescribe = getMethodDescribe("updateLineRunTestStatus");
iSupervisionTempLineRunTestService.updateProcessStatus(businessKey,status);
iSupervisionTempLineRunTestService.updateProcessStatus(businessKey,null,status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
@@ -104,7 +104,5 @@ public class SupervisionTempLineRunTestController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, id, methodDescribe);
}
}

View File

@@ -0,0 +1,58 @@
package com.njcn.supervision.controller.problem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.device.SupervisionTempLineDebugParam;
import com.njcn.supervision.pojo.param.leaflet.WarningAddParam;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineDebugVO;
import com.njcn.supervision.service.leaflet.ILineRunTestProblemService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author wr
* @description
* @date 2024/7/3 9:02
*/
@Slf4j
@RestController
@RequestMapping("/lineRunTestProblem")
@Api(tags = "试运行评估问题")
@AllArgsConstructor
public class LineRunTestProblemController extends BaseController {
private final ILineRunTestProblemService lineRunTestProblemService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/pageProblem")
@ApiOperation("查询问题列表")
@ApiImplicitParam(name = "supervisionTempLineDebugQuery", value = "参数", required = true)
public HttpResult<Page<SupervisionTempLineDebugVO>> pageProblem(@RequestBody @Validated SupervisionTempLineDebugParam.SupervisionTempLineDebugQuery supervisionTempLineDebugQuery) {
String methodDescribe = getMethodDescribe("pageProblem");
Page<SupervisionTempLineDebugVO> out = lineRunTestProblemService.pageProblem(supervisionTempLineDebugQuery);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/initiateWarningLeaflet")
@ApiOperation("针对试运行发起告警单")
public HttpResult<Boolean> initiateWarningLeaflet(@RequestBody WarningAddParam.Extend warningAddParam){
String methodDescribe = getMethodDescribe("initiateWarningLeaflet");
lineRunTestProblemService.initiateWarningLeaflet(warningAddParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Boolean.TRUE, methodDescribe);
}
}

View File

@@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.*;
*/
@RestController
@RequestMapping("userReportNormal")
@ApiOperation("干扰源常态化管理")
@RequiredArgsConstructor
public class UserReportNormalController extends BaseController {

View File

@@ -17,7 +17,19 @@ import org.apache.ibatis.annotations.Param;
*/
public interface SupervisionTempLineDebugPOMapper extends BaseMapper<SupervisionTempLineDebugPO> {
Page<SupervisionTempLineDebugVO> page(@Param("page") Page<Object> objectPage, @Param("ew") QueryWrapper<SupervisionDevMainReportVO> queryWrapper);
Page<SupervisionTempLineDebugVO> page(@Param("page") Page<Object> objectPage,
@Param("ew") QueryWrapper<SupervisionDevMainReportVO> queryWrapper);
Page<SupervisionTempLineDebugVO> pageHasDebug(@Param("page") Page<Object> objectPage,
@Param("ew") QueryWrapper<SupervisionDevMainReportVO> queryWrapper);
/**
* 问题分页并查询是否有告警单
* @param objectPage
* @param queryWrapper
* @return
*/
Page<SupervisionTempLineDebugVO> pageProblem(@Param("page") Page<Object> objectPage,
@Param("ew") QueryWrapper<SupervisionDevMainReportVO> queryWrapper);
Page<SupervisionTempLineDebugVO> pageHasDebug(@Param("page") Page<Object> objectPage, @Param("ew") QueryWrapper<SupervisionDevMainReportVO> queryWrapper);
}

View File

@@ -4,8 +4,11 @@ package com.njcn.supervision.mapper.device;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineRunTestPO;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineRunTestVO;
import com.njcn.supervision.pojo.vo.device.TempLineRunTestWarningVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* Mapper 接口
@@ -17,4 +20,8 @@ import org.apache.ibatis.annotations.Param;
public interface SupervisionTempLineRunTestMapper extends BaseMapper<SupervisionTempLineRunTestPO> {
SupervisionTempLineRunTestVO getRunTestInfo(@Param("id")String id);
List<TempLineRunTestWarningVO> selectResults(@Param("id")String id);
}

View File

@@ -0,0 +1,18 @@
package com.njcn.supervision.mapper.device;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.supervision.pojo.po.device.TempLineRunTestWarning;
/**
* @author web2023
* @description 针对表【supervision_temp_line_run_test_warning】的数据库操作Mapper
* @createDate 2024-07-03 13:52:39
* @Entity
*/
public interface TempLineRunTestWarningMapper extends BaseMapper<TempLineRunTestWarning> {
}

View File

@@ -72,4 +72,36 @@
where supervision_temp_line_debug.`status`=5
and ${ew.sqlSegment}
</select>
<select id="pageProblem" resultType="com.njcn.supervision.pojo.vo.device.SupervisionTempLineDebugVO">
SELECT
supervision_temp_line_run_test.id id,
supervision_temp_line_run_test_warning.id problemId,
supervision_temp_line_report.user_name,
supervision_temp_line_report.connected_bus,
supervision_temp_line_report.monitoring_terminal_code,
supervision_temp_line_report.monitoring_terminal_name,
supervision_temp_line_report.Power_Substation_Name,
supervision_temp_line_report.line_id lineId,
supervision_temp_line_report.line_name lineName,
supervision_temp_line_run_test_warning.test_run_report,
supervision_temp_line_debug.reason reason,
supervision_temp_line_run_test.process_instance_id process_instanceId,
supervision_temp_line_run_test.history_instance_id,
supervision_temp_line_run_test.`status` `Status`,
IFNULL(supervision_temp_line_run_test.`test_run_state`,0) `testRunState`,
supervision_temp_line_run_test.test_run_time,
supervision_temp_line_run_test.create_by,
supervision_warning_leaflet.problem_type problemType,
supervision_temp_line_run_test_warning.reason problemReason
FROM
supervision_temp_line_debug
inner JOIN supervision_temp_line_report ON supervision_temp_line_report.id = supervision_temp_line_debug.id
inner join supervision_temp_line_run_test on supervision_temp_line_debug.id = supervision_temp_line_run_test.id
inner join supervision_temp_line_run_test_warning on supervision_temp_line_run_test_warning.line_run_id = supervision_temp_line_run_test.id
left join supervision_warning_leaflet on supervision_warning_leaflet.problem_id = supervision_temp_line_run_test_warning.id
where supervision_temp_line_debug.`status`=5
and ${ew.sqlSegment}
</select>
</mapper>

View File

@@ -28,4 +28,20 @@
where supervision_temp_line_run_test.id = #{id}
</select>
<select id="selectResults" resultType="com.njcn.supervision.pojo.vo.device.TempLineRunTestWarningVO">
SELECT
supervision_temp_line_run_test_warning.id id,
supervision_warning_leaflet.id warningId,
supervision_warning_leaflet.status status,
supervision_warning_leaflet.create_time `time`
FROM
supervision_temp_line_debug
inner JOIN supervision_temp_line_report ON supervision_temp_line_report.id = supervision_temp_line_debug.id
inner join supervision_temp_line_run_test on supervision_temp_line_debug.id = supervision_temp_line_run_test.id
inner join supervision_temp_line_run_test_warning on supervision_temp_line_run_test_warning.line_run_id = supervision_temp_line_run_test.id
left join supervision_warning_leaflet on supervision_warning_leaflet.problem_id = supervision_temp_line_run_test_warning.id
where supervision_temp_line_run_test_warning.line_run_id = #{id}
order by supervision_warning_leaflet.create_time desc
</select>
</mapper>

View File

@@ -0,0 +1,8 @@
<?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.device.TempLineRunTestWarningMapper">
</mapper>

View File

@@ -18,6 +18,7 @@ import com.njcn.supervision.pojo.vo.device.QuitRunningDeviceVO;
public interface IQuitRunningDeviceService extends IBpmService<QuitRunningDevice> {
String addRunningDevice(QuitRunningDeviceParam quitRunningDeviceParam);
String updateQuitRunningDevice(QuitRunningDeviceParam.QuitRunningDeviceUpdateParam quitRunningDeviceUpdateParam);
Page<QuitRunningDeviceVO> getQuitRunningDevice(QuitRunningDeviceParam.QuitRunningDeviceQueryParam quitRunningDeviceQueryParam);

View File

@@ -2,7 +2,7 @@ package com.njcn.supervision.service.device;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.bpm.service.IBpmService;
import com.njcn.bpm.service.IBpmReasonService;
import com.njcn.supervision.pojo.param.device.SupervisionTempLineRunTestParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineRunTestPO;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineRunTestVO;
@@ -17,7 +17,7 @@ import javax.servlet.http.HttpServletResponse;
* @author hongawen
* @since 2024-05-21
*/
public interface ISupervisionTempLineRunTestService extends IBpmService<SupervisionTempLineRunTestPO> {
public interface ISupervisionTempLineRunTestService extends IBpmReasonService<SupervisionTempLineRunTestPO> {
Boolean addRunTest(SupervisionTempLineRunTestParam supervisionTempLineRunTestParam);
@@ -29,6 +29,4 @@ public interface ISupervisionTempLineRunTestService extends IBpmService<Supervis
String cancel(BpmProcessInstanceCancelParam cancelReqVO);
}

View File

@@ -0,0 +1,13 @@
package com.njcn.supervision.service.device;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.supervision.pojo.po.device.TempLineRunTestWarning;
/**
* @author web2023
* @description 针对表【supervision_temp_line_run_test_warning】的数据库操作Service
* @createDate 2024-07-03 13:52:39
*/
public interface TempLineRunTestWarningService extends IService<TempLineRunTestWarning> {
}

View File

@@ -5,9 +5,12 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum;
@@ -15,16 +18,19 @@ 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.bpm.utils.DateUtils;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.biz.commApi.CommLineClient;
import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.pq.api.LineIntegrityClient;
import com.njcn.device.pq.api.TerminalBaseClient;
import com.njcn.device.pq.pojo.dto.LineDataQualityDTO;
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
import com.njcn.harmonic.api.ReportFeignClient;
import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.supervision.enums.FlowStatusEnum;
import com.njcn.supervision.enums.SupervisionKeyEnum;
import com.njcn.supervision.enums.SupervisionUserStatusEnum;
import com.njcn.supervision.mapper.device.SupervisionTempLineReportMapper;
@@ -32,12 +38,17 @@ import com.njcn.supervision.mapper.device.SupervisionTempLineRunTestMapper;
import com.njcn.supervision.pojo.param.device.SupervisionTempLineRunTestParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineRunTestPO;
import com.njcn.supervision.pojo.po.device.TempLineRunTestWarning;
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
import com.njcn.supervision.pojo.po.user.UserReportNormalPO;
import com.njcn.supervision.pojo.po.user.UserReportProjectPO;
import com.njcn.supervision.pojo.po.user.UserReportSensitivePO;
import com.njcn.supervision.pojo.po.user.UserReportSubstationPO;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineRunTestVO;
import com.njcn.supervision.pojo.vo.device.TempLineRunTestWarningVO;
import com.njcn.supervision.service.device.ISupervisionTempLineRunTestService;
import com.njcn.supervision.service.device.TempLineRunTestWarningService;
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
import com.njcn.supervision.service.user.*;
import com.njcn.supervision.utils.InstanceUtil;
import com.njcn.web.utils.RequestUtil;
@@ -83,7 +94,8 @@ public class SupervisionTempLineRunTestServiceImpl extends ServiceImpl<Supervisi
private final IUserReportNormalService iUserReportNormalService;
private final ReportFeignClient reportFeignClient;
private final FileStorageUtil fileStorageUtil;
private final TerminalBaseClient terminalBaseClient;
private final TempLineRunTestWarningService tempLineRunTestWarningService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -149,12 +161,9 @@ public class SupervisionTempLineRunTestServiceImpl extends ServiceImpl<Supervisi
supervisionTempLineRunTestPO.setOnlineRate(0.00);
supervisionTempLineRunTestPO.setIntegrityRate(0.00);
supervisionTempLineRunTestPO.setTestRunTime(supervisionTempLineRunTestParam.getStartTime() + "--" + supervisionTempLineRunTestParam.getEndTime());
supervisionTempLineRunTestPO.setProcessInstanceId("tem暂无");
if (Objects.nonNull(supervisionTempLineRunTestParam.getOperateType()) && supervisionTempLineRunTestParam.getOperateType() == 1) {
SupervisionTempLineRunTestPO testPo = this.getById(item.getId());
String historyInstanceIds = InstanceUtil.dealHistoryId(testPo.getProcessInstanceId(), testPo.getHistoryInstanceId());
supervisionTempLineRunTestPO.setHistoryInstanceId(historyInstanceIds);
}
poList.add(supervisionTempLineRunTestPO);
@@ -164,14 +173,35 @@ public class SupervisionTempLineRunTestServiceImpl extends ServiceImpl<Supervisi
}
@Override
@Transactional(rollbackFor = Exception.class)
public String updateRunTest(SupervisionTempLineRunTestParam.SupervisionTempLineRunTestUpdateParam supervisionTempLineRunTestParam) {
SupervisionTempLineRunTestPO supervisionTempLineRunTestPO = this.baseMapper.selectById(supervisionTempLineRunTestParam.getId());
supervisionTempLineRunTestParam.setProcessInstanceId(supervisionTempLineRunTestPO.getProcessInstanceId());
supervisionTempLineRunTestParam.setHistoryInstanceId(supervisionTempLineRunTestPO.getHistoryInstanceId());
BeanUtil.copyProperties(supervisionTempLineRunTestParam, supervisionTempLineRunTestPO);
supervisionTempLineRunTestPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
if (Objects.isNull(supervisionTempLineRunTestPO)) {
throw new BusinessException(CommonResponseEnum.FAIL, "无法查询到该信息,请检查信息是否存在!");
}
//1.先判断是否发送告警单,没有则不允许重新发送
List<TempLineRunTestWarningVO> tempLineRunTestWarningVOS = this.baseMapper.selectResults(supervisionTempLineRunTestParam.getId());
long count = tempLineRunTestWarningVOS.stream().filter(x -> StrUtil.isBlank(x.getWarningId())).count();
if (count>0) {
throw new BusinessException(CommonResponseEnum.FAIL, "请先发送告警单信息!");
}
//2.判断告警单,是否有未审核通过则不允许重新发送
if(CollUtil.isNotEmpty(tempLineRunTestWarningVOS)){
Integer status = tempLineRunTestWarningVOS.get(0).getStatus();
if(!status.equals(FlowStatusEnum.APPROVE.getCode())){
throw new BusinessException(CommonResponseEnum.FAIL, "请处理告警单信息,处理审核通过才可重新发送!");
}
String startTime = DateUtil.format(DateUtil.offsetDay(DateUtil.date(), 1), DatePattern.NORM_DATE_PATTERN);
String endTime = DateUtil.format(DateUtil.offsetDay(DateUtil.date(), 3), DatePattern.NORM_DATE_PATTERN);
supervisionTempLineRunTestPO.setTestRunTime(startTime + "--" + endTime);
}
supervisionTempLineRunTestPO.setStatus(1);
supervisionTempLineRunTestPO.setTestRunReport("");
supervisionTempLineRunTestPO.setState(DataStateEnum.ENABLE.getCode());
supervisionTempLineRunTestPO.setTestRunState(DataStateEnum.ENABLE.getCode());
//处理历史流程id列表
String historyInstanceIds = InstanceUtil.dealHistoryId(supervisionTempLineRunTestPO.getProcessInstanceId(), supervisionTempLineRunTestPO.getHistoryInstanceId());
@@ -192,6 +222,7 @@ public class SupervisionTempLineRunTestServiceImpl extends ServiceImpl<Supervisi
}
@Override
@Transactional(rollbackFor = Exception.class)
public void isTestRunStartOrEnd(HttpServletResponse response) {
LocalDateTime time = LocalDateTime.now();
LambdaQueryWrapper<SupervisionTempLineRunTestPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -220,6 +251,9 @@ public class SupervisionTempLineRunTestServiceImpl extends ServiceImpl<Supervisi
List<LineDataQualityDTO> lineDataQualityDTOList = lineIntegrityClient.getLineDataQuality(lineDataQualityParam).getData();
Map<String, LineDataQualityDTO> qualityDTOMap = lineDataQualityDTOList.stream().collect(Collectors.toMap(LineDataQualityDTO::getLineId, Function.identity()));
for (SupervisionTempLineRunTestPO supervisionTempLineRunTestPO : val) {
// 将工作流的编号,更新到流程单中
SupervisionTempLineRunTestPO po = new SupervisionTempLineRunTestPO();
if(supervisionTempLineRunTestPO.getStatus()!=1&&StrUtil.isBlank(supervisionTempLineRunTestPO.getProcessInstanceId())){
// 发起 BPM 流程
Map<String, Object> processInstanceVariables = new HashMap<>();
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO();
@@ -228,10 +262,9 @@ public class SupervisionTempLineRunTestServiceImpl extends ServiceImpl<Supervisi
bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(new HashMap<>());
bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables);
String processInstanceId = bpmProcessFeignClient.createProcessInstance(supervisionTempLineRunTestPO.getCreateBy(), bpmProcessInstanceCreateReqDTO).getData();
// 将工作流的编号,更新到流程单中
SupervisionTempLineRunTestPO po = new SupervisionTempLineRunTestPO();
po.setId(supervisionTempLineRunTestPO.getId());
po.setProcessInstanceId(processInstanceId);
}
po.setId(supervisionTempLineRunTestPO.getId());
po.setStatus(1);
po.setTestRunState(2);
if (qualityDTOMap.containsKey(supervisionTempLineRunTestPO.getId())) {
@@ -288,11 +321,21 @@ public class SupervisionTempLineRunTestServiceImpl extends ServiceImpl<Supervisi
@Override
@Transactional(rollbackFor = Exception.class)
public void updateProcessStatus(String businessKey, Integer status) {
public void updateProcessStatus(String businessKey,String reason, Integer status) {
SupervisionTempLineRunTestPO supervisionTempLineRunTestPO = this.baseMapper.selectById(businessKey);
//如果状态为审批通过
if (status.equals(BpmProcessInstanceStatusEnum.APPROVE.getStatus())) {
userReportPOService.updateUserStatus(businessKey, SupervisionUserStatusEnum.PRODUCT.getCode());
terminalBaseClient.terminalSyncRunFly(businessKey);
}
//如果状态为审批不通过,则插入一条数据标识问题信息
if (status.equals(BpmProcessInstanceStatusEnum.REJECT.getStatus())) {
TempLineRunTestWarning warning = new TempLineRunTestWarning();
warning.setId(IdWorker.get32UUID());
warning.setLineRunId(businessKey);
warning.setReason(reason);
warning.setTestRunReport(supervisionTempLineRunTestPO.getTestRunReport());
tempLineRunTestWarningService.save(warning);
}
supervisionTempLineRunTestPO.setStatus(status);
this.updateById(supervisionTempLineRunTestPO);

View File

@@ -0,0 +1,22 @@
package com.njcn.supervision.service.device.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.supervision.mapper.device.TempLineRunTestWarningMapper;
import com.njcn.supervision.pojo.po.device.TempLineRunTestWarning;
import com.njcn.supervision.service.device.TempLineRunTestWarningService;
import org.springframework.stereotype.Service;
/**
* @author web2023
* @description 针对表【supervision_temp_line_run_test_warning】的数据库操作Service实现
* @createDate 2024-07-03 13:52:39
*/
@Service
public class TempLineRunTestWarningServiceImpl extends ServiceImpl<TempLineRunTestWarningMapper, TempLineRunTestWarning> implements TempLineRunTestWarningService {
}

View File

@@ -0,0 +1,28 @@
package com.njcn.supervision.service.leaflet;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.supervision.pojo.param.device.SupervisionTempLineDebugParam;
import com.njcn.supervision.pojo.param.leaflet.WarningAddParam;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineDebugVO;
/**
* @Description: 试运行评估问题 服务类
* @Author: wr
* @Date: 2024/7/3 9:45
*/
public interface ILineRunTestProblemService{
/**
* 查询审核不通过,试运行列表。来表示电能问题
* @param supervisionTempLineDebugQuery
* @return
*/
Page<SupervisionTempLineDebugVO> pageProblem(SupervisionTempLineDebugParam.SupervisionTempLineDebugQuery supervisionTempLineDebugQuery);
/**
* 发起告警单
* @param warningAddParam
*/
void initiateWarningLeaflet(WarningAddParam.Extend warningAddParam);
}

View File

@@ -0,0 +1,147 @@
package com.njcn.supervision.service.leaflet.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.pojo.dto.RMpPartHarmonicDetailDTO;
import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.supervision.enums.FlowStatusEnum;
import com.njcn.supervision.enums.LeafletTypeEnum;
import com.njcn.supervision.enums.ProblemTypeEnum;
import com.njcn.supervision.enums.SupervisionKeyEnum;
import com.njcn.supervision.mapper.device.SupervisionTempLineDebugPOMapper;
import com.njcn.supervision.mapper.leaflet.WarningLeafletMapper;
import com.njcn.supervision.pojo.param.device.SupervisionTempLineDebugParam;
import com.njcn.supervision.pojo.param.leaflet.WarningAddParam;
import com.njcn.supervision.pojo.param.leaflet.WarningLeafletParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineRunTestPO;
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
import com.njcn.supervision.pojo.po.problem.SupervisionUserComplaintPO;
import com.njcn.supervision.pojo.po.survey.SurveyTest;
import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineDebugVO;
import com.njcn.supervision.pojo.vo.device.SupervisionTempLineRunTestVO;
import com.njcn.supervision.pojo.vo.leaflet.WarningLeafletVO;
import com.njcn.supervision.service.device.ISupervisionTempLineRunTestService;
import com.njcn.supervision.service.device.SupervisionTempLineDebugPOService;
import com.njcn.supervision.service.leaflet.ILineRunTestProblemService;
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
import com.njcn.supervision.service.survey.ISurveyTestService;
import com.njcn.supervision.service.survey.SupervisionGeneralSurveyPlanPOService;
import com.njcn.supervision.utils.InstanceUtil;
import com.njcn.system.api.DicDataFeignClient;
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.pojo.po.Dept;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Description: 试运行评估问题 服务实现类
* @Author: wr
* @Date: 2024/7/3 9:44
*/
@Service
@RequiredArgsConstructor
public class LineRunTestProblemServiceImpl implements ILineRunTestProblemService {
private final UserFeignClient userFeignClient;
private final DeptFeignClient deptFeignClient;
private final SupervisionTempLineDebugPOMapper lineDebugPOMapper;
private final IWarningLeafletService warningLeafletService;
private final ISupervisionTempLineRunTestService lineRunTestService;
@Override
public Page<SupervisionTempLineDebugVO> pageProblem(SupervisionTempLineDebugParam.SupervisionTempLineDebugQuery supervisionTempLineDebugQuery) {
QueryWrapper<SupervisionDevMainReportVO> queryWrapper = new QueryWrapper<>();
List<String> colleaguesIds = userFeignClient.getColleaguesIdByUserId(RequestUtil.getUserIndex()).getData();
queryWrapper.in("supervision_temp_line_debug.Create_By", colleaguesIds)
.eq("supervision_temp_line_debug.state", DataStateEnum.ENABLE.getCode());
if (StrUtil.isNotBlank(supervisionTempLineDebugQuery.getOrgNo())) {
/*获取直接下属子单位*/
List<String> data = deptFeignClient.getDepSonIdtByDeptId(supervisionTempLineDebugQuery.getOrgNo()).getData();
queryWrapper.in("supervision_temp_line_report.org_id", data);
}
//添加上时间范围
queryWrapper.between("supervision_temp_line_run_test_warning.create_time",
DateUtil.beginOfDay(DateUtil.parse(supervisionTempLineDebugQuery.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(supervisionTempLineDebugQuery.getSearchEndTime())));
queryWrapper.orderByDesc("supervision_temp_line_run_test_warning.create_time");
Page<SupervisionTempLineDebugVO> page = lineDebugPOMapper.pageProblem(new Page<>(PageFactory.getPageNum(supervisionTempLineDebugQuery), PageFactory.getPageSize(supervisionTempLineDebugQuery)), queryWrapper);
return page;
}
@Override
public void initiateWarningLeaflet(WarningAddParam.Extend warningAddParam) {
SupervisionTempLineRunTestVO runTestById = lineRunTestService.getRunTestById(warningAddParam.getId());
if(ObjectUtil.isNull(runTestById)){
throw new BusinessException(CommonResponseEnum.FAIL, "无法查询到该信息,请检查信息是否存在!");
}
//组装告警单
String complainteDetail = assembleWarningDetail(runTestById);
/*
* 1、预告警单名称此处暂时用用户名+投诉
* 2、预告警编号暂时随机by yxb
* 3、问题类型1技术监督管理2在线监测超标问题3用户投诉4现场测试超标此处是现场测试超标
* 4、对应问题源id用于查询详细数据
* 5、单子类型1预警单2告警单
* 6、问题详细描述
* */
warningLeafletService.createLeaflet(
complainteDetail,
RequestUtil.getDeptIndex(),
IdWorker.get32UUID(),
warningAddParam.getProblemId(),
ProblemTypeEnum.SITE_TEST.getCode(),
warningAddParam.getType(),
warningAddParam.getIssueDetail(),
warningAddParam.getReformAdvice(),
null
);
}
private String assembleWarningDetail(SupervisionTempLineRunTestVO byId) {
String issueDetail = byId.getPowerSubstationName()
.concat("_")
.concat(byId.getMonitoringTerminalName())
.concat("_")
.concat(byId.getConnectedBus())
.concat("_")
.concat(byId.getLineName())
.concat("试运行评估问题")
;
return issueDetail;
}
}

View File

@@ -25,9 +25,13 @@ import com.njcn.supervision.enums.ProblemTypeEnum;
import com.njcn.supervision.enums.SupervisionKeyEnum;
import com.njcn.supervision.mapper.leaflet.WarningLeafletMapper;
import com.njcn.supervision.pojo.param.leaflet.WarningLeafletParam;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineRunTestPO;
import com.njcn.supervision.pojo.po.device.TempLineRunTestWarning;
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
import com.njcn.supervision.pojo.po.survey.SurveyTest;
import com.njcn.supervision.pojo.vo.leaflet.WarningLeafletVO;
import com.njcn.supervision.service.device.ISupervisionTempLineRunTestService;
import com.njcn.supervision.service.device.TempLineRunTestWarningService;
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
import com.njcn.supervision.service.survey.ISurveyTestService;
import com.njcn.supervision.service.survey.SupervisionGeneralSurveyPlanPOService;
@@ -82,6 +86,9 @@ public class WarningLeafletServiceImpl extends ServiceImpl<WarningLeafletMapper,
@Resource
private FileStorageUtil fileStorageUtil;
@Resource
private TempLineRunTestWarningService lineRunTestWarningService;
/**
* 不创建工作流,只是创建一个告警单,需要待用户反馈后才会进入流程
*/
@@ -223,8 +230,10 @@ public class WarningLeafletServiceImpl extends ServiceImpl<WarningLeafletMapper,
String problemId = warningLeaflet.getProblemId();
//查询谐波普测,获取该普测计划上传的文件
//查询到现场测试超标附件地址
SurveyTest surveyTest = surveyTestService.getById(problemId);
warningLeafletVO.setProblemPath(surveyTest.getTestReport());
TempLineRunTestWarning byId = lineRunTestWarningService.getById(problemId);
if(Objects.nonNull(byId)){
warningLeafletVO.setProblemPath(byId.getTestRunReport());
}
}
}
return warningLeafletVO;
@@ -289,9 +298,10 @@ public class WarningLeafletServiceImpl extends ServiceImpl<WarningLeafletMapper,
for (WarningLeafletVO record : records) {
if (record.getProblemType().equals(ProblemTypeEnum.SITE_TEST.getCode()) && StrUtil.isNotBlank(record.getProblemId())) {
//查询到现场测试超标附件地址
SurveyTest surveyTest = surveyTestService.getById(record.getProblemId());
record.setProblemPath(surveyTest.getTestReport());
record.setSupervisionReport(surveyTest.getSupervisionReport());
TempLineRunTestWarning byId = lineRunTestWarningService.getById(record.getProblemId());
if(Objects.nonNull(byId)){
record.setProblemPath(byId.getTestRunReport());
}
}
if (deptMap.containsKey(record.getDutyOrgId())) {
record.setDutyOrgName(deptMap.get(record.getDutyOrgId()));

View File

@@ -493,7 +493,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
.map(LineDetail::getRunFlag)
.filter(temp -> !Objects.equals(temp, 2))
.collect(Collectors.toList());
if (CollectionUtil.isEmpty(data)) {
if (CollectionUtil.isEmpty(collect1)) {
userReportPO.setUserStatus(userStatus);
}
} else {