From ff178a3ee50aeb73030cc6f6ee055506295e37de Mon Sep 17 00:00:00 2001
From: huangzj <826100833@qq.com>
Date: Mon, 28 Aug 2023 09:09:05 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pqs-influx/pom.xml | 6 ++
.../service/impl/CommonServiceImpl.java | 74 ++++++++++++++-----
2 files changed, 61 insertions(+), 19 deletions(-)
diff --git a/pqs-influx/pom.xml b/pqs-influx/pom.xml
index 0dfb3a9c3..204bd243a 100644
--- a/pqs-influx/pom.xml
+++ b/pqs-influx/pom.xml
@@ -48,6 +48,12 @@
1.0.0
compile
+
+ com.njcn
+ cs-device-api
+ 1.0.0
+ compile
+
diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java
index 1923d5a57..4a36fd97d 100644
--- a/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java
+++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java
@@ -2,6 +2,8 @@ package com.njcn.influx.service.impl;
import cn.hutool.core.lang.Dict;
import com.njcn.common.pojo.exception.BusinessException;
+import com.njcn.csdevice.api.CsLineFeignClient;
+import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.influx.imapper.CommonMapper;
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
@@ -9,10 +11,12 @@ import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.influx.service.CommonService;
import com.njcn.influx.utils.ReflectUitl;
import com.njcn.system.api.DicDataFeignClient;
+import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.pojo.po.DictData;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
@@ -31,6 +35,8 @@ public class CommonServiceImpl implements CommonService {
private final CommonMapper commonMapper;
private final
DicDataFeignClient dicDataFeignClient;
+
+ private final CsLineFeignClient csLineFeignClient;
@Override
public StatisticalDataDTO getLineRtData(String lineId, String tableName, String columnName, String phasic, String dataType, String clDid) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class);
@@ -47,29 +53,43 @@ public class CommonServiceImpl implements CommonService {
@Override
public List getDeviceRtData(List lineIds, String tableName, String columnName, String phasic, String dataType) {
- InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class);
- influxQueryWrapper.select(StatisticalDataDTO::getLineId)
- .select(StatisticalDataDTO::getPhaseType)
- .select(StatisticalDataDTO::getValueType)
- .last(columnName,InfluxDBTableConstant.VALUE)
- .or(InfluxDBTableConstant.LINE_ID,lineIds)
- .eq(InfluxDBTableConstant.PHASIC_TYPE,phasic)
- .eq(InfluxDBTableConstant.VALUE_TYPE,dataType).groupBy(InfluxDBTableConstant.LINE_ID);
- return commonMapper.getDeviceRtData(influxQueryWrapper);
+ List resultList = new ArrayList<>();
+ for (String lineId: lineIds) {
+ String clDidByLineId = getClDidByLineId(lineId);
+ InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class);
+ influxQueryWrapper.select(StatisticalDataDTO::getLineId)
+ .select(StatisticalDataDTO::getPhaseType)
+ .select(StatisticalDataDTO::getValueType)
+ .last(columnName,InfluxDBTableConstant.VALUE)
+ .eq(InfluxDBTableConstant.LINE_ID,lineId)
+ .eq(InfluxDBTableConstant.PHASIC_TYPE,phasic)
+ .eq(InfluxDBTableConstant.VALUE_TYPE,dataType).eq(InfluxDBTableConstant.CL_DID,clDidByLineId);
+ List deviceRtData = commonMapper.getDeviceRtData(influxQueryWrapper);
+ resultList.addAll(deviceRtData);
+ }
+
+ return resultList;
}
@Override
public List getDeviceRtDataByTime(List lineIds, String tableName, String columnName, String phasic, String dataType, String startTime, String endTime) {
- InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class);
- influxQueryWrapper.select(StatisticalDataDTO::getLineId)
- .select(StatisticalDataDTO::getPhaseType)
- .select(StatisticalDataDTO::getValueType)
- .select(columnName,InfluxDBTableConstant.VALUE)
- .or(InfluxDBTableConstant.LINE_ID,lineIds)
- .eq(InfluxDBTableConstant.PHASIC_TYPE,phasic)
- .between(InfluxDBTableConstant.TIME, startTime, endTime)
- .eq(InfluxDBTableConstant.VALUE_TYPE,dataType).groupBy(InfluxDBTableConstant.LINE_ID);
- return commonMapper.getDeviceRtDataByTime(influxQueryWrapper);
+ List resultList = new ArrayList<>();
+ for (String lineId: lineIds) {
+ String clDidByLineId = getClDidByLineId(lineId);
+ InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class);
+ influxQueryWrapper.select(StatisticalDataDTO::getLineId)
+ .select(StatisticalDataDTO::getPhaseType)
+ .select(StatisticalDataDTO::getValueType)
+ .select(columnName,InfluxDBTableConstant.VALUE)
+ .eq(InfluxDBTableConstant.LINE_ID,lineId)
+ .eq(InfluxDBTableConstant.PHASIC_TYPE,phasic)
+ .between(InfluxDBTableConstant.TIME, startTime, endTime)
+ .eq(InfluxDBTableConstant.VALUE_TYPE,dataType).eq(InfluxDBTableConstant.CL_DID,clDidByLineId);
+ List deviceRtData = commonMapper.getDeviceRtDataByTime(influxQueryWrapper);
+ resultList.addAll(deviceRtData);
+ }
+
+ return resultList;
}
@Override
@@ -96,4 +116,20 @@ public class CommonServiceImpl implements CommonService {
}
return data.getCode();
}
+ private String getClDidByLineId(String lineId){
+ String position = csLineFeignClient.getPositionById(lineId).getData();
+ if (Objects.isNull(position)){
+ throw new BusinessException(AlgorithmResponseEnum.POSITION_ERROR);
+ }
+ String clDid = null;
+ String areaCode = dicDataFeignClient.getDicDataById(position).getData().getCode();
+ if (Objects.equals(areaCode, DicDataEnum.OUTPUT_SIDE.getCode())){
+ clDid = "0";
+ } else if (Objects.equals(areaCode, DicDataEnum.LOAD_SIDE.getCode())){
+ clDid = "1";
+ } else if (Objects.equals(areaCode, DicDataEnum.GRID_SIDE.getCode())){
+ clDid = "2";
+ }
+ return clDid;
+ }
}