1.解决技术监督计划部门过滤bug
2.终端模板导入 3.台账关联干扰源管理,信息修改
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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<>();
|
||||
|
||||
Reference in New Issue
Block a user