1.解决技术监督计划部门过滤bug

2.终端模板导入
3.台账关联干扰源管理,信息修改
This commit is contained in:
wr
2024-08-16 12:30:30 +08:00
parent 8bc94ea9a8
commit 68c0b72710
19 changed files with 490 additions and 26 deletions

View File

@@ -0,0 +1,34 @@
package com.njcn.device.pq.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author wr
* @description
* @date 2024/8/15 14:13
*/
@Data
public class DevAndLine {
@ApiModelProperty("终端id")
private String devId;
@ApiModelProperty("终端名称")
private String devName;
@ApiModelProperty("监测点集合")
private List<Line> lineList;
@Data
public static class Line {
@ApiModelProperty("监测点id")
private String lineId;
@ApiModelProperty("监测点名称")
private String lineName;
}
}

View File

@@ -418,12 +418,8 @@ public class LineController extends BaseController {
@ApiImplicitParam(name = "deviceInfoParam", value = "监测点查询条件", required = true)
})
public HttpResult<List<DeptLineCountVO>> getDeptLineCount(@RequestBody @Validated DeviceInfoParam deviceInfoParam) {
String methodDescribe = getMethodDescribe("getDeptLineCount");
List<DeptLineCountVO> deptLineCountVOS = new ArrayList<> ();
deptLineCountVOS = lineService.getDeptLineCount(deviceInfoParam);
List<DeptLineCountVO> deptLineCountVOS = lineService.getDeptLineCount(deviceInfoParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deptLineCountVOS, methodDescribe);
}
@@ -542,4 +538,12 @@ public class LineController extends BaseController {
List<LineDetail> list = lineService.getByName(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("获取部门下终端信息和终端下监测点信息")
@GetMapping("/getByDeptDevLine")
HttpResult<List<DevAndLine>> getByDeptDevLine(String id){
String methodDescribe = getMethodDescribe("getByDeptDevLine");
List<DevAndLine> list = lineService.getByDeptDevLine(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -224,4 +224,11 @@ public interface LineService extends IService<Line> {
List<ReportLineInfoVo> getReportLineInfo(List<String> ids);
List<LineDetail> getByName(LineBaseQueryParam param);
/**
* 获取部门下终端信息和终端下监测点信息
* @param id
* @return
*/
List<DevAndLine> getByDeptDevLine(String id);
}

View File

@@ -696,6 +696,35 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
return this.baseMapper.selectByName(param);
}
@Override
public List<DevAndLine> getByDeptDevLine(String id) {
List<DevAndLine> info=new ArrayList<>();
List<String> ids = deptFeignClient.getDepSonIdtByDeptId(id).getData();
List<DeptLine> deptLines = deptLineService.selectDeptBindLines(ids);
List<String> lineIDs = deptLines.stream().map(DeptLine::getLineId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(lineIDs)){
List<LineDetailVO.Detail> deptDeviceDetailData = this.baseMapper.getDeptDeviceDetailData(lineIDs, null, 3);
if(CollUtil.isNotEmpty(deptDeviceDetailData)){
Map<String, List<LineDetailVO.Detail>> collect = deptDeviceDetailData.stream().collect(Collectors.groupingBy(LineDetailVO.Detail::getDevId));
collect.forEach((k,v)->{
DevAndLine devAndLine = new DevAndLine();
List<DevAndLine.Line> lineList=new ArrayList<>();
devAndLine.setDevId(k);
devAndLine.setDevName(v.get(0).getDevName());
v.stream().distinct().forEach(v1->{
DevAndLine.Line line = new DevAndLine.Line();
line.setLineId(v1.getLineId());
line.setLineName(v1.getLineName());
lineList.add(line);
});
devAndLine.setLineList(lineList);
info.add(devAndLine);
});
}
}
return info;
}
@Override
public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) {
return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList());

View File

@@ -2125,6 +2125,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
LambdaQueryWrapper<DeviceBak> deviceBakLambdaQueryWrapper = new LambdaQueryWrapper<>();
deviceBakLambdaQueryWrapper.eq(DeviceBak::getDevId, oracleTerminalExcel.getDeviceId());
List<DeviceBak> deviceBaks = deviceBakService.list(deviceBakLambdaQueryWrapper);
List<String> devIds = deviceBaks.stream().map(DeviceBak::getId).collect(Collectors.toList());
List<Line> devList = new ArrayList<>();
if(!CollectionUtil.isEmpty(devIds)){
@@ -2215,6 +2216,79 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
}
}
}
}else{
//先查询终端id是否存在存在则修改不存在这添加
//判断是否因为改了终端名称导致没有查到数据
// LambdaQueryWrapper<DeviceBak> deviceBakLambdaQueryWrapper = new LambdaQueryWrapper<>();
// deviceBakLambdaQueryWrapper.eq(DeviceBak::getDevId, temp.getId());
// DeviceBak byId = deviceBakService.getById(deviceBakLambdaQueryWrapper);
// if(Objects.isNull(byId)){
//插入新旧终端ID中间表
DeviceBak deviceBak = new DeviceBak();
deviceBak.setId(temp.getId());
deviceBak.setDevId(oracleTerminalExcel.getDeviceId());
deviceBakService.saveOrUpdate(deviceBak);
// }else{
// if(!byId.getDevId().equals(oracleTerminalExcel.getDeviceId())){
// oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "终端关系数据存入Oracle和excl不一样" + oracleTerminalExcel.getLineNum() + "需要排查"));
// continue;
// }
// }
//更新终端信息
List<Device> existIp = deviceMapper.getDeviceBySubId(pids.get(LineBaseEnum.SUB_LEVEL.getCode()), oracleTerminalExcel.getIp(), oracleTerminalExcel.getPort(), null);
if (CollectionUtil.isNotEmpty(existIp)) {
Device device = existIp.get(0);
if (!device.getId().equalsIgnoreCase(temp.getId())) {
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "IP地址" + oracleTerminalExcel.getIp() + "已存在"));
//删除刚刚新增装置信息
this.baseMapper.deleteById(temp.getId());
continue;
}
}
//处理终端厂家
DictData manufacturer = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.DEV_MANUFACTURER.getName(),oracleTerminalExcel.getManufacturer()).getData();
if (Objects.isNull(manufacturer)) {
//在终端厂家字典内新增一条记录
manufacturer = dicDataFeignClient.addDicData(DicDataTypeEnum.DEV_MANUFACTURER.getName(), oracleTerminalExcel.getManufacturer()).getData();
}
Device device = new Device();
BeanUtils.copyProperties(oracleTerminalExcel, device);
device.setId(temp.getId());
device.setManufacturer(manufacturer.getId());
device.setIp(oracleTerminalExcel.getIp());
//处理前置ID
Node node = nodeService.getNodeByNodeName(oracleTerminalExcel.getNodeName());
if (Objects.isNull(node)) {
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "前置名:" + oracleTerminalExcel.getNodeName() + "不存在"));
//删除刚刚新增装置信息
this.baseMapper.deleteById(temp.getId());
continue;
}
device.setNodeId(node.getId());
String oracleDevType = oracleTerminalExcel.getDevType().toUpperCase();
String frontType = getComType(oracleDevType);
if (StringUtils.isBlank(frontType)) {
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "前置类型不存在"));
//删除刚刚新增装置信息
this.baseMapper.deleteById(temp.getId());
continue;
}
//处理前置类型
DictData frontTypeDicData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.FRONT_TYPE.getName(), frontType).getData();
if (Objects.isNull(frontTypeDicData)) {
//在通讯类型字典内新增一条记录
frontTypeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.FRONT_TYPE.getName(), frontType).getData();
}
device.setFrontType(frontTypeDicData.getId());
String devType = oracleDevType.replace("_" + frontType, "");
//处理终端类型
DictData devTypeDicData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.DEV_TYPE.getName(),devType).getData();
if (Objects.isNull(devTypeDicData)) {
//在终端类型字典内新增一条记录
devTypeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.DEV_TYPE.getName(), devType).getData();
}
device.setDevType(devTypeDicData.getId());
deviceMapper.updateById(device);
}
//添加终端索引
pids.add(temp.getId());
@@ -2256,6 +2330,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
}
//添加母线索引
pids.add(temp.getId());
/*
* 处理监测点
* 1、判断是否存在不存在则插入
@@ -2268,6 +2344,65 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
temp = queryLine(lineLambdaQueryWrapper, lineName, pids.get(LineBaseEnum.SUB_V_LEVEL.getCode()), LineBaseEnum.LINE_LEVEL.getCode(), DataStateEnum.ENABLE.getCode());
if (Objects.nonNull(temp)) {
// oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "监测点名称重复,请联系管理员"));
LineBak lineBak = new LineBak();
lineBak.setId(temp.getId());
lineBak.setLineId(oracleTerminalExcel.getId());
lineBakService.saveOrUpdate(lineBak);
//修改监测点信息
LineDetail lineDetail = new LineDetail();
BeanUtils.copyProperties(oracleTerminalExcel, lineDetail);
lineDetail.setId(temp.getId());
//判断监测点号是否已被占用
List<LineDetail> lineDetails = lineDetailMapper.getLineDetail(pids.get(LineBaseEnum.DEVICE_LEVEL.getCode()), Stream.of(oracleTerminalExcel.getLineNum()).collect(Collectors.toList()));
if (CollectionUtil.isNotEmpty(lineDetails)) {
LineDetail lineDetail1 = lineDetails.get(0);
if (lineDetail1.getId().equalsIgnoreCase(temp.getId())) {
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "监测点线路号:" + oracleTerminalExcel.getLineNum() + "已存在"));
//删除刚刚新增装置信息
this.baseMapper.deleteById(temp.getId());
continue;
}
}
//获取该监测点的限值数据
// List<OverLimitExcel> overLimitList = overLimitExcels.stream()
// .filter(overLimitExcel -> overLimitExcel.getId().equals(oracleTerminalExcel.getId()))
// .collect(Collectors.toList());
// if (CollectionUtil.isEmpty(overLimitList)) {
// oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "没有找到该监测点的限值数据"));
// //删除刚刚新增装置信息
// this.baseMapper.deleteById(temp.getId());
// continue;
// }
lineDetail.setNum(oracleTerminalExcel.getLineNum());
//干扰源类型
DictData loadTypeDicData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.INTERFERENCE_SOURCE_TYPE.getName(),oracleTerminalExcel.getLoadType()).getData();
if (Objects.isNull(loadTypeDicData)) {
//在电压等级内新增一条记录
loadTypeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.INTERFERENCE_SOURCE_TYPE.getName(), oracleTerminalExcel.getLoadType()).getData();
}
lineDetail.setLoadType(loadTypeDicData.getId());
//行业类型
DictData businessDicData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.BUSINESS_TYPE.getName(),oracleTerminalExcel.getBusinessType()).getData();
if (Objects.isNull(businessDicData)) {
//在电压等级内新增一条记录
businessDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.BUSINESS_TYPE.getName(), oracleTerminalExcel.getBusinessType()).getData();
}
lineDetail.setBusinessType(businessDicData.getId());
if (StringUtils.isBlank(oracleTerminalExcel.getMonitorId())) {
lineDetail.setMonitorFlag(0);
} else {
lineDetail.setMonitorFlag(1);
}
//终端等级,为空不处理,可以为空
if (StringUtils.isNotBlank(oracleTerminalExcel.getLineGrade())) {
DictData lineGradeDicData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.DEV_LEVEL.getName(),oracleTerminalExcel.getLineGrade()).getData();
if (Objects.isNull(lineGradeDicData)) {
//在电压等级内新增一条记录
lineGradeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.DEV_LEVEL.getName(), oracleTerminalExcel.getLineGrade()).getData();
}
lineDetail.setLineGrade(lineGradeDicData.getId());
}
lineDetailMapper.updateById(lineDetail);
} else {
//判断是否因为改了终端名称导致没有查到数据
LambdaQueryWrapper<LineBak> lineBakLambdaQueryWrapper = new LambdaQueryWrapper<>();