预处理兼容pq/pms处理

This commit is contained in:
2023-09-21 09:15:48 +08:00
parent 79865cc395
commit d868558c6e
22 changed files with 771 additions and 508 deletions

View File

@@ -116,6 +116,9 @@ public interface CommTerminalGeneralClient {
@GetMapping("/getRunMonitorIds")
HttpResult<List<String>> getRunMonitorIds();
@PostMapping("/getMonitorDetailList")
HttpResult<List<LineDevGetDTO>> getMonitorDetailList(@RequestBody List<String> list);
/**
* 用于返回pq 还是pms系统
* @author cdf

View File

@@ -92,6 +92,12 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<LineDevGetDTO>> getMonitorDetailList(List<String> list) {
log.error("{}异常,降级处理,异常为:{}", "获取监测点详细信息集合", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> isPqOrPms() {
log.error("{}异常,降级处理,异常为:{}", "返回pq还是pms系统", throwable.toString());

View File

@@ -63,6 +63,9 @@ public class LineDevGetDTO {
*/
private Integer comFlag;
/**
* 装置数据最新更新时间
*/
private LocalDateTime updateTime;

View File

@@ -21,6 +21,10 @@ import com.njcn.device.pms.pojo.po.TerminalLog;
import com.njcn.device.pms.pojo.vo.DoubleUserVO;
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
import com.njcn.device.pms.service.majornetwork.ITerminalLogService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.web.utils.RequestUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -36,6 +40,7 @@ import com.njcn.web.controller.BaseController;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -58,6 +63,7 @@ public class PmsDistributionMonitorController extends BaseController {
private final ITerminalLogService iTerminalLogService;
/**
* 新增配网监测点表
* @author cdf
@@ -294,5 +300,20 @@ public class PmsDistributionMonitorController extends BaseController {
}
/**
* 批量给配网监测点录入单位id
* @author cdf
* @date 2023/9/20
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/disMonitorWriteOrgId")
@ApiOperation("批量修改配网里的单位")
public HttpResult<Boolean> disMonitorWriteOrgId() {
String methodDescribe = getMethodDescribe("disMonitorWriteOrgId");
iDistributionMonitorService.disMonitorWriteOrgId();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -115,4 +115,6 @@ public interface IDistributionMonitorService extends IMppService<DistributionMon
*/
Boolean batchOpDistributionArea();
Boolean disMonitorWriteOrgId();
}

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pms.service.majornetwork.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.TimeInterval;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -110,6 +111,7 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
distributionMonitor.setMonitorId(monitor.getId());
distributionMonitor.setCreatedDate(LocalDateTime.now());
distributionMonitor.setIfPowerUser(0);
distributionMonitor.setOrgId(monitor.getOrgId());
distributionMonitor.setMonitorState(monitor.getMonitorState());
distributionMonitor.setVoltageLevel(monitor.getVoltageLevel());
distributionMonitor.setStatus(DataStateEnum.ENABLE.getCode());
@@ -129,6 +131,7 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
}
PowerDistributionarea powerDistributionareaTem = powerDistributionareaMapper.selectById(powerDistributionarea.getId());
distributionMonitor.setMonitorId(powerDistributionarea.getId());
distributionMonitor.setOrgId(powerDistributionarea.getOrgId());
distributionMonitor.setCreatedDate(LocalDateTime.now());
distributionMonitor.setIfPowerUser(0);
distributionMonitor.setMonitorState(distributionMonitorParam.getMonitorState());
@@ -158,7 +161,7 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
}
distributionMonitor.setIfPowerUser(1);
distributionMonitor.setVoltageLevel(powerGenerationUser.getVoltageLevel());
distributionMonitor.setOrgId(powerGenerationUser.getOrgId());
} else {
//用电
PowerClient powerClient = powerClientMapper.selectById(distributionMonitorParam.getMonitorId());
@@ -167,6 +170,7 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
}
distributionMonitor.setIfPowerUser(0);
distributionMonitor.setVoltageLevel(powerClient.getVoltageLevel());
distributionMonitor.setOrgId(powerClient.getOrgId());
}
distributionMonitor.setMonitorId(distributionMonitorParam.getMonitorId());
@@ -486,6 +490,58 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl<DistributionM
return true;
}
@Override
public Boolean disMonitorWriteOrgId() {
List<DistributionMonitor> distributionMonitorList = this.list();
if(CollectionUtil.isNotEmpty(distributionMonitorList)){
Map<String,List<DistributionMonitor>> map = distributionMonitorList.stream().collect(Collectors.groupingBy(DistributionMonitor::getMonitorSort));
List<DistributionMonitor> po = new ArrayList<>();
map.forEach((key,val)->{
if(key.equals("78a96acb276a5fe9d6eff737fdf1973f")){
List<DistributionMonitor> one = map.get("78a96acb276a5fe9d6eff737fdf1973f");
List<String> oneIds = one.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList());
List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>().in(Monitor::getId,oneIds));
for(Monitor monitor:monitorList){
DistributionMonitor distributionMonitor = new DistributionMonitor();
distributionMonitor.setMonitorId(monitor.getId());
distributionMonitor.setOrgId(monitor.getOrgId());
LambdaUpdateWrapper<DistributionMonitor> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(DistributionMonitor::getOrgId,distributionMonitor.getOrgId()).eq(DistributionMonitor::getMonitorId,distributionMonitor.getMonitorId());
this.update(updateWrapper);
}
}else if(key.equals("a5696acb276a5fe9d6eff74fdf1973f")){
List<DistributionMonitor> two = map.get("a5696acb276a5fe9d6eff74fdf1973f");
List<String> twoIds = two.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList());
List<PowerDistributionarea> monitorList = powerDistributionareaMapper.selectList(new LambdaQueryWrapper<PowerDistributionarea>().in(PowerDistributionarea::getId,twoIds));
for(PowerDistributionarea monitor:monitorList){
DistributionMonitor distributionMonitor = new DistributionMonitor();
distributionMonitor.setMonitorId(monitor.getId());
distributionMonitor.setOrgId(monitor.getOrgId());
LambdaUpdateWrapper<DistributionMonitor> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(DistributionMonitor::getOrgId,distributionMonitor.getOrgId()).eq(DistributionMonitor::getMonitorId,distributionMonitor.getMonitorId());
this.update(updateWrapper);
}
}else {
List<DistributionMonitor> two = map.get("a5696acb276a5fe9d6eff74fdf1973f");
List<String> twoIds = two.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList());
List<PowerDistributionarea> monitorList = powerDistributionareaMapper.selectList(new LambdaQueryWrapper<PowerDistributionarea>().in(PowerDistributionarea::getId,twoIds));
}
});
}
return true;
}
private void overLimitAdd(String voltageLevel, String id) {
DictData voltageDic = dicDataFeignClient.getDicDataById(voltageLevel).getData();
float voltageLevelValue = Float.parseFloat(voltageDic.getValue());

View File

@@ -7,10 +7,13 @@ 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.common.utils.LogUtil;
import com.njcn.device.biz.pojo.dto.*;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pq.mapper.LineDetailMapper;
import com.njcn.device.pq.mapper.LineMapper;
import com.njcn.device.pq.pojo.po.LineDetail;
import com.njcn.device.pq.service.CommTerminalService;
import com.njcn.device.pq.service.LineService;
import com.njcn.web.controller.BaseController;
@@ -45,14 +48,16 @@ public class CommTerminalController extends BaseController {
private final LineMapper lineMapper;
/**
* 通过部门获取所有子集部门所拥有的监测点
* 通过部门获取所有子集部门所拥有的监测点基本信息
*
* @author cdf
* @date 2023/4/24
*/
@PostMapping("deptGetLineIds")
@ApiOperation("通过部门获取所有子集部门所拥有的监测点")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true)
public HttpResult<List<DeptGetChildrenDTO>> deptGetLineList(@RequestBody @Validated DeptGetLineParam deptGetLineParam) {
TimeInterval timer = new TimeInterval();
@@ -68,6 +73,8 @@ public class CommTerminalController extends BaseController {
* @date 2023/5/10
*/
@PostMapping("getDeptChildrenByParent")
@ApiOperation("根据单位获取所有子单位信息")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true)
public HttpResult<List<DeptGetBase>> getDeptChildrenByParent(@RequestBody @Validated DeptGetLineParam deptGetLineParam) {
TimeInterval timer = new TimeInterval();
@@ -78,12 +85,13 @@ public class CommTerminalController extends BaseController {
}
/**
* 根据单位获取监测点信息
* 根据单位获取监测点详细信息
* @author cdf
* @date 2023/5/10
*/
@PostMapping("deptGetLine")
@ApiOperation("根据单位获取监测点信息")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true)
public HttpResult<List<DeptGetChildrenMoreDTO>> deptGetLine(@RequestBody @Validated DeptGetLineParam deptGetLineParam) {
TimeInterval timer = new TimeInterval();
@@ -103,6 +111,7 @@ public class CommTerminalController extends BaseController {
*/
@PostMapping("deptGetSubStation")
@ApiOperation("根据单位获取所有变电站")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true)
public HttpResult<List<DeptGetSubStationDTO>> deptSubStation(@RequestBody @Validated DeptGetLineParam deptGetLineParam) {
TimeInterval timer = new TimeInterval();
@@ -119,6 +128,7 @@ public class CommTerminalController extends BaseController {
*/
@PostMapping("deptGetBusBar")
@ApiOperation("根据单位获取所有母线")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true)
public HttpResult<List<DeptGetBusBarDTO>> deptBusBar(@RequestBody @Validated DeptGetLineParam deptGetLineParam) {
TimeInterval timer = new TimeInterval();
@@ -137,6 +147,7 @@ public class CommTerminalController extends BaseController {
*/
@PostMapping("deptGetDevice")
@ApiOperation("根据单位获取所有装置")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true)
public HttpResult<List<DeptGetDeviceDTO>> deptGetDevice(@RequestBody @Validated DeptGetLineParam deptGetLineParam) {
TimeInterval timer = new TimeInterval();
@@ -153,6 +164,7 @@ public class CommTerminalController extends BaseController {
*/
@PostMapping("deptGetDeviceAndMonitor")
@ApiOperation("根据单位获取装置以及监测点")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true)
public HttpResult<List<DeptGetDeviceDTO>> deptGetDeviceAndMonitor(@RequestBody @Validated DeptGetLineParam deptGetLineParam) {
TimeInterval timer = new TimeInterval();
@@ -169,6 +181,7 @@ public class CommTerminalController extends BaseController {
*/
@PostMapping("substationGetLine")
@ApiOperation("根据电站获取所有监测点")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "substationId", value = "请求体", required = true)
public HttpResult<LineDevGetBandDTO> substationGetLine(@RequestParam("substationId")String substationId) {
TimeInterval timer = new TimeInterval();
@@ -186,6 +199,7 @@ public class CommTerminalController extends BaseController {
*/
@PostMapping("busBarGetLine")
@ApiOperation("根据母线id获取监测点信息")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "busBarId", value = "请求体", required = true)
public HttpResult<LineDevGetBandDTO> busBarGetLine(@RequestParam("busBarId")String busBarId) {
TimeInterval timer = new TimeInterval();
@@ -229,4 +243,21 @@ public class CommTerminalController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
/**
* 根据监测点集合获取监测点详情
* @author cdf
* @date 2023/9/21
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getMonitorDetailList")
@ApiOperation("根据监测点集合获取监测点详情")
@ApiImplicitParam(name = "list", value = "监测点集合")
public HttpResult<List<LineDevGetDTO>> getMonitorDetailList(@RequestBody List<String> list) {
String methodDescribe = getMethodDescribe("getMonitorDetailList");
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineMapper.getMonitorListDetail(list), methodDescribe);
}
}

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pq.pojo.advanced.UpDevVO;
@@ -436,6 +437,13 @@ public interface LineMapper extends BaseMapper<Line> {
List<LineDevGetDTO> getLineBySubStation(@Param("subId") String subId);
/**
* 根据监测点集合获取监测详细信息
* @author cdf
* @date 2023/9/20
*/
List<LineDevGetDTO> getMonitorListDetail(@Param("monitorIds") List<String> monitorIds);
/**
* 根据条件进行监测筛选出监测点id
*

View File

@@ -1105,6 +1105,20 @@
</select>
<select id="getMonitorListDetail" resultType="LineDevGetDTO">
select line.id pointId,dev.id devId,0 type,1 lineType,lineDetail.Time_Interval interval
from pq_line line
inner join pq_line_detail lineDetail on line.id = lineDetail.id
inner join pq_line subv on line.pid = subv.id
inner join pq_line dev on subv.pid = dev.id
where line.id in
<foreach collection="monitorIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<select id="getLineByIDs" resultType="java.lang.String">
SELECT DISTINCT
line.id

View File

@@ -36,6 +36,11 @@ public interface CommTerminalService {
*/
List<DeptGetChildrenMoreDTO> deptGetLine(DeptGetLineParam deptGetLineParam);
List<DeptGetChildrenMoreDTO> deptGetLineByIdList(List<String> monitorIds);
/**
* 根据单位获取所有变电站
* @author cdf

View File

@@ -18,9 +18,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -35,6 +33,7 @@ import java.util.stream.Stream;
@RequiredArgsConstructor
public class CommTerminalServiceImpl implements CommTerminalService {
//redis前缀
private final String commTerminal = "commTerminal#";
private final DeptLineService deptLineService;
@@ -94,13 +93,27 @@ public class CommTerminalServiceImpl implements CommTerminalService {
lineList.addAll(map.get(i));
}
});
deptGetChildrenMoreDTO.setLineBaseList(lineList);
//去重
ArrayList<LineDevGetDTO> collect = lineList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
Comparator.comparing(LineDevGetDTO::getPointId)
)), ArrayList::new));
deptGetChildrenMoreDTO.setLineBaseList(collect);
}
result.add(deptGetChildrenMoreDTO);
});
return result;
}
@Override
public List<DeptGetChildrenMoreDTO> deptGetLineByIdList(List<String> monitorIds) {
List<DeptGetChildrenMoreDTO> result = new ArrayList<>();
lineMapper.getMonitorListDetail(monitorIds);
return null;
}
@Override
public List<DeptGetSubStationDTO> deptSubStation(DeptGetLineParam deptGetLineParam) {