Commit db55fa38 authored by caotao's avatar caotao

1.重构请求算法。新增光伏工况变量区间划分、相关性分析、中心值计算业务侧接口

parent 68a7706e
......@@ -27,22 +27,40 @@ public class AnalyseController extends BaseController {
CommonServiceImpl commonServiceImpl;
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "工况测点区间划分", notes = "工况测点区间划分")
@GetMapping(value = "/getConditionVariablesByTime")
public void getConditionVariablesByTime(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getConditionVariablesByTime(startTime, endTime);
@ApiOperation(httpMethod = "GET", value = "工况测点区间划分-风机", notes = "工况测点区间划分-风机")
@GetMapping(value = "/getFanConditionVariablesByTime")
public void getFanConditionVariablesByTime(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getFanConditionVariablesByTime(startTime, endTime);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "相关性分析", notes = "相关性分析")
@GetMapping(value = "/getConditionVariablesByTimeAnalyse")
public void getConditionVariablesByTimeAnalyse(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getConditionVariablesByTimeAnalyse(startTime, endTime);
@ApiOperation(httpMethod = "GET", value = "工况测点区间划分-光伏", notes = "工况测点区间划分-光伏")
@GetMapping(value = "/getPvConditionVariablesByTime")
public void getPvConditionVariablesByTime(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getPvConditionVariablesByTime(startTime, endTime);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "中心值计算", notes = "中心值计算")
@GetMapping(value = "/getConditionVariablesByTimeAnalyse1")
public void getConditionVariablesByTimeAnalyse1(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getConditionVariablesByTimeAnalyse1(startTime, endTime);
@ApiOperation(httpMethod = "GET", value = "相关性分析-风机", notes = "相关性分析-风机")
@GetMapping(value = "/getFanConditionVariablesByTimeAnalyse")
public void getFanConditionVariablesByTimeAnalyse(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getFanConditionVariablesByTimeAnalyse(startTime, endTime);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "相关性分析-风机", notes = "相关性分析-风机")
@GetMapping(value = "/getPvConditionVariablesByTimeAnalyse")
public void getPvConditionVariablesByTimeAnalyse(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getPvConditionVariablesByTimeAnalyse(startTime, endTime);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "中心值计算-风机", notes = "中心值计算-风机")
@GetMapping(value = "/getFanConditionVariablesByTimeAnalyse1")
public void getFanConditionVariablesByTimeAnalyse1(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getFanConditionVariablesByTimeAnalyse1(startTime, endTime);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "中心值计算-光伏", notes = "中心值计算-光伏")
@GetMapping(value = "/getPvConditionVariablesByTimeAnalyse1")
public void getPvConditionVariablesByTimeAnalyse1(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getPvConditionVariablesByTimeAnalyse1(startTime, endTime);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
......
......@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
......@@ -39,7 +40,7 @@ public class IdxBizFanPointProcessVariableClassification{
*
*/
@TableField("REC_DATE")
private LocalDateTime recDate;
private Date recDate;
/**
*
......
......@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
......@@ -39,7 +40,7 @@ public class IdxBizFanPointVarCorrelation{
*
*/
@TableField("REC_DATE")
private LocalDateTime recDate;
private Date recDate;
/**
*
......
......@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
......@@ -39,7 +40,7 @@ public class IdxBizPvPointProcessVariableClassification{
*
*/
@TableField("REC_DATE")
private LocalDateTime recDate;
private Date recDate;
/**
*
......@@ -141,7 +142,7 @@ public class IdxBizPvPointProcessVariableClassification{
*
*/
@TableField("GATEWAY_ID")
private Integer gatewayId;
private Long gatewayId;
/**
* 点表地址
......
......@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
......@@ -39,7 +40,7 @@ public class IdxBizPvPointVarCorrelation{
*
*/
@TableField("REC_DATE")
private LocalDateTime recDate;
private Date recDate;
/**
*
......
......@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.jxiop.biz.mapper2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanPointProcessVariableClassification;
import java.util.List;
/**
* Mapper 接口
*
......@@ -10,5 +12,7 @@ import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanPointProcessVariab
* @date 2023-08-15
*/
public interface IdxBizFanPointProcessVariableClassificationMapper extends BaseMapper<IdxBizFanPointProcessVariableClassification> {
List<IdxBizFanPointProcessVariableClassification> getInfluxDBData();
List<String> gateWayIdListFan();
}
......@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.jxiop.biz.mapper2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizPvPointProcessVariableClassification;
import java.util.List;
/**
* Mapper 接口
*
......@@ -10,5 +12,5 @@ import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizPvPointProcessVariabl
* @date 2023-08-15
*/
public interface IdxBizPvPointProcessVariableClassificationMapper extends BaseMapper<IdxBizPvPointProcessVariableClassification> {
List<String> gateWayIdListPv();
}
......@@ -3,14 +3,8 @@ package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizC80c;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizHjev;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizPvPointProcessVariableClassification;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizUxfv;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBiz3yudMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizC80cMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizPvPointProcessVariableClassificationMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizUxfvMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.*;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.*;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -31,17 +25,17 @@ public class CommonServiceImpl {
@Value("${base.url:http://36.40.66.175:30009/maas/maas/processes/api/}")
String baseUrl;
//----------------工况变量工况变量划分请求属性配置------------------------
@Value("${gkblhf.url:71ed06a2-4f09-44b5-a667-8547e4019525}")
@Value("${gkblhf.url:e884fccf-b7ac-4fa4-bdb7-a5b6ff7319ec}")
String gkqjhfurl;
@Value("${gkblhf.key:input 1}")
String gkqjhfkey;
//----------------工况变量相关性计算请求属性配置------------------------
@Value("${gkxgxfx.url:1bf5548d-aac1-4b43-bdb4-45ba8ea048a8}")
@Value("${gkxgxfx.url:120b1159-24d9-4fdf-82af-22b71603272b}")
String gkxgxfxurl;
@Value("${gkxgxfx.key:input 1}")
String gkxgxfxkey;
//----------------工况变量中心值计算相关请求属性配置------------------------
@Value("${gkzxzjs.url:d01c690d-fcb7-44b4-8622-7187fb2cb0fd}")
@Value("${gkzxzjs.url:90d3b6f8-88ab-4f3d-984e-eb96fc9d31ce}")
String gkzxzjsurl;
@Value("${gkzxzjs.key:input 1}")
String gkzxzjskey1;
......@@ -49,87 +43,92 @@ public class CommonServiceImpl {
@Value("${gkzxzjs.key:input 2}")
String gkzxzjskey2;
// idx_biz_hjev 光伏监测变量
// idx_biz_c80c 风电监测变量 (根据设备、系统、型号查分析和工况测点)
// idx_biz_3yud 光伏工况变量划分
// idx_biz_uxfv 风电 工况变量划分 (工况/分析变量划分)
// idx_biz_iegc光伏 预警记录
// idx_biz_zrdb 风电 预警记录
// idx_biz_felk 光伏 健康状态指数
// idx_biz_208l风电 健康状态指数
// idx_biz_uhef 风电 工况组合中心
// idx_biz_59c8 光伏 工况组合中心
// idx_biz_yh88风电 工况数据字典
// idx_biz_ksia光伏 工况数据字典
// idx_biz_p2z9光伏 预警规则配置表
// idx_biz_aahn风电 预警规则配置表
// idx_biz_btlq光伏 健康等级划分表
// idx_biz_pldo 风电 健康等级划分表
// idx_biz_c80c 风电监测变量 (根据设备、系统、型号查分析和工况测点)
// {"tableName": "idx_biz_fan_point_process_variable_classification"} 风机工况变量划分
// {"tableName": "idx_biz_pv_point_process_variable_classification"} 光伏工况变量画分
// {"tableName": "idx_biz_fan_point_var_correlation"} 风机相关性
// {"tableName": "idx_biz_pv_point_var_correlation"} 光伏相关性
@Autowired
private IdxBizC80cMapper idxBizC80cMapper;
// idx_biz_hjev 光伏监测变量
private IdxBizFanPointProcessVariableClassificationMapper idxBizFanPointProcessVariableClassificationMapper;
@Autowired
private IdxBizPvPointProcessVariableClassificationMapper idxBizPvPointProcessVariableClassificationMapper;
// idx_biz_3yud 光伏工况变量划分
@Autowired
private IdxBiz3yudMapper idxBiz3yudMapper;
// idx_biz_uxfv 风电 工况变量划分 (工况/分析变量划分)
private IdxBizFanPointVarCorrelationMapper idxBizFanPointVarCorrelationMapper;
@Autowired
private IdxBizUxfvMapper idxBizUxfvMapper;
private IdxBizPvPointVarCorrelationMapper idxBizPvPointVarCorrelationMapper;
@Autowired
InfluxdbUtil influxdbUtil;
private InfluxdbUtil influxdbUtil;
/**
* @return
* @deprecated 获取工况变量列表
* @deprecated 获取工况变量列表风机
*/
public HashMap<String, List<IdxBizUxfv>> getIdxBizUxfvList() {
public HashMap<String, List<IdxBizFanPointProcessVariableClassification>> getIdxBizFanPointProcessVariableClassificationList() {
HashMap<String, List<IdxBizUxfv>> IdxBizUxfvHashMap = new HashMap<>();
List<String> gateWayIdList = idxBizUxfvMapper.gateWayIdListFan();
List<IdxBizUxfv> idxBizUxfvList = idxBizUxfvMapper.selectList(new QueryWrapper<IdxBizUxfv>().isNotNull("SEQUENCE_NBR").eq("TAG_CODE", "工况变量"));
List<IdxBizUxfv> finalIdxBizUxfvList = idxBizUxfvList;
HashMap<String, List<IdxBizFanPointProcessVariableClassification>> idxBizFanPointProcessVariableClassification = new HashMap<>();
List<String> gateWayIdList = idxBizFanPointProcessVariableClassificationMapper.gateWayIdListFan();
List<IdxBizFanPointProcessVariableClassification> IdxBizFanPointProcessVariableClassificationList = idxBizFanPointProcessVariableClassificationMapper.selectList(new QueryWrapper<IdxBizFanPointProcessVariableClassification>().isNotNull("SEQUENCE_NBR").eq("TAG_CODE", "工况变量"));
List<IdxBizFanPointProcessVariableClassification> finalIdxBizFanPointProcessVariableClassificationList = IdxBizFanPointProcessVariableClassificationList;
gateWayIdList.forEach(s -> {
IdxBizUxfvHashMap.put("iot_data_" + s, finalIdxBizUxfvList.stream().filter(idxBizUxfv -> idxBizUxfv.getGatewayId().equals(s)).collect(Collectors.toList()));
idxBizFanPointProcessVariableClassification.put("iot_data_" + s, finalIdxBizFanPointProcessVariableClassificationList.stream().filter(idxBizFanPointProcessVariableClassification1 -> idxBizFanPointProcessVariableClassification1.getGatewayId().toString().equals(s)).collect(Collectors.toList()));
});
return IdxBizUxfvHashMap;
return idxBizFanPointProcessVariableClassification;
}
//遍历工况列表数据
public void getConditionVariablesByTime(String startTime, String endTime) {
HashMap<String, List<IdxBizUxfv>> IdxBizUxfvHashMap = getIdxBizUxfvList();
IdxBizUxfvHashMap.keySet().forEach(s -> {
List<IdxBizUxfv> list = IdxBizUxfvHashMap.get(s);
foreachHandlerConditionVariab(s, list, startTime, endTime);
/**
* @return
* @deprecated 获取工况变量列表光伏
*/
public HashMap<String, List<IdxBizPvPointProcessVariableClassification>> getIdxBizPvPointProcessVariableClassificationList() {
HashMap<String, List<IdxBizPvPointProcessVariableClassification>> idxBizPvPointProcessVariableClassificationHashMap = new HashMap<>();
List<String> gateWayIdList = idxBizPvPointProcessVariableClassificationMapper.gateWayIdListPv();
List<IdxBizPvPointProcessVariableClassification> idxBizPvPointProcessVariableClassificationList = idxBizPvPointProcessVariableClassificationMapper.selectList(new QueryWrapper<IdxBizPvPointProcessVariableClassification>().isNotNull("SEQUENCE_NBR").eq("TAG_CODE", "工况变量"));
List<IdxBizPvPointProcessVariableClassification> finalIdxBizPvPointProcessVariableClassificationList = idxBizPvPointProcessVariableClassificationList;
gateWayIdList.forEach(s -> {
idxBizPvPointProcessVariableClassificationHashMap.put("iot_data_" + s, finalIdxBizPvPointProcessVariableClassificationList.stream().filter(idxBizFanPointProcessVariableClassification -> idxBizFanPointProcessVariableClassification.getGatewayId().toString().equals(s)).collect(Collectors.toList()));
});
return idxBizPvPointProcessVariableClassificationHashMap;
}
//遍历查询数据并调用并计算
public void foreachHandlerConditionVariab(String tableName, List<IdxBizUxfv> list, String startTime, String endTime) {
list.forEach(idxBizUxfv -> {
logger.info("--------------------------------------------开始查询influxdb--------------------------------");
//遍历工况列表数据-风机
public void getFanConditionVariablesByTime(String startTime, String endTime) {
HashMap<String, List<IdxBizFanPointProcessVariableClassification>> idxBizFanPointProcessVariableClassificationHashMap = getIdxBizFanPointProcessVariableClassificationList();
idxBizFanPointProcessVariableClassificationHashMap.keySet().forEach(s -> {
List<IdxBizFanPointProcessVariableClassification> list = idxBizFanPointProcessVariableClassificationHashMap.get(s);
foreachHandlerConditionVariabFan(s, list, startTime, endTime);
});
}
//遍历工况列表数据-光伏
public void getPvConditionVariablesByTime(String startTime, String endTime) {
HashMap<String, List<IdxBizPvPointProcessVariableClassification>> idxBizPvPointProcessVariableClassificationHashMap = getIdxBizPvPointProcessVariableClassificationList();
idxBizPvPointProcessVariableClassificationHashMap.keySet().forEach(s -> {
List<IdxBizPvPointProcessVariableClassification> list = idxBizPvPointProcessVariableClassificationHashMap.get(s);
foreachHandlerConditionVariabPv(s, list, startTime, endTime);
});
}
//遍历查询数据并调用并计算-风机
public void foreachHandlerConditionVariabFan(String tableName, List<IdxBizFanPointProcessVariableClassification> list, String startTime, String endTime) {
list.forEach(idxBizFanPointProcessVariableClassification -> {
logger.info("--------------------------------------------风机::开始查询influxdb--------------------------------");
List<Map<String, Object>> params = new ArrayList<>();
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, idxBizUxfv.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, idxBizUxfv.getIndexAddress());
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, idxBizFanPointProcessVariableClassification.getIndexAddress());
List<Map<String, Object>> returnList = influxdbUtil.query(sql);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
map.put("processVariable", Double.parseDouble(k.get("value").toString()));
map.put("processVariableId", Long.parseLong(idxBizUxfv.getSequenceNbr()));
map.put("processVariableId", Long.parseLong(idxBizFanPointProcessVariableClassification.getSequenceNbr()));
params.add(map);
});
if (!params.isEmpty()) {
logger.info("------------------------------------------开始调用工况变量区间划分算法----------------------------------------");
logger.info("------------------------------------------风机::开始调用工况变量区间划分算法----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkqjhfkey, params);
String reponse = HttpUtil.createPost(baseUrl + gkqjhfurl).body(JSON.toJSONString(realParams)).execute().body();
try {
logger.info(reponse);
TimeUnit.SECONDS.sleep(sleepTime);
logger.info("------------------------------------------调用工况变量区间划分算法结束----------------------------------------");
logger.info("------------------------------------------风机::调用工况变量区间划分算法结束----------------------------------------");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -138,51 +137,105 @@ public class CommonServiceImpl {
}
public HashMap<String, List<IdxBizUxfv>> getIdxBizUxfvListOfAnaLyse() {
//遍历查询数据并调用并计算-光伏
public void foreachHandlerConditionVariabPv(String tableName, List<IdxBizPvPointProcessVariableClassification> list, String startTime, String endTime) {
list.forEach(idxBizPvPointProcessVariableClassification -> {
logger.info("--------------------------------------------光伏::开始查询influxdb--------------------------------");
List<Map<String, Object>> params = new ArrayList<>();
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, idxBizPvPointProcessVariableClassification.getIndexAddress());
List<Map<String, Object>> returnList = influxdbUtil.query(sql);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
map.put("processVariable", Double.parseDouble(k.get("value").toString()));
map.put("processVariableId", Long.parseLong(idxBizPvPointProcessVariableClassification.getSequenceNbr()));
params.add(map);
});
if (!params.isEmpty()) {
logger.info("------------------------------------------光伏::开始调用工况变量区间划分算法----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkqjhfkey, params);
String reponse = HttpUtil.createPost(baseUrl + gkqjhfurl).body(JSON.toJSONString(realParams)).execute().body();
try {
logger.info(reponse);
TimeUnit.SECONDS.sleep(sleepTime);
logger.info("------------------------------------------光伏::调用工况变量区间划分算法结束----------------------------------------");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
});
}
//获取相关性基础数据-风机
public HashMap<String, List<IdxBizFanPointProcessVariableClassification>> getIdxBizFanPointProcessVariableClassificationListOfAnaLyse() {
HashMap<String, List<IdxBizUxfv>> IdxBizUxfvHashMap = new HashMap<>();
List<String> gateWayIdList = idxBizUxfvMapper.gateWayIdListFan();
List<IdxBizUxfv> idxBizUxfvListFengxi = idxBizUxfvMapper.selectList(new QueryWrapper<IdxBizUxfv>().isNotNull("SEQUENCE_NBR").eq("TAG_CODE", "分析变量"));
List<IdxBizUxfv> finalIdxBizUxfvList = idxBizUxfvListFengxi;
HashMap<String, List<IdxBizFanPointProcessVariableClassification>> IdxBizFanPointProcessVariableClassificationHashMap = new HashMap<>();
List<String> gateWayIdList = idxBizFanPointProcessVariableClassificationMapper.gateWayIdListFan();
List<IdxBizFanPointProcessVariableClassification> IdxBizFanPointProcessVariableClassificationListFengxi = idxBizFanPointProcessVariableClassificationMapper.selectList(new QueryWrapper<IdxBizFanPointProcessVariableClassification>().isNotNull("SEQUENCE_NBR").eq("TAG_CODE", "分析变量"));
List<IdxBizFanPointProcessVariableClassification> finalIdxBizFanPointProcessVariableClassificationList = IdxBizFanPointProcessVariableClassificationListFengxi;
gateWayIdList.forEach(s -> {
IdxBizUxfvHashMap.put("iot_data_" + s, finalIdxBizUxfvList.stream().filter(idxBizUxfv -> idxBizUxfv.getGatewayId().equals(s)).collect(Collectors.toList()));
IdxBizFanPointProcessVariableClassificationHashMap.put("iot_data_" + s, finalIdxBizFanPointProcessVariableClassificationList.stream().filter(IdxBizFanPointProcessVariableClassification -> IdxBizFanPointProcessVariableClassification.getGatewayId().toString().equals(s)).collect(Collectors.toList()));
});
return IdxBizUxfvHashMap;
return IdxBizFanPointProcessVariableClassificationHashMap;
}
//获取相关性基础数据-光伏
public HashMap<String, List<IdxBizPvPointProcessVariableClassification>> getIdxBizPvPointProcessVariableClassificationListOfAnaLyse() {
public void getConditionVariablesByTimeAnalyse(String startTime, String endTime) {
HashMap<String, List<IdxBizUxfv>> IdxBizUxfvHashMap = getIdxBizUxfvListOfAnaLyse();
IdxBizUxfvHashMap.keySet().forEach(s -> {
List<IdxBizUxfv> list = IdxBizUxfvHashMap.get(s);
list.forEach(idxBizUxfv -> {
List<IdxBizC80c> gongkuangList = idxBizC80cMapper.selectList(new QueryWrapper<IdxBizC80c>().eq("ANALYSIS_GATEWAY_ID", idxBizUxfv.getGatewayId()).eq("ANALYSIS_POINT_ID", idxBizUxfv.getSequenceNbr()));
foreachHandlerConditionVariabAnalyse(s, gongkuangList, startTime, endTime, idxBizUxfv);
HashMap<String, List<IdxBizPvPointProcessVariableClassification>> idxBizPvPointProcessVariableClassificationHashMap = new HashMap<>();
List<String> gateWayIdList = idxBizPvPointProcessVariableClassificationMapper.gateWayIdListPv();
List<IdxBizPvPointProcessVariableClassification> idxBizPvPointProcessVariableClassificationListFengxi = idxBizPvPointProcessVariableClassificationMapper.selectList(new QueryWrapper<IdxBizPvPointProcessVariableClassification>().isNotNull("SEQUENCE_NBR").eq("TAG_CODE", "分析变量"));
List<IdxBizPvPointProcessVariableClassification> finalIdxBizPvPointProcessVariableClassificationList = idxBizPvPointProcessVariableClassificationListFengxi;
gateWayIdList.forEach(s -> {
idxBizPvPointProcessVariableClassificationHashMap.put("iot_data_" + s, finalIdxBizPvPointProcessVariableClassificationList.stream().filter(idxBizPvPointProcessVariableClassification -> idxBizPvPointProcessVariableClassification.getGatewayId().toString().equals(s)).collect(Collectors.toList()));
});
return idxBizPvPointProcessVariableClassificationHashMap;
}
//相关性分析-风机入口
public void getFanConditionVariablesByTimeAnalyse(String startTime, String endTime) {
HashMap<String, List<IdxBizFanPointProcessVariableClassification>> idxBizFanPointProcessVariableClassificationHashMap = getIdxBizFanPointProcessVariableClassificationListOfAnaLyse();
idxBizFanPointProcessVariableClassificationHashMap.keySet().forEach(s -> {
List<IdxBizFanPointProcessVariableClassification> list = idxBizFanPointProcessVariableClassificationHashMap.get(s);
list.forEach(IdxBizFanPointProcessVariableClassification -> {
List<IdxBizFanPointVarCorrelation> gongkuangList = idxBizFanPointVarCorrelationMapper.selectList(new QueryWrapper<IdxBizFanPointVarCorrelation>().eq("ANALYSIS_GATEWAY_ID", IdxBizFanPointProcessVariableClassification.getGatewayId()).eq("ANALYSIS_POINT_ID", IdxBizFanPointProcessVariableClassification.getSequenceNbr()));
foreachHandlerConditionVariabAnalyseFan(s, gongkuangList, startTime, endTime, IdxBizFanPointProcessVariableClassification);
});
});
}
public void foreachHandlerConditionVariabAnalyse(String tableName, List<IdxBizC80c> list, String startTime, String endTime, IdxBizUxfv idxBizUxfv) {
String sql1 = String.format("select value from %s where address='%s' ", tableName, idxBizUxfv.getIndexAddress());
//相关性分析-光伏入口
public void getPvConditionVariablesByTimeAnalyse(String startTime, String endTime) {
HashMap<String, List<IdxBizPvPointProcessVariableClassification>> idxBizPvPointProcessVariableClassificationHashMap = getIdxBizPvPointProcessVariableClassificationListOfAnaLyse();
idxBizPvPointProcessVariableClassificationHashMap.keySet().forEach(s -> {
List<IdxBizPvPointProcessVariableClassification> list = idxBizPvPointProcessVariableClassificationHashMap.get(s);
list.forEach(idxBizPvPointProcessVariableClassification -> {
List<IdxBizPvPointVarCorrelation> gongkuangList = idxBizPvPointVarCorrelationMapper.selectList(new QueryWrapper<IdxBizPvPointVarCorrelation>().eq("ANALYSIS_GATEWAY_ID", idxBizPvPointProcessVariableClassification.getGatewayId()).eq("ANALYSIS_POINT_ID", idxBizPvPointProcessVariableClassification.getSequenceNbr()));
foreachHandlerConditionVariabAnalysePv(s, gongkuangList, startTime, endTime, idxBizPvPointProcessVariableClassification);
});
});
}
//遍历处理数据-组装风机
public void foreachHandlerConditionVariabAnalyseFan(String tableName, List<IdxBizFanPointVarCorrelation> list, String startTime, String endTime, IdxBizFanPointProcessVariableClassification IdxBizFanPointProcessVariableClassification) {
String sql1 = String.format("select value from %s where address='%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress());
List<Map<String, Object>> returnList = influxdbUtil.query(sql1);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
map.put("analysisVariable", Double.parseDouble(k.get("value").toString()));
map.put("analysisVariableId", Long.parseLong(idxBizUxfv.getSequenceNbr()));
map.put("analysisVariableId", Long.parseLong(IdxBizFanPointProcessVariableClassification.getSequenceNbr()));
params.add(map);
});
final List<Map<String, Object>> tempParams = params;
list.forEach(idxBizC80c -> {
logger.info("--------------------------------------------开始查询influxdb--------------------------------");
list.forEach(IdxBizFanPointVarCorrelation -> {
logger.info("---------------------------------风机相关性-----------开始查询influxdb--------------------------------");
List<Map<String, Object>> params1 = new ArrayList<>();
List<Map<String, Object>> requestParams = new ArrayList<>();
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, idxBizUxfv.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, idxBizC80c.getProcessIndexAddress());
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, IdxBizFanPointVarCorrelation.getProcessIndexAddress());
List<Map<String, Object>> returnList1 = influxdbUtil.query(sql);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
map.put("processVariable", Double.parseDouble(k.get("value").toString()));
map.put("processVariableId", Long.parseLong(idxBizC80c.getProcessPointId().toString()));
map.put("processVariableId", Long.parseLong(IdxBizFanPointVarCorrelation.getProcessPointId().toString()));
params1.add(map);
});
if (tempParams.size() >= params1.size()) {
......@@ -191,21 +244,65 @@ public class CommonServiceImpl {
requestParams = megreMapList(params1, tempParams);
}
if (!requestParams.isEmpty()) {
logger.info("------------------------------------------分析变量与工况变量相关性分析算法开始----------------------------------------");
logger.info("------------------------------风机相关性------------分析变量与工况变量相关性分析算法开始----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkxgxfxkey, requestParams);
String repsonse = HttpUtil.createPost(baseUrl + gkxgxfxurl).body(JSON.toJSONString(realParams)).execute().body();
try {
logger.info("response-------------" + repsonse);
TimeUnit.SECONDS.sleep(sleepTime);
logger.info("------------------------------------------分析变量与工况变量相关性分析算法结束----------------------------------------");
logger.info("----------------------------风机相关性--------------分析变量与工况变量相关性分析算法结束----------------------------------------");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
});
}
//遍历处理数据-组装风机
public void foreachHandlerConditionVariabAnalysePv(String tableName, List<IdxBizPvPointVarCorrelation> list, String startTime, String endTime, IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification) {
String sql1 = String.format("select value from %s where address='%s' ", tableName, idxBizPvPointProcessVariableClassification.getIndexAddress());
List<Map<String, Object>> returnList = influxdbUtil.query(sql1);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
map.put("analysisVariable", Double.parseDouble(k.get("value").toString()));
map.put("analysisVariableId", Long.parseLong(idxBizPvPointProcessVariableClassification.getSequenceNbr()));
params.add(map);
});
final List<Map<String, Object>> tempParams = params;
list.forEach(idxBizPvPointVarCorrelation -> {
logger.info("-------------------------------------光伏相关性-------开始查询influxdb--------------------------------");
List<Map<String, Object>> params1 = new ArrayList<>();
List<Map<String, Object>> requestParams = new ArrayList<>();
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, idxBizPvPointVarCorrelation.getProcessIndexAddress());
List<Map<String, Object>> returnList1 = influxdbUtil.query(sql);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
map.put("processVariable", Double.parseDouble(k.get("value").toString()));
map.put("processVariableId", Long.parseLong(idxBizPvPointVarCorrelation.getProcessPointId().toString()));
params1.add(map);
});
if (tempParams.size() >= params1.size()) {
requestParams = megreMapList(tempParams, params1);
} else {
requestParams = megreMapList(params1, tempParams);
}
if (!requestParams.isEmpty()) {
logger.info("---------------------------------光伏相关性---------分析变量与工况变量相关性分析算法开始----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkxgxfxkey, requestParams);
String repsonse = HttpUtil.createPost(baseUrl + gkxgxfxurl).body(JSON.toJSONString(realParams)).execute().body();
try {
logger.info("response----光伏相关性---------" + repsonse);
TimeUnit.SECONDS.sleep(sleepTime);
logger.info("----------------------------------光伏相关性--------分析变量与工况变量相关性分析算法结束----------------------------------------");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
});
}
public List<Map<String, Object>> megreMapList(List<Map<String, Object>> longList, List<Map<String, Object>> shortList) {
List<Map<String, Object>> resultList = new ArrayList<>();
for (int i = 0; i < longList.size(); i++) {
......@@ -227,68 +324,186 @@ public class CommonServiceImpl {
}
return resultList;
}
public void getConditionVariablesByTimeAnalyse1(String startTime, String endTime) {
HashMap<String, List<IdxBizUxfv>> IdxBizUxfvHashMap = getIdxBizUxfvListOfAnaLyse();
IdxBizUxfvHashMap.keySet().forEach(s -> {
List<IdxBizUxfv> list = IdxBizUxfvHashMap.get(s);
list.forEach(idxBizUxfv -> {
List<IdxBizC80c> gongkuangList = idxBizC80cMapper.selectList(new QueryWrapper<IdxBizC80c>().eq("ANALYSIS_GATEWAY_ID", idxBizUxfv.getGatewayId()).eq("ANALYSIS_POINT_ID", idxBizUxfv.getSequenceNbr()).orderByDesc("CORRELATION_COEFFICIENT").last("limit 0,3"));
foreachHandlerConditionVariabAnalyse1(s, gongkuangList, startTime, endTime, idxBizUxfv);
//中心值计算-风电
public void getFanConditionVariablesByTimeAnalyse1(String startTime, String endTime) {
HashMap<String, List<IdxBizFanPointProcessVariableClassification>> IdxBizFanPointProcessVariableClassificationHashMap = getIdxBizFanPointProcessVariableClassificationListOfAnaLyse();
IdxBizFanPointProcessVariableClassificationHashMap.keySet().forEach(s -> {
List<IdxBizFanPointProcessVariableClassification> list = IdxBizFanPointProcessVariableClassificationHashMap.get(s);
list.forEach(IdxBizFanPointProcessVariableClassification -> {
List<IdxBizFanPointVarCorrelation> gongkuangList = idxBizFanPointVarCorrelationMapper.selectList(new QueryWrapper<IdxBizFanPointVarCorrelation>().eq("ANALYSIS_GATEWAY_ID", IdxBizFanPointProcessVariableClassification.getGatewayId()).eq("ANALYSIS_POINT_ID", IdxBizFanPointProcessVariableClassification.getSequenceNbr()).orderByDesc("CORRELATION_COEFFICIENT").last("limit 0,3"));
foreachHandlerConditionVariabAnalyse1Fan(s, gongkuangList, startTime, endTime, IdxBizFanPointProcessVariableClassification);
});
});
}
//中心值计算-光伏
public void getPvConditionVariablesByTimeAnalyse1(String startTime, String endTime) {
HashMap<String, List<IdxBizPvPointProcessVariableClassification>> idxBizPvPointProcessVariableClassificationHashMap = getIdxBizPvPointProcessVariableClassificationListOfAnaLyse();
idxBizPvPointProcessVariableClassificationHashMap.keySet().forEach(s -> {
List<IdxBizPvPointProcessVariableClassification> list = idxBizPvPointProcessVariableClassificationHashMap.get(s);
list.forEach(idxBizPvPointProcessVariableClassification -> {
List<IdxBizPvPointVarCorrelation> gongkuangList = idxBizPvPointVarCorrelationMapper.selectList(new QueryWrapper<IdxBizPvPointVarCorrelation>().eq("ANALYSIS_GATEWAY_ID", idxBizPvPointProcessVariableClassification.getGatewayId()).eq("ANALYSIS_POINT_ID", idxBizPvPointProcessVariableClassification.getSequenceNbr()).orderByDesc("CORRELATION_COEFFICIENT").last("limit 0,3"));
foreachHandlerConditionVariabAnalyse1Pv(s, gongkuangList, startTime, endTime, idxBizPvPointProcessVariableClassification);
});
});
}
//中心值参数组装-风电
public void foreachHandlerConditionVariabAnalyse1Fan(String tableName, List<IdxBizFanPointVarCorrelation> list, String startTime, String endTime, IdxBizFanPointProcessVariableClassification IdxBizFanPointProcessVariableClassification) {
String sql0 = String.format("select value from %s where address='%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress());
List<Map<String, Object>> returnList = influxdbUtil.query(sql0);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
map.put("analysisVariable", Double.parseDouble(k.get("value").toString()));
map.put("analysisVariableId", Long.parseLong(IdxBizFanPointProcessVariableClassification.getSequenceNbr()));
params.add(map);
});
final List<Map<String, Object>> tempParams = params;
logger.info("--------------------------------------风机中心值------开始查询influxdb--------------------------------");
List<Map<String, Object>> params1 = new ArrayList<>();
List<Map<String, Object>> requestParams = new ArrayList<>();
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, list.get(0).getProcessIndexAddress());
String sql1 = String.format("select value from %s where address='%s' ", tableName, list.get(1).getProcessIndexAddress());
String sql2 = String.format("select value from %s where address='%s' ", tableName, list.get(2).getProcessIndexAddress());
List<HashMap<String, Object>> values = new ArrayList<>();
List<String> processPointIds = list.stream().map(IdxBizFanPointVarCorrelation -> IdxBizFanPointVarCorrelation.getProcessPointId().toString()).collect(Collectors.toList());
List<IdxBizFanPointProcessVariableClassification> idxBizFanPointProcessVariableClassificationList = idxBizFanPointProcessVariableClassificationMapper.selectList(new QueryWrapper<IdxBizFanPointProcessVariableClassification>().in("SEQUENCE_NBR", processPointIds));
//区间值1
HashMap<String, Object> value1 = new HashMap<>();
value1.put("processVariable1", idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue1());
value1.put("processVariable2", idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue1());
value1.put("processVariable3", idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue1());
values.add(value1);
//区间值2
HashMap<String, Object> value2 = new HashMap<>();
value2.put("processVariable1", idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue2());
value2.put("processVariable2", idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue2());
value2.put("processVariable3", idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue2());
values.add(value2);
//区间值3
HashMap<String, Object> value3 = new HashMap<>();
value3.put("processVariable1", idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue3());
value3.put("processVariable2", idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue3());
value3.put("processVariable3", idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue3());
values.add(value3);
//区间值4
HashMap<String, Object> value4 = new HashMap<>();
value4.put("processVariable1", idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue4());
value4.put("processVariable2", idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue4());
value4.put("processVariable3", idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue4());
values.add(value4);
//区间值5
HashMap<String, Object> value5 = new HashMap<>();
value5.put("processVariable1", idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue5());
value5.put("processVariable2", idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue5());
value5.put("processVariable3", idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue5());
values.add(value5);
List<Map<String, Object>> returnList0 = influxdbUtil.query(sql);
List<Map<String, Object>> maxList = returnList0;
List<Map<String, Object>> returnList1 = influxdbUtil.query(sql);
maxList = maxList.size() > returnList1.size() ? maxList : returnList1;
List<Map<String, Object>> returnList2 = influxdbUtil.query(sql);
maxList = maxList.size() > returnList2.size() ? maxList : returnList2;
for (int j = 0; j < maxList.size(); j++) {
Map<String, Object> map = new HashMap<>();
Map<String, Object> map1 = new HashMap<>();
Map<String, Object> map2 = new HashMap<>();
Map<String, Object> map3 = new HashMap<>();
if (j < returnList0.size() - 1) {
map1 = returnList0.get(j);
} else {
map1 = returnList0.get(returnList0.size() - 1);
}
if (j < returnList1.size() - 1) {
map2 = returnList1.get(j);
} else {
map2 = returnList1.get(returnList1.size() - 1);
}
if (j < returnList2.size() - 1) {
map3 = returnList2.get(j);
} else {
map3 = returnList2.get(returnList2.size() - 1);
}
map.put("processVariable1", Double.parseDouble(map1.get("value").toString()));
map.put("processVariable1Id", Long.parseLong(list.get(0).getProcessPointId().toString()));
map.put("processVariable2", Double.parseDouble(map2.get("value").toString()));
map.put("processVariable2Id", Long.parseLong(list.get(1).getProcessPointId().toString()));
map.put("processVariable3", Double.parseDouble(map3.get("value").toString()));
map.put("processVariable3Id", Long.parseLong(list.get(2).getProcessPointId().toString()));
params1.add(map);
if (tempParams.size() >= params1.size()) {
requestParams = megreMapList1(tempParams, params1);
} else {
requestParams = megreMapList1(params1, tempParams);
}
if (!requestParams.isEmpty()) {
logger.info("---------------------------------风机中心值---------开始调用中心值计算算法开始----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkzxzjskey1, requestParams);
realParams.put(gkzxzjskey2, values);
String response = HttpUtil.createPost(baseUrl + gkzxzjsurl).body(JSON.toJSONString(realParams)).execute().body();
try {
logger.info("------------------风机中心值--repsonse: " + response);
TimeUnit.SECONDS.sleep(sleepTime);
logger.info("-----------------------------------风机中心值-------调用中心值计算算法结束----------------------------------------");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
public void foreachHandlerConditionVariabAnalyse1(String tableName, List<IdxBizC80c> list, String startTime, String endTime, IdxBizUxfv idxBizUxfv) {
String sql0 = String.format("select value from %s where address='%s' ", tableName, idxBizUxfv.getIndexAddress());
}
//中心值参数组装-光伏
public void foreachHandlerConditionVariabAnalyse1Pv(String tableName, List<IdxBizPvPointVarCorrelation> list, String startTime, String endTime, IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification) {
String sql0 = String.format("select value from %s where address='%s' ", tableName, idxBizPvPointProcessVariableClassification.getIndexAddress());
List<Map<String, Object>> returnList = influxdbUtil.query(sql0);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
map.put("analysisVariable", Double.parseDouble(k.get("value").toString()));
map.put("analysisVariableId", Long.parseLong(idxBizUxfv.getSequenceNbr()));
map.put("analysisVariableId", Long.parseLong(idxBizPvPointProcessVariableClassification.getSequenceNbr()));
params.add(map);
});
final List<Map<String, Object>> tempParams = params;
logger.info("--------------------------------------------开始查询influxdb--------------------------------");
logger.info("-----------------------------------光伏中心值---------开始查询influxdb--------------------------------");
List<Map<String, Object>> params1 = new ArrayList<>();
List<Map<String, Object>> requestParams = new ArrayList<>();
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, idxBizUxfv.getIndexAddress(), startTime, endTime);
// String sql = String.format("select value from %s where address='%s' and where time >= '%s' and where time <= '%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, list.get(0).getProcessIndexAddress());
String sql1 = String.format("select value from %s where address='%s' ", tableName, list.get(1).getProcessIndexAddress());
String sql2 = String.format("select value from %s where address='%s' ", tableName, list.get(2).getProcessIndexAddress());
List<HashMap<String, Object>> values = new ArrayList<>();
List<String> processPointIds = list.stream().map(idxBizC80c -> idxBizC80c.getProcessPointId().toString()).collect(Collectors.toList());
List<IdxBizUxfv> idxBizUxfvList = idxBizUxfvMapper.selectList(new QueryWrapper<IdxBizUxfv>().in("SEQUENCE_NBR", processPointIds));
List<String> processPointIds = list.stream().map(idxBizPvPointVarCorrelation -> idxBizPvPointVarCorrelation.getProcessPointId().toString()).collect(Collectors.toList());
List<IdxBizPvPointProcessVariableClassification> idxBizPvPointProcessVariableClassificationList = idxBizPvPointProcessVariableClassificationMapper.selectList(new QueryWrapper<IdxBizPvPointProcessVariableClassification>().in("SEQUENCE_NBR", processPointIds));
//区间值1
HashMap<String, Object> value1 = new HashMap<>();
value1.put("processVariable1", idxBizUxfvList.get(2).getIntervalValue1());
value1.put("processVariable2", idxBizUxfvList.get(1).getIntervalValue1());
value1.put("processVariable3", idxBizUxfvList.get(0).getIntervalValue1());
value1.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue1());
value1.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue1());
value1.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue1());
values.add(value1);
//区间值2
HashMap<String, Object> value2 = new HashMap<>();
value2.put("processVariable1", idxBizUxfvList.get(2).getIntervalValue2());
value2.put("processVariable2", idxBizUxfvList.get(1).getIntervalValue2());
value2.put("processVariable3", idxBizUxfvList.get(0).getIntervalValue2());
value2.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue2());
value2.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue2());
value2.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue2());
values.add(value2);
//区间值3
HashMap<String, Object> value3 = new HashMap<>();
value3.put("processVariable1", idxBizUxfvList.get(2).getIntervalValue3());
value3.put("processVariable2", idxBizUxfvList.get(1).getIntervalValue3());
value3.put("processVariable3", idxBizUxfvList.get(0).getIntervalValue3());
value3.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue3());
value3.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue3());
value3.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue3());
values.add(value3);
//区间值4
HashMap<String, Object> value4 = new HashMap<>();
value4.put("processVariable1", idxBizUxfvList.get(2).getIntervalValue4());
value4.put("processVariable2", idxBizUxfvList.get(1).getIntervalValue4());
value4.put("processVariable3", idxBizUxfvList.get(0).getIntervalValue4());
value4.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue4());
value4.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue4());
value4.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue4());
values.add(value4);
//区间值5
HashMap<String, Object> value5 = new HashMap<>();
value5.put("processVariable1", idxBizUxfvList.get(2).getIntervalValue5());
value5.put("processVariable2", idxBizUxfvList.get(1).getIntervalValue5());
value5.put("processVariable3", idxBizUxfvList.get(0).getIntervalValue5());
value5.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue5());
value5.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue5());
value5.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue5());
values.add(value5);
List<Map<String, Object>> returnList0 = influxdbUtil.query(sql);
List<Map<String, Object>> maxList = returnList0;
......@@ -329,15 +544,15 @@ public class CommonServiceImpl {
requestParams = megreMapList1(params1, tempParams);
}
if (!requestParams.isEmpty()) {
logger.info("------------------------------------------开始调用中心值计算算法开始----------------------------------------");
logger.info("-------------------------------------光伏中心值-----开始调用中心值计算算法----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkzxzjskey1, requestParams);
realParams.put(gkzxzjskey2, values);
String response = HttpUtil.createPost(baseUrl + gkzxzjsurl).body(JSON.toJSONString(realParams)).execute().body();
try {
logger.info("--------------------repsonse: " + response);
logger.info("-------------光伏中心值-------repsonse: " + response);
TimeUnit.SECONDS.sleep(sleepTime);
logger.info("------------------------------------------调用中心值计算算法结束----------------------------------------");
logger.info("-----------------------------------光伏中心值-------调用中心值计算算法结束----------------------------------------");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -375,8 +590,8 @@ public class CommonServiceImpl {
public List<Map<String, Object>> getInfluxdbDataByConditon(String stationType, String pointId, String startTime, String endTime) {
String sql = "";
if ("FD".equals(stationType)) {
IdxBizUxfv idxBizUxfv = idxBizUxfvMapper.selectById(pointId);
sql = String.format("select * from iot_data_%s where address ='%s' and time > '%s' and time < '%s' ;", idxBizUxfv.getGatewayId(), idxBizUxfv.getIndexAddress(), startTime, endTime);
IdxBizFanPointProcessVariableClassification idxBizFanPointProcessVariableClassification = idxBizFanPointProcessVariableClassificationMapper.selectById(pointId);
sql = String.format("select * from iot_data_%s where address ='%s' and time > '%s' and time < '%s' ;", idxBizFanPointProcessVariableClassification.getGatewayId(), idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
} else {
IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification = idxBizPvPointProcessVariableClassificationMapper.selectById(pointId);
sql = String.format("select * from iot_data_%s where address ='%s' and time > '%s' and time < '%s' ;", idxBizPvPointProcessVariableClassification.getGatewayId(), idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanPointProcessVariableClassificationMapper">
<select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanPointProcessVariableClassification">
SELECT b.*,
ibfpvcv.PROCESS_POINT1_ID as pointOneId,
ibfpvcv.PROCESS_POINT2_ID as pointTwoId,
ibfpvcv.PROCESS_POINT3_ID as pointThreeId,
ibfpvcv.ANALYSIS_POINT_ID as pointId
FROM (
SELECT *
FROM idx_biz_uxfv uxfv
WHERE uxfv.SEQUENCE_NBR IN (
SELECT PROCESS_POINT1_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
UNION ALL
SELECT PROCESS_POINT2_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
UNION ALL
SELECT PROCESS_POINT3_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
UNION ALL
SELECT ANALYSIS_POINT_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
)) AS b,
idx_biz_fan_point_var_central_value ibfpvcv
WHERE b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
GROUP BY b.SEQUENCE_NBR
</select>
<select id="gateWayIdListFan" resultType="java.lang.String">
select GATEWAY_ID from idx_biz_fan_point_process_variable_classification group by GATEWAY_ID;
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizPvPointProcessVariableClassificationMapper">
<select id="gateWayIdListPv" resultType="java.lang.String">
select GATEWAY_ID from idx_biz_pv_point_process_variable_classification group by GATEWAY_ID;
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment