污区预处理修改

This commit is contained in:
wr
2023-04-25 13:26:23 +08:00
parent 5b3c5e6c94
commit 76147134a4
7 changed files with 179 additions and 51 deletions

View File

@@ -6,6 +6,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.date.TimeInterval; import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.common.pojo.constant.BizParamConstant; import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
@@ -18,11 +19,14 @@ import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.po.Overlimit; import com.njcn.device.pq.pojo.po.Overlimit;
import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.dto.PublicDTO;
import com.njcn.harmonic.pojo.po.RMpPollutionDPO; import com.njcn.harmonic.pojo.po.RMpPollutionDPO;
import com.njcn.harmonic.pojo.po.RStatDataVD;
import com.njcn.harmonic.pojo.po.day.*;
import com.njcn.influxdb.utils.InfluxDbUtils; import com.njcn.influxdb.utils.InfluxDbUtils;
import com.njcn.prepare.harmonic.mapper.mysql.line.*; import com.njcn.prepare.harmonic.mapper.mysql.line.*;
import com.njcn.prepare.harmonic.pojo.dto.PollutionDTO; import com.njcn.prepare.harmonic.pojo.dto.PollutionDTO;
import com.njcn.prepare.harmonic.pojo.influxdb.po.*; import com.njcn.prepare.harmonic.pojo.influxdb.po.*;
import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.day.*;
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService; import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
@@ -87,6 +91,11 @@ public class PollutionServiceImpl implements PollutionService {
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
private final IRStatDataVDService dataVDService;
private final IRStatDataHarmRateVDService harmRateVDService;
private final IRStatDataIDService dataIDService;
private final IRStatDataInharmVDService inharmVDService;
private final IRStatDataPltDService pltDService;
@Override @Override
@Async("asyncExecutor") @Async("asyncExecutor")
public void processPollutionData(LineParam lineParam) { public void processPollutionData(LineParam lineParam) {
@@ -333,14 +342,22 @@ public class PollutionServiceImpl implements PollutionService {
} }
private Map<String, Optional<PublicDTO>> getThreePhaseData(List<Overlimit> overLimitList,String dataDate){ private Map<String, Optional<PublicDTO>> getThreePhaseData(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT * FROM day_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') " + processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List<RStatDataVDPO> threePhaseList = dataVDService.list(new LambdaQueryWrapper<RStatDataVDPO>()
.eq(RStatDataVDPO::getValueType, "CP95")
.in(RStatDataVDPO::getPhaseType, Arrays.asList("A", "B", "C"))
.ge(RStatDataVDPO::getTime, stringStringMap.get("startTime"))
.le(RStatDataVDPO::getTime, stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
QueryResult threePhaseSqlResult = influxDbUtils.query(sql); // String sql = "SELECT * FROM day_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') " + processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')";
List<DayVPO> threePhaseList = resultMapper.toPOJO(threePhaseSqlResult, DayVPO.class); // InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
for (DayVPO item1 : threePhaseList) { // QueryResult threePhaseSqlResult = influxDbUtils.query(sql);
// List<DayVPO> threePhaseList = resultMapper.toPOJO(threePhaseSqlResult, DayVPO.class);
for (RStatDataVDPO item1 : threePhaseList) {
for (Overlimit item2 : overLimitList) { for (Overlimit item2 : overLimitList) {
if (Objects.equals(item1.getLineId(),item2.getId())){ if (Objects.equals(item1.getLineId(),item2.getId())){
double vUnbalance = item1.getVUnbalance()/item2.getUaberrance(); double vUnbalance = item1.getVUnbalance()/item2.getUaberrance();
@@ -358,14 +375,22 @@ public class PollutionServiceImpl implements PollutionService {
} }
private Map<String, Optional<PublicDTO>> getDistortionRateData(List<Overlimit> overLimitList,String dataDate){ private Map<String, Optional<PublicDTO>> getDistortionRateData(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT * FROM day_harmrate_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +"group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List<RStatDataHarmrateVDPO> distortionRateList = harmRateVDService.list(new LambdaQueryWrapper<RStatDataHarmrateVDPO>()
.eq(RStatDataHarmrateVDPO::getValueType, "CP95")
.in(RStatDataHarmrateVDPO::getPhaseType, Arrays.asList("A", "B", "C"))
.ge(RStatDataHarmrateVDPO::getTime, stringStringMap.get("startTime"))
.le(RStatDataHarmrateVDPO::getTime, stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
QueryResult distortionRateSqlResult = influxDbUtils.query(sql); // String sql = "SELECT * FROM day_harmrate_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +"group by line_id order by time desc limit 3 tz('Asia/Shanghai')";
List<DayHarmrateVPO> distortionRateList = resultMapper.toPOJO(distortionRateSqlResult, DayHarmrateVPO.class); // InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
for (DayHarmrateVPO dayHarmrateV : distortionRateList) { //
// QueryResult distortionRateSqlResult = influxDbUtils.query(sql);
// List<DayHarmrateVPO> distortionRateList = resultMapper.toPOJO(distortionRateSqlResult, DayHarmrateVPO.class);
for (RStatDataHarmrateVDPO dayHarmrateV : distortionRateList) {
for (Overlimit overlimit : overLimitList) { for (Overlimit overlimit : overLimitList) {
if (Objects.equals(dayHarmrateV.getLineId(),overlimit.getId())){ if (Objects.equals(dayHarmrateV.getLineId(),overlimit.getId())){
double v2 = dayHarmrateV.getV2()/overlimit.getUharm2(); double v2 = dayHarmrateV.getV2()/overlimit.getUharm2();
@@ -409,14 +434,22 @@ public class PollutionServiceImpl implements PollutionService {
* 谐波电流各次谐波电流2~25次取各监测点最新的A、B、C三相数据。 * 谐波电流各次谐波电流2~25次取各监测点最新的A、B、C三相数据。
*/ */
private List<PublicDTO> getHarmonicCurrent(List<Overlimit> overLimitList,String dataDate){ private List<PublicDTO> getHarmonicCurrent(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT * FROM day_i where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C')"+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List<RStatDataIDPO> list = dataIDService.list(new LambdaQueryWrapper<RStatDataIDPO>()
.eq(RStatDataIDPO::getValueType, "CP95")
.in(RStatDataIDPO::getPhaseType, Arrays.asList("A", "B", "C"))
.ge(RStatDataIDPO::getTime, stringStringMap.get("startTime"))
.le(RStatDataIDPO::getTime, stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
QueryResult sqlResult = influxDbUtils.query(sql); // String sql = "SELECT * FROM day_i where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C')"+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')";
List<DayIPO> list = resultMapper.toPOJO(sqlResult, DayIPO.class); // InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
for (DayIPO dayI : list) { //
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayIPO> list = resultMapper.toPOJO(sqlResult, DayIPO.class);
for (RStatDataIDPO dayI : list) {
for (Overlimit overlimit : overLimitList) { for (Overlimit overlimit : overLimitList) {
if (Objects.equals(dayI.getLineId(),overlimit.getId())){ if (Objects.equals(dayI.getLineId(),overlimit.getId())){
double v2 = dayI.getI2()/overlimit.getIharm2(); double v2 = dayI.getI2()/overlimit.getIharm2();
@@ -461,14 +494,23 @@ public class PollutionServiceImpl implements PollutionService {
* 频率偏差各监测点最新的T相数据取频率上下偏差的绝对值中的最大值。 * 频率偏差各监测点最新的T相数据取频率上下偏差的绝对值中的最大值。
*/ */
private List<PublicDTO> getFrequencyDeviation(List<Overlimit> overLimitList,String dataDate){ private List<PublicDTO> getFrequencyDeviation(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT line_id,abs(freq_dev) AS freq_dev FROM day_v where phasic_type = 'T' and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +"group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List<RStatDataVDPO> threePhaseList = dataVDService.list(new QueryWrapper<RStatDataVDPO>()
.select("line_id","abs(freq_dev)")
.in("value_type", Arrays.asList("MIN","MAX"))
.in("phasic_type", Arrays.asList("T"))
.ge("time", stringStringMap.get("startTime"))
.le("time", stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
QueryResult sqlResult = influxDbUtils.query(sql); // String sql = "SELECT line_id,abs(freq_dev) AS freq_dev FROM day_v where phasic_type = 'T' and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +"group by line_id order by time desc limit 2 tz('Asia/Shanghai')";
List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class); // InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
for (DayVPO dayV : list) { //
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class);
for (RStatDataVDPO dayV : threePhaseList) {
for (Overlimit overlimit : overLimitList) { for (Overlimit overlimit : overLimitList) {
if (Objects.equals(dayV.getLineId(),overlimit.getId())){ if (Objects.equals(dayV.getLineId(),overlimit.getId())){
double freqDev = dayV.getFreqDev()/overlimit.getFreqDev(); double freqDev = dayV.getFreqDev()/overlimit.getFreqDev();
@@ -490,14 +532,23 @@ public class PollutionServiceImpl implements PollutionService {
* 电压偏差各监测点最新的A、B、C三相数据取电压上下偏差的绝对值中的最大值。 * 电压偏差各监测点最新的A、B、C三相数据取电压上下偏差的绝对值中的最大值。
*/ */
private List<PublicDTO> getVoltageDeviation(List<Overlimit> overLimitList,String dataDate){ private List<PublicDTO> getVoltageDeviation(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT line_id,vu_dev,vl_dev,value_type FROM day_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 6 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
QueryResult sqlResult = influxDbUtils.query(sql); List<RStatDataVDPO> list = dataVDService.list(new QueryWrapper<RStatDataVDPO>()
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); .select("line_id","vu_dev","vl_dev","value_type")
.in("value_type", Arrays.asList("MIN","MAX"))
.in("phasic_type", Arrays.asList("A","B","C"))
.ge("time", stringStringMap.get("startTime"))
.le("time", stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class); // String sql = "SELECT line_id,vu_dev,vl_dev,value_type FROM day_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 6 tz('Asia/Shanghai')";
for (DayVPO dayV : list) { // QueryResult sqlResult = influxDbUtils.query(sql);
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
//
// List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class);
for (RStatDataVDPO dayV : list) {
for (Overlimit overlimit : overLimitList) { for (Overlimit overlimit : overLimitList) {
if (Objects.equals(dayV.getLineId(),overlimit.getId())){ if (Objects.equals(dayV.getLineId(),overlimit.getId())){
double vlDev = Math.abs(dayV.getVlDev()/overlimit.getUvoltageDev()); double vlDev = Math.abs(dayV.getVlDev()/overlimit.getUvoltageDev());
@@ -520,14 +571,23 @@ public class PollutionServiceImpl implements PollutionService {
* 三相电压不平衡度各监测点最新的T相数据。 * 三相电压不平衡度各监测点最新的T相数据。
*/ */
private List<PublicDTO> getThreePhaseVoltageUnbalance(List<Overlimit> overLimitList,String dataDate){ private List<PublicDTO> getThreePhaseVoltageUnbalance(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT line_id,v_unbalance,value_type FROM day_v where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List<RStatDataVDPO> list = dataVDService.list(new QueryWrapper<RStatDataVDPO>()
.select("line_id","v_unbalance","value_type")
.in("value_type", Arrays.asList("CP95","MAX"))
.in("phasic_type", Arrays.asList("T"))
.ge("time", stringStringMap.get("startTime"))
.le("time", stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
QueryResult sqlResult = influxDbUtils.query(sql); // String sql = "SELECT line_id,v_unbalance,value_type FROM day_v where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')";
List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class); // InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
for (DayVPO dayV : list) { //
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class);
for (RStatDataVDPO dayV : list) {
for (Overlimit overlimit : overLimitList) { for (Overlimit overlimit : overLimitList) {
if (Objects.equals(dayV.getLineId(),overlimit.getId())){ if (Objects.equals(dayV.getLineId(),overlimit.getId())){
double vUnbalance = Math.abs(dayV.getVUnbalance()/overlimit.getUbalance()); double vUnbalance = Math.abs(dayV.getVUnbalance()/overlimit.getUbalance());
@@ -549,14 +609,23 @@ public class PollutionServiceImpl implements PollutionService {
* 负序电流各监测点最新的T相数据。 * 负序电流各监测点最新的T相数据。
*/ */
private List<PublicDTO> getNegativeSequenceCurrent(List<Overlimit> overLimitList,String dataDate){ private List<PublicDTO> getNegativeSequenceCurrent(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT line_id,i_neg,value_type FROM day_i where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List<RStatDataIDPO> list = dataIDService.list(new QueryWrapper<RStatDataIDPO>()
.select("line_id","i_neg","value_type")
.in("value_type", Arrays.asList("CP95","MAX"))
.in("phasic_type", Arrays.asList("T"))
.ge("time", stringStringMap.get("startTime"))
.le("time", stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
QueryResult sqlResult = influxDbUtils.query(sql); // String sql = "SELECT line_id,i_neg,value_type FROM day_i where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')";
List<DayIPO> list = resultMapper.toPOJO(sqlResult, DayIPO.class); // InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
for (DayIPO dayI : list) { //
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayIPO> list = resultMapper.toPOJO(sqlResult, DayIPO.class);
for (RStatDataIDPO dayI : list) {
for (Overlimit overlimit : overLimitList) { for (Overlimit overlimit : overLimitList) {
if (Objects.equals(dayI.getLineId(),overlimit.getId()) && overlimit.getINeg() != 0){ if (Objects.equals(dayI.getLineId(),overlimit.getId()) && overlimit.getINeg() != 0){
BigDecimal dayiNeg = BigDecimal.valueOf(dayI.getINeg()); BigDecimal dayiNeg = BigDecimal.valueOf(dayI.getINeg());
@@ -581,14 +650,22 @@ public class PollutionServiceImpl implements PollutionService {
* 间谐波电压含有率各监测点最新的A、B、C三相数据。 * 间谐波电压含有率各监测点最新的A、B、C三相数据。
*/ */
private List<PublicDTO> getInterharmonicVoltage(List<Overlimit> overLimitList,String dataDate){ private List<PublicDTO> getInterharmonicVoltage(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT * FROM day_inharm_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List<RStatDataInharmVDPO> list = inharmVDService.list(new QueryWrapper<RStatDataInharmVDPO>()
.in("value_type", Arrays.asList("CP95"))
.in("phasic_type", Arrays.asList("A","B","C"))
.ge("time", stringStringMap.get("startTime"))
.le("time", stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
QueryResult sqlResult = influxDbUtils.query(sql); // String sql = "SELECT * FROM day_inharm_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')";
List<DayInharmVPO> list = resultMapper.toPOJO(sqlResult, DayInharmVPO.class); // InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
for (DayInharmVPO dayInharmV : list) { //
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayInharmVPO> list = resultMapper.toPOJO(sqlResult, DayInharmVPO.class);
for (RStatDataInharmVDPO dayInharmV : list) {
for (Overlimit overlimit : overLimitList) { for (Overlimit overlimit : overLimitList) {
if (Objects.equals(dayInharmV.getLineId(),overlimit.getId())){ if (Objects.equals(dayInharmV.getLineId(),overlimit.getId())){
double v1 = Math.abs(dayInharmV.getV1()/overlimit.getInuharm1()); double v1 = Math.abs(dayInharmV.getV1()/overlimit.getInuharm1());
@@ -625,14 +702,23 @@ public class PollutionServiceImpl implements PollutionService {
* 长时电压闪变各监测点最新的A、B、C三相数据。 * 长时电压闪变各监测点最新的A、B、C三相数据。
*/ */
private List<PublicDTO> getVoltageFlicker(List<Overlimit> overLimitList,String dataDate){ private List<PublicDTO> getVoltageFlicker(List<Overlimit> overLimitList,String dataDate){
String sql = "SELECT * FROM day_plt where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; Map<String, String> stringStringMap = processMysqlDate(dataDate, Integer.valueOf(BizParamConstant.STAT_BIZ_DAY));
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); List<RStatDataPltDPO> list = pltDService.list(new QueryWrapper<RStatDataPltDPO>()
.in("value_type", Arrays.asList("CP95"))
.in("phasic_type", Arrays.asList("A","B","C"))
.ge("time", stringStringMap.get("startTime"))
.le("time", stringStringMap.get("endTime"))
);
List<Double> data; List<Double> data;
PublicDTO publicDTO; PublicDTO publicDTO;
List<PublicDTO> lineData = new ArrayList<>(); List<PublicDTO> lineData = new ArrayList<>();
QueryResult sqlResult = influxDbUtils.query(sql);
List<DayPltPO> list = resultMapper.toPOJO(sqlResult, DayPltPO.class); // String sql = "SELECT * FROM day_plt where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')";
for (DayPltPO dayPlt : list) { // InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
//
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayPltPO> list = resultMapper.toPOJO(sqlResult, DayPltPO.class);
for (RStatDataPltDPO dayPlt : list) {
for (Overlimit overlimit : overLimitList) { for (Overlimit overlimit : overLimitList) {
if (Objects.equals(dayPlt.getLineId(),overlimit.getId())){ if (Objects.equals(dayPlt.getLineId(),overlimit.getId())){
double plt = Math.abs(dayPlt.getPlt()/overlimit.getFlicker()); double plt = Math.abs(dayPlt.getPlt()/overlimit.getFlicker());
@@ -710,6 +796,42 @@ public class PollutionServiceImpl implements PollutionService {
return outList; return outList;
} }
/**
* MYSQL 时间返回
* @param date
* @param type
* @return
*/
private Map<String,String> processMysqlDate(String date,Integer type){
Map<String,String> mapDate=new HashMap<>();
if (StrUtil.isNotBlank(date)){
if (Integer.valueOf(BizParamConstant.STAT_BIZ_DAY).equals(type)){
mapDate.put("startTime",date+" 00:00:00");
mapDate.put("endTime",date+" 23:59:59");
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(type)){
Date dateOut = DateUtil.parse(date);
Date dateOutb = DateUtil.beginOfMonth(dateOut);
Date dateOute = DateUtil.endOfMonth(dateOut);
mapDate.put("startTime",dateOutb+" 00:00:00");
mapDate.put("endTime",dateOute+" 23:59:59");
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(type)){
Date dateOut = DateUtil.parse(date);
Date dateOutb = DateUtil.beginOfQuarter(dateOut);
Date dateOute = DateUtil.endOfQuarter(dateOut);
mapDate.put("startTime",dateOutb+" 00:00:00");
mapDate.put("endTime",dateOute+" 23:59:59");
}else if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(type)){
Date dateOut = DateUtil.parse(date);
Date dateOutb = DateUtil.beginOfYear(dateOut);
Date dateOute = DateUtil.endOfYear(dateOut);
mapDate.put("startTime",dateOutb+" 00:00:00");
mapDate.put("endTime",dateOute+" 23:59:59");
}
}
return mapDate;
}
/** /**
* influxDb时间条件处理 * influxDb时间条件处理
*/ */

View File

@@ -1,10 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.day; package com.njcn.prepare.harmonic.service.mysql.day;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.day.RStatDataHarmrateVDPO; import com.njcn.harmonic.pojo.po.day.RStatDataHarmrateVDPO;
import java.util.List; import java.util.List;
public interface IRStatDataHarmRateVDService { public interface IRStatDataHarmRateVDService extends IMppService<RStatDataHarmrateVDPO> {
void insert(List<RStatDataHarmrateVDPO> list); void insert(List<RStatDataHarmrateVDPO> list);
} }

View File

@@ -1,10 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.day; package com.njcn.prepare.harmonic.service.mysql.day;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.day.RStatDataIDPO; import com.njcn.harmonic.pojo.po.day.RStatDataIDPO;
import java.util.List; import java.util.List;
public interface IRStatDataIDService { public interface IRStatDataIDService extends IMppService<RStatDataIDPO> {
void insert(List<RStatDataIDPO> list); void insert(List<RStatDataIDPO> list);
} }

View File

@@ -1,10 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.day; package com.njcn.prepare.harmonic.service.mysql.day;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.day.RStatDataInharmIDPO; import com.njcn.harmonic.pojo.po.day.RStatDataInharmIDPO;
import java.util.List; import java.util.List;
public interface IRStatDataInharmIDService { public interface IRStatDataInharmIDService extends IMppService<RStatDataInharmIDPO> {
void insert(List<RStatDataInharmIDPO> list); void insert(List<RStatDataInharmIDPO> list);
} }

View File

@@ -1,10 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.day; package com.njcn.prepare.harmonic.service.mysql.day;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.day.RStatDataInharmVDPO; import com.njcn.harmonic.pojo.po.day.RStatDataInharmVDPO;
import java.util.List; import java.util.List;
public interface IRStatDataInharmVDService { public interface IRStatDataInharmVDService extends IMppService<RStatDataInharmVDPO> {
void insert(List<RStatDataInharmVDPO> list); void insert(List<RStatDataInharmVDPO> list);
} }

View File

@@ -1,10 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.day; package com.njcn.prepare.harmonic.service.mysql.day;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.day.RStatDataPltDPO; import com.njcn.harmonic.pojo.po.day.RStatDataPltDPO;
import java.util.List; import java.util.List;
public interface IRStatDataPltDService { public interface IRStatDataPltDService extends IMppService<RStatDataPltDPO> {
void insert(List<RStatDataPltDPO> list); void insert(List<RStatDataPltDPO> list);
} }

View File

@@ -1,10 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.day; package com.njcn.prepare.harmonic.service.mysql.day;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.day.RStatDataVDPO; import com.njcn.harmonic.pojo.po.day.RStatDataVDPO;
import java.util.List; import java.util.List;
public interface IRStatDataVDService { public interface IRStatDataVDService extends IMppService<RStatDataVDPO> {
void insert(List<RStatDataVDPO> list); void insert(List<RStatDataVDPO> list);
} }