From 2957188466bece52a43996c0292e7f44fefd93ed Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Tue, 23 Dec 2025 03:22:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E6=80=81=E7=9B=B8=E5=85=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataIntegrityServiceImpl.java | 5 +- .../csdevice/service/ICsLedgerService.java | 2 +- .../njcn/csharmonic/pojo/dto/ZuTaiDTO.java | 5 +- .../njcn/csharmonic/pojo/dto/ZuTaiNewDTO.java | 4 +- cs-harmonic/cs-harmonic-boot/pom.xml | 6 ++ .../service/impl/LineTargetServiceImpl.java | 96 ++++++++++++++----- .../service/impl/EleEpdPqdServiceImpl.java | 16 ++-- 7 files changed, 96 insertions(+), 38 deletions(-) diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/AdminStatistic/DataIntegrityServiceImpl.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/AdminStatistic/DataIntegrityServiceImpl.java index cf1296c..d719f84 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/AdminStatistic/DataIntegrityServiceImpl.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/AdminStatistic/DataIntegrityServiceImpl.java @@ -4,16 +4,13 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import com.njcn.cloud.enums.app.UserCodeEnum; import com.njcn.cloud.pojo.vo.AdminStatistic.Integrity; -import com.njcn.cloud.pojo.vo.AdminStatistic.StaticInfo; import com.njcn.cloud.service.AdminStatistic.DataIntegrityService; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.pq.api.GeneralDeviceInfoClient; import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.api.LineIntegrityClient; import com.njcn.device.pq.pojo.param.LineBaseQueryParam; -import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.RStatIntegrityD; -import com.njcn.device.pq.pojo.vo.DevDetail; import com.njcn.device.pq.pojo.vo.LineDeviceStateVO; import com.njcn.user.api.UserFeignClient; import com.njcn.user.pojo.po.User; @@ -80,4 +77,4 @@ public class DataIntegrityServiceImpl implements DataIntegrityService { } -} +} \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java index be179c6..9b91d57 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsLedgerService.java @@ -32,7 +32,7 @@ public interface ICsLedgerService extends IService { List getLineTree(); /** - * 终端三层树 + * 终端三层树 * @return */ List getDeviceTree(); diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/dto/ZuTaiDTO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/dto/ZuTaiDTO.java index 8f9b514..e7251b5 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/dto/ZuTaiDTO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/dto/ZuTaiDTO.java @@ -39,8 +39,11 @@ public class ZuTaiDTO { @SerializedName("lineId") private String lineId; + @SerializedName("UIDType") + private Boolean uIdType; + @SerializedName("UID") - private List uId; + private List uId; @SerializedName("UIDName") private String target; diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/dto/ZuTaiNewDTO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/dto/ZuTaiNewDTO.java index 6fccdf5..f2fbcbc 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/dto/ZuTaiNewDTO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/dto/ZuTaiNewDTO.java @@ -38,12 +38,14 @@ public class ZuTaiNewDTO { private List lineList; private String lineName; @JsonProperty("UID") - private List> uid; + private List uid; @JsonProperty("UIDNames") private List uidNames; private List unit; + private Boolean uidType; + } } diff --git a/cs-harmonic/cs-harmonic-boot/pom.xml b/cs-harmonic/cs-harmonic-boot/pom.xml index afad97a..9754a85 100644 --- a/cs-harmonic/cs-harmonic-boot/pom.xml +++ b/cs-harmonic/cs-harmonic-boot/pom.xml @@ -135,6 +135,12 @@ message-api 1.0.0 + + com.njcn + cs-system-api + 1.0.0 + compile + diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java index 989092b..7ac1588 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java @@ -2,18 +2,15 @@ package com.njcn.csharmonic.service.impl; import cn.hutool.core.util.ObjectUtil; import com.alibaba.nacos.shaded.com.google.gson.Gson; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.reflect.TypeToken; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.api.*; -import com.njcn.csdevice.pojo.po.CsDataArray; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csdevice.pojo.vo.DataArrayTreeVO; import com.njcn.csdevice.pojo.vo.LineTargetVO; -import com.njcn.csharmonic.enums.CsHarmonicResponseEnum; import com.njcn.csharmonic.pojo.dto.ZuTaiDTO; import com.njcn.csharmonic.pojo.dto.ZuTaiNewDTO; import com.njcn.csharmonic.pojo.vo.CsRtDataVO; @@ -28,7 +25,7 @@ import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.EpdFeignClient; import com.njcn.system.enums.DicDataEnum; import lombok.AllArgsConstructor; -import org.apache.commons.lang.StringUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -39,7 +36,10 @@ import java.io.InputStreamReader; import java.math.BigDecimal; import java.math.RoundingMode; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -51,6 +51,7 @@ import java.util.stream.Collectors; */ @Service @AllArgsConstructor +@Slf4j public class LineTargetServiceImpl implements ILineTargetService { private final CsLedgerFeignClient csLedgerFeignClient; @@ -109,6 +110,36 @@ public class LineTargetServiceImpl implements ILineTargetService { return dataArrayFeignClient.getDataArray(setList).getData(); } +// @Override +// public List getLineData(String id) { +// List result = new ArrayList<>(); +// String path = csPagePOService.queryById(id).getPath(); +// InputStream inputStream = fileStorageUtil.getFileStream(path); +// ZuTaiDTO zuTaiDto = analysisJson(inputStream); +// zuTaiDto.getJson().forEach(item->{ +// if (!Objects.isNull(item.getTarget()) && StringUtils.isNotBlank(item.getTarget())){ +// String targetTag = item.getTarget().split("\\$")[0]; +// String phasic = item.getTarget().split("\\$")[1]; +// String dataType = item.getTarget().split("\\$")[2]; +// if (CollectionUtils.isEmpty(item.getUId()) || ObjectUtil.isNull(item.getLineId())){ +// throw new BusinessException(CsHarmonicResponseEnum.BIND_TARGET_ERROR); +// } +// CsDataArray dataArray = dataArrayFeignClient.getDataArrayById(String.valueOf(item.getUId().get(0)),targetTag).getData().get(0); +// String targetName = dataArray.getAnotherName(); +// String dataId = dataArray.getDataId(); +// String classId = epdFeignClient.selectById(dataId).getData().getClassId(); +// String clDid = influxDbParamUtil.getClDidByLineId(item.getLineId()); +// //基础信息 +// CsRtDataVO vo = getLineRtData(item.getId(),item.getLineId(),influxDbParamUtil.getTableNameByClassId(classId),targetTag,phasic,dataType,targetName,clDid); +// //设备状态信息 +// CsEquipmentDeliveryPO po = equipmentFeignClient.getDevByLineId(item.getLineId()).getData(); +// vo.setDevStatus(po.getRunStatus()); +// result.add(vo); +// } +// }); +// return result; +// } + @Override public List getLineData(String id) { List result = new ArrayList<>(); @@ -116,20 +147,25 @@ public class LineTargetServiceImpl implements ILineTargetService { InputStream inputStream = fileStorageUtil.getFileStream(path); ZuTaiDTO zuTaiDto = analysisJson(inputStream); zuTaiDto.getJson().forEach(item->{ - if (!Objects.isNull(item.getTarget()) && StringUtils.isNotBlank(item.getTarget())){ - String targetTag = item.getTarget().split("\\$")[0]; - String phasic = item.getTarget().split("\\$")[1]; - String dataType = item.getTarget().split("\\$")[2]; - if (CollectionUtils.isEmpty(item.getUId()) || ObjectUtil.isNull(item.getLineId())){ - throw new BusinessException(CsHarmonicResponseEnum.BIND_TARGET_ERROR); + if (ObjectUtil.isNotNull(item.getUIdType()) && item.getUIdType()) { + Object lastElement = item.getUId().get(item.getUId().size() - 1); + String data = String.valueOf(lastElement); + //分解出来五个参数 第一个 指标字段 第二个 相别 第三个 数据类型 第四个 influxdb表名 第五个 限值名称 + String[] tempTable = data.replace("$", "").split("#"); + //解析指标名称 + String targetName = "指标名称获取失败"; + String[] tmepUidName = item.getTarget().split(" / "); + if(tmepUidName.length==2) { + targetName = tmepUidName[0]; + }else if (tmepUidName.length==3) { + targetName = tmepUidName[0]; + } else if (tmepUidName.length==4) { + targetName = tmepUidName[1]; } - CsDataArray dataArray = dataArrayFeignClient.getDataArrayById(item.getUId().get(0),targetTag).getData().get(0); - String targetName = dataArray.getAnotherName(); - String dataId = dataArray.getDataId(); - String classId = epdFeignClient.selectById(dataId).getData().getClassId(); String clDid = influxDbParamUtil.getClDidByLineId(item.getLineId()); //基础信息 - CsRtDataVO vo = getLineRtData(item.getId(),item.getLineId(),influxDbParamUtil.getTableNameByClassId(classId),targetTag,phasic,dataType,targetName,clDid); + System.out.println(item.getLineId()); + CsRtDataVO vo = getLineRtData(item.getId(),item.getLineId(),tempTable[3],tempTable[0],Objects.equals(tempTable[1],"T")?"M":tempTable[1],tempTable[2],targetName,clDid); //设备状态信息 CsEquipmentDeliveryPO po = equipmentFeignClient.getDevByLineId(item.getLineId()).getData(); vo.setDevStatus(po.getRunStatus()); @@ -148,7 +184,7 @@ public class LineTargetServiceImpl implements ILineTargetService { ZuTaiNewDTO zuTaiDto = analysisJsonNew(inputStream); zuTaiDto.getJson().forEach(item->{ - if (!CollectionUtils.isEmpty(item.getUidNames())){ + if (!CollectionUtils.isEmpty(item.getUidNames()) && Objects.isNull(item.getUidType())){ for (int i = 0; i < item.getUidNames().size(); i++) { String temp = item.getUidNames().get(i); String targetTag = null; @@ -168,16 +204,21 @@ public class LineTargetServiceImpl implements ILineTargetService { if (CollectionUtils.isEmpty(item.getUid()) || org.springframework.util.StringUtils.isEmpty(item.getLineId())){ throw new BusinessException(CsSystemResponseEnum.BIND_TARGET_ERROR); } - List tempUid = item.getUid().get(i); - String s = tempUid.get(tempUid.size() - 1); - String[] tempTable = s.replace("$", "").split("#"); - result.add(getLineRtDataNew(item.getId(),item.getLineId(),tempTable[3],tempTable[0],tempTable[1],tempTable[2].toUpperCase(),temp,item.getUnit().get(i))); +// List tempUid = (List) item.getUid().get(i); + + if (item.getUid().get(i) instanceof List) { + List rawList = (List) item.getUid().get(i); + List tempUid = rawList.stream() + .filter(item2 -> item2 instanceof String) + .map(item2 -> (String) item2) + .collect(Collectors.toList()); + String s = tempUid.get(tempUid.size() - 1); + String[] tempTable = s.replace("$", "").split("#"); + result.add(getLineRtDataNew(item.getId(),item.getLineId(),tempTable[3],tempTable[0],Objects.equals(tempTable[1],"T")?"M":tempTable[1],tempTable[2].toUpperCase(),temp,item.getUnit().get(i))); // result.add(getLineRtData(item.getId(),item.getLineId(),tempUid.get(3),tempUid.get(0),tempUid.get(1),tempUid.get(2).toUpperCase(),temp,"%")); + } } - } - - }); return result; } @@ -231,6 +272,13 @@ public class LineTargetServiceImpl implements ILineTargetService { */ public CsRtDataVO getLineRtData(String id,String lineId, String tableName, String columnName, String phasic, String dataType, String target, String cldId) { CsRtDataVO csRtDataVO = new CsRtDataVO(); + log.info("---------------------------------------------------------------------------------------------------------------"); + log.info(lineId); + log.info(tableName); + log.info(columnName); + log.info(phasic); + log.info(dataType); + log.info(cldId); StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,tableName,columnName,phasic,dataType,cldId); if(Objects.isNull(statisticalDataDTO)){ statisticalDataDTO = new StatisticalDataDTO(); diff --git a/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/EleEpdPqdServiceImpl.java b/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/EleEpdPqdServiceImpl.java index 25e62f1..249f2fb 100644 --- a/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/EleEpdPqdServiceImpl.java +++ b/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/EleEpdPqdServiceImpl.java @@ -39,7 +39,7 @@ public class EleEpdPqdServiceImpl extends ServiceImpl eleEpdChooseTree() { - DictData dic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.CS_DATA_TYPE.getName(), DicDataEnum.EPD.getName()).getData(); + DictData dic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.CS_DATA_TYPE.getName(), DicDataEnum.PQD.getName()).getData(); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(EleEpdPqd::getDataType, dic.getId()).orderByAsc(EleEpdPqd::getSort); List list = this.getBaseMapper().selectList(lambdaQueryWrapper); @@ -49,7 +49,7 @@ public class EleEpdPqdServiceImpl extends ServiceImpl { EleEpdTreeVO reportTreeVO = new EleEpdTreeVO(); - reportTreeVO.setName(value.get(0).getOtherName()); + reportTreeVO.setName(value.get(0).getName()); reportTreeVO.setShowName(value.get(0).getShowName()); //存在1-50次 2-50次情况 @@ -57,7 +57,7 @@ public class EleEpdPqdServiceImpl extends ServiceImpl reHarm = new ArrayList<>(); for (int i = value.get(0).getHarmStart(); i <= value.get(0).getHarmEnd(); i++) { EleEpdTreeVO reportTreeCount = new EleEpdTreeVO(); - reportTreeCount.setName(value.get(0).getOtherName() + "_" + i); + reportTreeCount.setName(value.get(0).getName() + "_" + i); reportTreeCount.setShowName(i + "次" + value.get(0).getShowName()); reportTreeVO.setFlag(1); assPhase(value, reportTreeCount, reportTreeCount.getName()); @@ -65,7 +65,7 @@ public class EleEpdPqdServiceImpl extends ServiceImpl statTree = new ArrayList<>(); - assStatMethod(item, statTree, key, "T"); + assStatMethod(item, statTree, key, "M"); reportTreeItem.setChildren(statTree); } }); @@ -101,6 +101,8 @@ public class EleEpdPqdServiceImpl extends ServiceImpl stat = Stream.of(arr).collect(Collectors.toList()); + //根据表id获取表名称 + String tableName = dicDataFeignClient.getDicDataById(item.getClassId().trim()).getData().getName(); if (CollUtil.isNotEmpty(stat)) { stat.forEach(statItem -> { EleEpdTreeVO reportTreeStat = new EleEpdTreeVO(); @@ -112,9 +114,9 @@ public class EleEpdPqdServiceImpl extends ServiceImpl