From 4eac5c30283756bfe6d88b35bbd72c84c0747f45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E6=9C=A8c?= <857448963@qq.com> Date: Fri, 1 Jul 2022 15:13:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E7=AB=AF=E7=9B=B8=E5=85=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../influxdb/param/InfluxDBPublicParam.java | 4 +- .../njcn/device/pojo/param/DeviceParam.java | 4 +- .../controller/TerminalBaseController.java | 2 +- .../service/impl/TerminalBaseServiceImpl.java | 144 +++++++++--------- 4 files changed, 79 insertions(+), 75 deletions(-) diff --git a/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBPublicParam.java b/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBPublicParam.java index e0f1759c7..916c0f798 100644 --- a/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBPublicParam.java +++ b/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/param/InfluxDBPublicParam.java @@ -17,7 +17,7 @@ public interface InfluxDBPublicParam { /** * 暂态事件汇总表 */ - String PQS_EVENT_DETAIL = "pqs_eventdetail"; + String PQS_EVENT_DETAIL = " pqs_eventdetail"; /** * 电压波动闪变表 @@ -162,7 +162,7 @@ public interface InfluxDBPublicParam { /** * 时区 */ - String TIME_ZONE = "tz('Asia/Shanghai')"; + String TIME_ZONE = " tz('Asia/Shanghai')"; /** * 日起始时间 diff --git a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/DeviceParam.java b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/DeviceParam.java index c7d27d807..66c128d30 100644 --- a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/DeviceParam.java +++ b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/DeviceParam.java @@ -42,9 +42,9 @@ public class DeviceParam { /** * 通讯类型(MMS、CLD)字典表 */ - @ApiModelProperty(name = "comType",value = "通讯类型",required = true) + @ApiModelProperty(name = "frontType",value = "通讯类型",required = true) @NotBlank(message = "通讯类型不能为空") - private String comType; + private String frontType; @ApiModelProperty(name = "ip",value = "装置ip",required = true) @NotBlank(message = "设备ip不能为空") diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/TerminalBaseController.java b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/TerminalBaseController.java index d5a1c747d..faae249ea 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/TerminalBaseController.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/TerminalBaseController.java @@ -64,7 +64,7 @@ public class TerminalBaseController extends BaseController { @ApiOperation("终端新增操作") @OperateInfo(operateType = OperateType.ADD, info = LogEnum.BUSINESS_MEDIUM) @PostMapping("addTerminal") - public HttpResult addTerminal(@Valid @RequestBody AddTerminalParam addTerminalParam) { + public HttpResult addTerminal(@Valid @RequestBody AddTerminalParam addTerminalParam) { String methodDescribe = getMethodDescribe("addTerminal"); //装置母线监测点相关检验 if (CollectionUtil.isNotEmpty(addTerminalParam.getDeviceParam())) { diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/TerminalBaseServiceImpl.java b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/TerminalBaseServiceImpl.java index 821d881de..930fdba07 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/TerminalBaseServiceImpl.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/TerminalBaseServiceImpl.java @@ -135,28 +135,23 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple if (Objects.nonNull(addTerminalParam.getProjectParam())) { if (StrUtil.isBlank(projectIndex)) { checkName(addTerminalParam, LineBaseEnum.PROJECT_LEVEL.getCode(), null); - Line line = assembleLine(addTerminalParam.getProjectParam().getName(),LineBaseEnum.PROJECT_LEVEL.getCode(),"0","0",addTerminalParam.getProjectParam().getSort()); + Line line = assembleLine(addTerminalParam.getProjectParam().getName(), LineBaseEnum.PROJECT_LEVEL.getCode(), "0", "0", addTerminalParam.getProjectParam().getSort()); this.baseMapper.insert(line); projectIndex = line.getId(); - } else { - //throw new BusinessException(DeviceResponseEnum.REQUEST_DATA_ERROR); } } //省份 if (Objects.nonNull(addTerminalParam.getProvinceParam())) { if (StrUtil.isBlank(provinceIndex) && StrUtil.isNotBlank(projectIndex)) { - HttpResult provinceDic = areaFeignClient.selectIdArea(addTerminalParam.getProvinceParam().getName()); - Area result = provinceDic.getData(); + Area result = areaFeignClient.selectIdArea(addTerminalParam.getProvinceParam().getName()).getData(); if (Objects.isNull(result)) { throw new BusinessException(DeviceResponseEnum.PROVINCE_GET_ERROR); } LogUtil.njcnDebug(log, "获取区域信息:{}", result.toString()); checkName(addTerminalParam, LineBaseEnum.PROVINCE_LEVEL.getCode(), projectIndex); - Line province = assembleLine(result.getId(),LineBaseEnum.PROVINCE_LEVEL.getCode(),projectIndex,projectIndex,addTerminalParam.getProvinceParam().getSort()); + Line province = assembleLine(result.getId(), LineBaseEnum.PROVINCE_LEVEL.getCode(), projectIndex, projectIndex, addTerminalParam.getProvinceParam().getSort()); this.baseMapper.insert(province); provinceIndex = province.getId(); - } else { - //throw new BusinessException(DeviceResponseEnum.REQUEST_DATA_ERROR); } } @@ -164,7 +159,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple if (Objects.nonNull(addTerminalParam.getGdInformationParam())) { if (StrUtil.isBlank(gdIndex) && StrUtil.isNotBlank(provinceIndex)) { checkName(addTerminalParam, LineBaseEnum.GD_LEVEL.getCode(), provinceIndex); - Line gdInformation = assembleLine(addTerminalParam.getGdInformationParam().getName(),LineBaseEnum.GD_LEVEL.getCode(),provinceIndex,projectIndex + StrUtil.COMMA + provinceIndex,addTerminalParam.getGdInformationParam().getSort()); + Line gdInformation = assembleLine(addTerminalParam.getGdInformationParam().getName(), LineBaseEnum.GD_LEVEL.getCode(), provinceIndex, projectIndex + StrUtil.COMMA + provinceIndex, addTerminalParam.getGdInformationParam().getSort()); this.baseMapper.insert(gdInformation); gdIndex = gdInformation.getId(); } @@ -174,7 +169,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple if (Objects.nonNull(addTerminalParam.getSubStationParam())) { if (StrUtil.isBlank(subIndex) && StrUtil.isNotBlank(gdIndex)) { checkName(addTerminalParam, LineBaseEnum.SUB_LEVEL.getCode(), gdIndex); - Line subStation = assembleLine(addTerminalParam.getSubStationParam().getName(),LineBaseEnum.SUB_LEVEL.getCode(),gdIndex,projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex,addTerminalParam.getSubStationParam().getSort()); + Line subStation = assembleLine(addTerminalParam.getSubStationParam().getName(), LineBaseEnum.SUB_LEVEL.getCode(), gdIndex, projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex, addTerminalParam.getSubStationParam().getSort()); this.baseMapper.insert(subStation); subIndex = subStation.getId(); @@ -190,39 +185,21 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple //装置 if (Objects.nonNull(addTerminalParam.getDeviceParam())) { + LambdaQueryWrapper lineLambdaQueryWrapper = new LambdaQueryWrapper<>(); if (CollectionUtil.isNotEmpty(addTerminalParam.getDeviceParam()) && StrUtil.isNotBlank(subIndex)) { - List devNameList = addTerminalParam.getDeviceParam().stream() - .filter((dev -> dev.getDevIndex() == null)) - .map(DeviceParam::getName) - .collect(Collectors.toList()); - LambdaQueryWrapper lineLambdaQueryWrapper = new LambdaQueryWrapper<>(); - if (CollectionUtil.isNotEmpty(devNameList)) { - lineLambdaQueryWrapper.eq(Line::getPid, subIndex).in(Line::getName, devNameList); - List deviceListRes = this.list(lineLambdaQueryWrapper); - //校验当前变电站下是否有同名设备 - if (CollectionUtil.isNotEmpty(deviceListRes)) { - List stringList = deviceListRes.stream().map(Line::getName).collect(Collectors.toList()); - throw new BusinessException(DeviceResponseEnum.DEVICE_SAME_NAME, String.join(";", stringList)); - } - } - List devIpList = addTerminalParam.getDeviceParam().stream().filter((dev -> dev.getDevIndex() == null)).map(DeviceParam::getIp).collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(devIpList)) { - List deviceListIpRes = lineMapper.getDeviceBySubId(subIndex, devIpList); - //校验当前变电站下是否有相同ip - if (CollectionUtil.isNotEmpty(deviceListIpRes)) { - List stringList = deviceListIpRes.stream().map(Device::getIp).collect(Collectors.toList()); - throw new BusinessException(DeviceResponseEnum.DEVICE_SAME_IP, String.join(";", stringList)); - } - } + //校验变电站下的装置名称ip是否重复 + checkDev(addTerminalParam, subIndex,lineLambdaQueryWrapper); for (DeviceParam deviceParam : addTerminalParam.getDeviceParam()) { //用于记录装置id String devIdIndex; - //监测点索引最后一位数 - List listId = Stream.of(1, 2, 3, 4, 5, 6).collect(Collectors.toList()); + //监测点序号 + List listLineNum = Stream.of(1, 2, 3, 4, 5, 6).collect(Collectors.toList()); + //母线序号 + List listVoltageNum = Stream.of(1, 2, 3, 4, 5, 6).collect(Collectors.toList()); //标识当前装置下的监测点数量 - int lineNum = 0; + int lineNum = 0, voltageNum = 0; //校验监测点总数不超过6 if (CollectionUtil.isNotEmpty(deviceParam.getSubVoltageParam())) { for (SubVoltageParam subVoltage : deviceParam.getSubVoltageParam()) { @@ -238,7 +215,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple if (StrUtil.isBlank(deviceParam.getDevIndex())) { - Line device = assembleLine(deviceParam.getName(),LineBaseEnum.DEVICE_LEVEL.getCode(),subIndex,projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex,deviceParam.getSort()); + Line device = assembleLine(deviceParam.getName(), LineBaseEnum.DEVICE_LEVEL.getCode(), subIndex, projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex, deviceParam.getSort()); this.baseMapper.insert(device); devIdIndex = device.getId(); @@ -256,8 +233,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple deviceDetail.setUpdateTime(LocalDateTime.now()); deviceMapper.insert(deviceDetail); //装置功能 - HttpResult> httpResult = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()); - List funList = httpResult.getData(); + List funList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()).getData(); if (CollectionUtil.isEmpty(funList)) { throw new BusinessException(DeviceResponseEnum.DIC_GET_EMPTY); } @@ -281,7 +257,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple if (CollectionUtil.isNotEmpty(lineDetails)) { lineNum = lineNum + lineDetails.size(); for (LineDetail sline : lineDetails) { - listId.removeIf(integer -> sline.getNum().equals(integer)); + listLineNum.removeIf(integer -> sline.getNum().equals(integer)); } } } @@ -317,17 +293,17 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple String subvIndex; if (StrUtil.isBlank(subVoltageParam.getSubvIndex()) && StrUtil.isNotBlank(devIdIndex)) { - HttpResult scaleRes = dicDataFeignClient.getDicDataById(subVoltageParam.getScale()); - if (Objects.isNull(scaleRes.getData())) { + DictData scaleRes = dicDataFeignClient.getDicDataById(subVoltageParam.getScale()).getData(); + if (Objects.isNull(scaleRes)) { throw new BusinessException(DeviceResponseEnum.DIC_GET_EMPTY); } - Line subVoltage = assembleLine(subVoltageParam.getName(),LineBaseEnum.SUB_V_LEVEL.getCode(),devIdIndex,projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex + StrUtil.COMMA + devIdIndex,subVoltageParam.getSort()); + Line subVoltage = assembleLine(subVoltageParam.getName(), LineBaseEnum.SUB_V_LEVEL.getCode(), devIdIndex, projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex + StrUtil.COMMA + devIdIndex, subVoltageParam.getSort()); this.baseMapper.insert(subVoltage); subvIndex = subVoltage.getId(); Voltage voltage = new Voltage(); voltage.setId(subVoltage.getId()); voltage.setNum(subVoltageParam.getNum()); - voltage.setScale(scaleRes.getData().getId()); + voltage.setScale(scaleRes.getId()); voltage.setModel(subVoltageParam.getModel()); voltageMapper.insert(voltage); } else { @@ -353,18 +329,18 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple for (LineParam lineParam : subVoltageParam.getLineParam()) { if (StrUtil.isBlank(lineParam.getLineIndex()) && StrUtil.isNotBlank(subvIndex)) { //判断监测点序号是否重复 - if (CollectionUtil.isNotEmpty(listId)) { - if (!listId.contains(lineParam.getNum())) { + if (CollectionUtil.isNotEmpty(listLineNum)) { + if (!listLineNum.contains(lineParam.getNum())) { throw new BusinessException(DeviceResponseEnum.LINE_NUM_USE, "监测点序号:" + lineParam.getNum()); } } else { throw new BusinessException(DeviceResponseEnum.DEVICE_LINE_BIG); } //删除与当前线路号重复的项 - listId.removeIf(lineNo -> lineNo.equals(lineParam.getNum())); + listLineNum.removeIf(lineNo -> lineNo.equals(lineParam.getNum())); HttpResult httpScale = dicDataFeignClient.getDicDataById(subVoltageParam.getScale()); Float jcap = DeviceUtil.getJCAPByScale(httpScale.getData().getName()); - Line line = assembleLine(lineParam.getName(),LineBaseEnum.LINE_LEVEL.getCode(),subvIndex,projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex + StrUtil.COMMA + devIdIndex+ StrUtil.COMMA + subvIndex,lineParam.getSort()); + Line line = assembleLine(lineParam.getName(), LineBaseEnum.LINE_LEVEL.getCode(), subvIndex, projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex + StrUtil.COMMA + devIdIndex + StrUtil.COMMA + subvIndex, lineParam.getSort()); this.baseMapper.insert(line); LineDetail lineDetail = new LineDetail(); BeanUtils.copyProperties(lineParam, lineDetail); @@ -399,6 +375,34 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple return true; } + /** + * 校验装置 + */ + private void checkDev(AddTerminalParam addTerminalParam, String subIndex,LambdaQueryWrapper lineLambdaQueryWrapper) { + + + List devNameList = addTerminalParam.getDeviceParam().stream().filter((dev -> dev.getDevIndex() == null)).map(DeviceParam::getName).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(devNameList)) { + lineLambdaQueryWrapper.eq(Line::getPid, subIndex).in(Line::getName, devNameList); + List deviceListRes = this.list(lineLambdaQueryWrapper); + //校验当前变电站下是否有同名设备 + if (CollectionUtil.isNotEmpty(deviceListRes)) { + List stringList = deviceListRes.stream().map(Line::getName).collect(Collectors.toList()); + throw new BusinessException(DeviceResponseEnum.DEVICE_SAME_NAME, String.join(";", stringList)); + } + } + List devIpList = addTerminalParam.getDeviceParam().stream().filter((dev -> dev.getDevIndex() == null)).map(DeviceParam::getIp).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(devIpList)) { + List deviceListIpRes = lineMapper.getDeviceBySubId(subIndex, devIpList); + //校验当前变电站下的装置是否有相同ip + if (CollectionUtil.isNotEmpty(deviceListIpRes)) { + List stringList = deviceListIpRes.stream().map(Device::getIp).collect(Collectors.toList()); + throw new BusinessException(DeviceResponseEnum.DEVICE_SAME_IP, String.join(";", stringList)); + } + } + } + + @Override @Transactional(rollbackFor = Exception.class) public Boolean updateTerminal(UpdateTerminalParam updateTerminalParam) { @@ -657,30 +661,30 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple TerminalVO terminalVO = new TerminalVO(); if (obj.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())) { //点击项目节点 - assProject(obj,terminalVO); + assProject(obj, terminalVO); } else if (obj.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode())) { //点击省份节点 Line project = this.getById(obj.getPid()); - assProject(project,terminalVO); - assProvince(obj,terminalVO); + assProject(project, terminalVO); + assProvince(obj, terminalVO); } else if (obj.getLevel().equals(LineBaseEnum.GD_LEVEL.getCode())) { //点击供电公司节点 - assGd(obj,terminalVO); + assGd(obj, terminalVO); Line province = this.getById(obj.getPid()); - assProvince(province,terminalVO); + assProvince(province, terminalVO); Line project = this.getById(province.getPid()); - assProject(project,terminalVO); + assProject(project, terminalVO); } else if (obj.getLevel().equals(LineBaseEnum.SUB_LEVEL.getCode())) { //变电站 - assSub(obj,terminalVO); + assSub(obj, terminalVO); Line gdInformation = this.getById(obj.getPid()); - assGd(gdInformation,terminalVO); + assGd(gdInformation, terminalVO); Line province = this.getById(gdInformation.getPid()); - assProvince(province,terminalVO); + assProvince(province, terminalVO); Line project = this.getById(province.getPid()); - assProject(project,terminalVO); + assProject(project, terminalVO); //展示所有下级装置母线监测点 @@ -1255,8 +1259,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } @Override - public List getDeviceByIdOnOrOff(List devIds, DeviceType deviceType,Integer comFlag){ - return this.baseMapper.getDeviceByIdOnOrOff(devIds, deviceType,comFlag); + public List getDeviceByIdOnOrOff(List devIds, DeviceType deviceType, Integer comFlag) { + return this.baseMapper.getDeviceByIdOnOrOff(devIds, deviceType, comFlag); } @Override @@ -1613,7 +1617,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } lineDetailMapper.insert(lineDetail); - LineBak lineBak= new LineBak(); + LineBak lineBak = new LineBak(); lineBak.setId(temp.getId()); lineBak.setLineId(oracleTerminalExcel.getId()); lineBakService.save(lineBak); @@ -1931,7 +1935,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple return line; } - private Line assembleLine(String name, Integer level, String pid, String pids,Integer sort) { + private Line assembleLine(String name, Integer level, String pid, String pids, Integer sort) { Line line = new Line(); line.setName(name); line.setLevel(level); @@ -2089,16 +2093,16 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple Line subStation = this.getById(subId); if (Objects.nonNull(subStation)) { - assSub(subStation,terminalVO); + assSub(subStation, terminalVO); Line gdInformation = this.getById(subStation.getPid()); - assGd(gdInformation,terminalVO); + assGd(gdInformation, terminalVO); Line province = this.getById(gdInformation.getPid()); - assProvince(province,terminalVO); + assProvince(province, terminalVO); Line project = this.getById(province.getPid()); - assProject(project,terminalVO); + assProject(project, terminalVO); return terminalVO; } else { @@ -2110,7 +2114,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple /** * 组装项目 */ - private void assProject(Line project,TerminalVO terminalVO){ + private void assProject(Line project, TerminalVO terminalVO) { ProjectVO projectVO = new ProjectVO(); projectVO.setProjectIndex(project.getId()); projectVO.setName(project.getName()); @@ -2122,7 +2126,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple /** * 组装省份 */ - private void assProvince(Line province,TerminalVO terminalVO){ + private void assProvince(Line province, TerminalVO terminalVO) { ProvinceVO provinceVO = new ProvinceVO(); provinceVO.setProvinceIndex(province.getId()); provinceVO.setName(province.getName()); @@ -2133,7 +2137,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple /** * 组装供电公司 */ - private void assGd(Line gdInformation,TerminalVO terminalVO){ + private void assGd(Line gdInformation, TerminalVO terminalVO) { GdInformationVO gdInformationVO = new GdInformationVO(); gdInformationVO.setGdIndex(gdInformation.getId()); gdInformationVO.setName(gdInformation.getName()); @@ -2144,7 +2148,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple /** * 组装变电站 */ - private void assSub(Line subStation,TerminalVO terminalVO){ + private void assSub(Line subStation, TerminalVO terminalVO) { Substation substation = substationMapper.selectById(subStation.getId()); SubStationVO subStationVO = new SubStationVO(); subStationVO.setSubIndex(subStation.getId());