代码调整

This commit is contained in:
2023-05-25 15:51:19 +08:00
parent f6e6e94826
commit 47bff79b42
3 changed files with 183 additions and 128 deletions

View File

@@ -415,16 +415,16 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
//监测点限值
DictData scaleResult = dicDataFeignClient.getDicDataById(voltage.getScale()).getData();
float scaTmp = Float.parseFloat(scaleResult.getValue());
Overlimit overlimit = COverlimitUtil.globalAssemble(scaTmp,lineDetail.getDealCapacity(),lineDetail.getDevCapacity(),lineDetail.getShortCapacity(),1,1);
Overlimit overlimit = COverlimitUtil.globalAssemble(scaTmp, lineDetail.getDealCapacity(), lineDetail.getDevCapacity(), lineDetail.getShortCapacity(), 1, 1);
if(Objects.isNull(lineParam.getVoltageDev())){
if (Objects.isNull(lineParam.getVoltageDev())) {
overlimit.setVoltageDev(overlimit.getVoltageDev());
}else {
} else {
overlimit.setVoltageDev(lineParam.getVoltageDev());
}
if(Objects.isNull(lineParam.getUvoltageDev())){
if (Objects.isNull(lineParam.getUvoltageDev())) {
overlimit.setUvoltageDev(overlimit.getUvoltageDev());
}else {
} else {
overlimit.setUvoltageDev(lineParam.getUvoltageDev());
}
//Overlimit overlimit = new Overlimit(line.getId(), scaTmp, lineDetail.getShortCapacity(), lineDetail.getStandardCapacity(), lineDetail.getDealCapacity(), lineDetail.getDevCapacity());
@@ -656,7 +656,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
voltageMapper.updateById(voltage);
//如果电压等级变化重新计算母线下面监测点的限值
if(!voltageTem.getScale().equals(voltage.getScale())) {
if (!voltageTem.getScale().equals(voltage.getScale())) {
List<LineDetail> lineList = voltageMapper.getLineDetailByBusBarId(voltage.getId());
DictData dictData = dicDataFeignClient.getDicDataById(voltage.getScale()).getData();
float voltageLevel = Float.parseFloat(dictData.getValue());
@@ -739,15 +739,15 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
float scaTmp = Float.parseFloat(scaleResult.getValue());
//监测点限值
Overlimit overlimit = COverlimitUtil.globalAssemble(scaTmp,lineDetail.getDealCapacity(),lineDetail.getDevCapacity(),lineDetail.getShortCapacity(),1,1);
if(Objects.isNull(updateLineBO.getVoltageDev())){
Overlimit overlimit = COverlimitUtil.globalAssemble(scaTmp, lineDetail.getDealCapacity(), lineDetail.getDevCapacity(), lineDetail.getShortCapacity(), 1, 1);
if (Objects.isNull(updateLineBO.getVoltageDev())) {
overlimit.setVoltageDev(overlimit.getVoltageDev());
}else {
} else {
overlimit.setVoltageDev(updateLineBO.getVoltageDev());
}
if(Objects.isNull(updateLineBO.getUvoltageDev())){
if (Objects.isNull(updateLineBO.getUvoltageDev())) {
overlimit.setUvoltageDev(overlimit.getUvoltageDev());
}else {
} else {
overlimit.setUvoltageDev(updateLineBO.getUvoltageDev());
}
overlimit.setId(line.getId());
@@ -1735,6 +1735,12 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
substation.setLng(oracleTerminalExcel.getLng());
substation.setLat(oracleTerminalExcel.getLat());
substationMapper.insert(substation);
} else {
//避免漏掉oracle项目中变电站经纬度的更改
Substation substation = substationMapper.selectById(temp.getId());
substation.setLng(oracleTerminalExcel.getLng());
substation.setLat(oracleTerminalExcel.getLat());
substationMapper.updateById(substation);
}
//添加变电站索引
pids.add(temp.getId());
@@ -1749,68 +1755,95 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
String deviceName = oracleTerminalExcel.getDeviceName();
temp = queryLine(lineLambdaQueryWrapper, deviceName, pids.get(LineBaseEnum.SUB_LEVEL.getCode()), LineBaseEnum.DEVICE_LEVEL.getCode(), DataStateEnum.ENABLE.getCode());
if (Objects.isNull(temp)) {
temp = assembleLine(deviceName, LineBaseEnum.DEVICE_LEVEL.getCode(), pids.get(LineBaseEnum.SUB_LEVEL.getCode()), pids);
this.baseMapper.insert(temp);
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() + "已存在"));
//判断是否因为改了终端名称导致没有查到数据
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());
LambdaQueryWrapper<Line> devLambda = new LambdaQueryWrapper<>();
devLambda.in(Line::getId, devIds)
.orderByAsc(Line::getCreateTime)
.eq(Line::getState, DataStateEnum.ENABLE.getCode());
List<Line> devList = lineMapper.selectList(devLambda);
if (CollectionUtil.isEmpty(deviceBaks) || CollectionUtil.isEmpty(devList)) {
temp = assembleLine(deviceName, LineBaseEnum.DEVICE_LEVEL.getCode(), pids.get(LineBaseEnum.SUB_LEVEL.getCode()), pids);
this.baseMapper.insert(temp);
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.getDicDataByName(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.getDicDataByName(devType).getData();
if (Objects.isNull(devTypeDicData)) {
//在终端类型字典内新增一条记录
devTypeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.DEV_TYPE.getName(), devType).getData();
}
device.setDevType(devTypeDicData.getId());
deviceMapper.insert(device);
//插入新旧终端ID中间表
DeviceBak deviceBak = new DeviceBak();
deviceBak.setId(temp.getId());
deviceBak.setDevId(oracleTerminalExcel.getDeviceId());
deviceBakService.saveOrUpdate(deviceBak);
} else {
if (CollectionUtil.isNotEmpty(devList)) {
//仅保留最早创建的记录
List<String> ids = new ArrayList<>();
if (devList.size() > 2) {
for (int i = 1; i < devList.size(); i++) {
ids.add(devList.get(i).getId());
}
//删除错误关系和错误数据避免丢失influx数据保留最早的终端记录
lineMapper.deleteBatchIds(ids);
deviceMapper.deleteBatchIds(ids);
LambdaQueryWrapper<DeviceBak> deviceBakLambdaQueryWrapper1 = new LambdaQueryWrapper<>();
deviceBakLambdaQueryWrapper1.in(DeviceBak::getId, ids);
deviceBakService.remove(deviceBakLambdaQueryWrapper1);
}
}
}
//处理终端厂家
DictData manufacturer = dicDataFeignClient.getDicDataByName(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.getDicDataByName(devType).getData();
if (Objects.isNull(devTypeDicData)) {
//在终端类型字典内新增一条记录
devTypeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.DEV_TYPE.getName(), devType).getData();
}
device.setDevType(devTypeDicData.getId());
deviceMapper.insert(device);
//插入新旧终端ID中间表
DeviceBak deviceBak = new DeviceBak();
deviceBak.setId(temp.getId());
deviceBak.setDevId(oracleTerminalExcel.getDeviceId());
deviceBakService.removeById(oracleTerminalExcel.getDeviceId());
deviceBakService.saveOrUpdate(deviceBak);
}
//添加终端索引
pids.add(temp.getId());
@@ -1865,23 +1898,34 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
if (Objects.nonNull(temp)) {
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "监测点名称重复,请联系管理员"));
} else {
temp = assembleLine(lineName, LineBaseEnum.LINE_LEVEL.getCode(), pids.get(LineBaseEnum.SUB_V_LEVEL.getCode()), pids);
this.baseMapper.insert(temp);
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;
//判断是否因为改了终端名称导致没有查到数据
LambdaQueryWrapper<LineBak> lineBakLambdaQueryWrapper = new LambdaQueryWrapper<>();
lineBakLambdaQueryWrapper.eq(LineBak::getLineId, oracleTerminalExcel.getId());
List<LineBak> lineBaks = lineBakService.list(lineBakLambdaQueryWrapper);
List<String> lineIds = lineBaks.stream().map(LineBak::getId).collect(Collectors.toList());
LambdaQueryWrapper<Line> devLambda = new LambdaQueryWrapper<>();
devLambda.in(Line::getId, lineIds)
.orderByAsc(Line::getCreateTime)
.eq(Line::getState, DataStateEnum.ENABLE.getCode());
List<Line> lineList = lineMapper.selectList(devLambda);
if (CollectionUtil.isEmpty(lineBaks) || CollectionUtil.isEmpty(lineList)) {
temp = assembleLine(lineName, LineBaseEnum.LINE_LEVEL.getCode(), pids.get(LineBaseEnum.SUB_V_LEVEL.getCode()), pids);
this.baseMapper.insert(temp);
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());
@@ -1891,47 +1935,63 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
// this.baseMapper.deleteById(temp.getId());
// continue;
// }
lineDetail.setNum(oracleTerminalExcel.getLineNum());
//干扰源类型
DictData loadTypeDicData = dicDataFeignClient.getDicDataByName(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.getDicDataByName(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.getDicDataByName(oracleTerminalExcel.getLineGrade()).getData();
if (Objects.isNull(lineGradeDicData)) {
lineDetail.setNum(oracleTerminalExcel.getLineNum());
//干扰源类型
DictData loadTypeDicData = dicDataFeignClient.getDicDataByName(oracleTerminalExcel.getLoadType()).getData();
if (Objects.isNull(loadTypeDicData)) {
//在电压等级内新增一条记录
lineGradeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.DEV_LEVEL.getName(), oracleTerminalExcel.getLineGrade()).getData();
loadTypeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.INTERFERENCE_SOURCE_TYPE.getName(), oracleTerminalExcel.getLoadType()).getData();
}
lineDetail.setLoadType(loadTypeDicData.getId());
//行业类型
DictData businessDicData = dicDataFeignClient.getDicDataByName(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.getDicDataByName(oracleTerminalExcel.getLineGrade()).getData();
if (Objects.isNull(lineGradeDicData)) {
//在电压等级内新增一条记录
lineGradeDicData = dicDataFeignClient.addDicData(DicDataTypeEnum.DEV_LEVEL.getName(), oracleTerminalExcel.getLineGrade()).getData();
}
lineDetail.setLineGrade(lineGradeDicData.getId());
}
lineDetail.setLineGrade(lineGradeDicData.getId());
}
lineDetailMapper.insert(lineDetail);
LineBak lineBak = new LineBak();
lineBak.setId(temp.getId());
lineBak.setLineId(oracleTerminalExcel.getId());
lineBakService.removeById(oracleTerminalExcel.getId());
lineBakService.save(lineBak);
lineDetailMapper.insert(lineDetail);
LineBak lineBak = new LineBak();
lineBak.setId(temp.getId());
lineBak.setLineId(oracleTerminalExcel.getId());
lineBakService.save(lineBak);
// OverLimitExcel overLimitExcel = overLimitList.get(0);
// Overlimit overlimit = new Overlimit();
// BeanUtils.copyProperties(overLimitExcel, overlimit);
// overlimit.setId(temp.getId());
// overlimitMapper.insert(overlimit);
} else {
if (CollectionUtil.isNotEmpty(lineList)) {
//仅保留最早创建的记录
List<String> ids = new ArrayList<>();
if (lineList.size() > 2) {
for (int i = 1; i < lineList.size(); i++) {
ids.add(lineList.get(i).getId());
}
//删除错误关系和错误数据避免丢失influx数据保留最早的终端记录
lineMapper.deleteBatchIds(ids);
lineDetailMapper.deleteBatchIds(ids);
LambdaQueryWrapper<LineBak> lineBakLambdaQueryWrapper1 = new LambdaQueryWrapper<>();
lineBakLambdaQueryWrapper1.in(LineBak::getId, ids);
lineBakService.remove(lineBakLambdaQueryWrapper1);
}
}
}
}
}
}