Commit f4e1bcef authored by caotao's avatar caotao

1.算法优化代码提交

parent 5d6abc73
......@@ -8,16 +8,21 @@ import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.*;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service
public class CommonServiceImpl {
//utc时间格式
public static final String FORMAT_UTC = "yyyy-MM-dd'T'HH:mm:ss'Z'";
private static final Logger logger = LoggerFactory.getLogger(CommonServiceImpl.class);
//-----------------调用算法时间间隔----------------
@Value("${sleep.time:10}")
......@@ -30,12 +35,12 @@ public class CommonServiceImpl {
@Value("${gkblhf.key:input 1}")
String gkqjhfkey;
//----------------工况变量相关性计算请求属性配置------------------------
@Value("${gkxgxfx.url:120b1159-24d9-4fdf-82af-22b71603272b}")
@Value("${gkxgxfx.url:f5457bfe-0780-418d-9287-c4f31d3fb4c7}")
String gkxgxfxurl;
@Value("${gkxgxfx.key:input 1}")
String gkxgxfxkey;
//----------------工况变量中心值计算相关请求属性配置------------------------
@Value("${gkzxzjs.url:90d3b6f8-88ab-4f3d-984e-eb96fc9d31ce}")
@Value("${gkzxzjs.url:ee855fc0-cb37-4b11-96c6-e61e195436bc}")
String gkzxzjsurl;
@Value("${gkzxzjs.key:input 1}")
String gkzxzjskey1;
......@@ -90,22 +95,29 @@ public class CommonServiceImpl {
});
return idxBizPvPointProcessVariableClassificationHashMap;
}
//遍历工况列表数据-风机
public void getFanConditionVariablesByTime(String startTime, String endTime) {
HashMap<String, List<IdxBizFanPointProcessVariableClassification>> idxBizFanPointProcessVariableClassificationHashMap = getIdxBizFanPointProcessVariableClassificationList();
idxBizFanPointProcessVariableClassificationHashMap.keySet().forEach(s -> {
List<IdxBizFanPointProcessVariableClassification> list = idxBizFanPointProcessVariableClassificationHashMap.get(s);
if (list.size() > 0) {
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);
if (list.size() > 0) {
foreachHandlerConditionVariabPv(s, list, startTime, endTime);
}
});
}
//遍历查询数据并调用并计算-风机
public void foreachHandlerConditionVariabFan(String tableName, List<IdxBizFanPointProcessVariableClassification> list, String startTime, String endTime) {
list.forEach(idxBizFanPointProcessVariableClassification -> {
......@@ -167,6 +179,7 @@ public class CommonServiceImpl {
});
}
//获取相关性基础数据-风机
public HashMap<String, List<IdxBizFanPointProcessVariableClassification>> getIdxBizFanPointProcessVariableClassificationListOfAnaLyse() {
......@@ -179,6 +192,7 @@ public class CommonServiceImpl {
});
return IdxBizFanPointProcessVariableClassificationHashMap;
}
//获取相关性基础数据-光伏
public HashMap<String, List<IdxBizPvPointProcessVariableClassification>> getIdxBizPvPointProcessVariableClassificationListOfAnaLyse() {
......@@ -191,6 +205,7 @@ public class CommonServiceImpl {
});
return idxBizPvPointProcessVariableClassificationHashMap;
}
//相关性分析-风机入口
public void getFanConditionVariablesByTimeAnalyse(String startTime, String endTime) {
HashMap<String, List<IdxBizFanPointProcessVariableClassification>> idxBizFanPointProcessVariableClassificationHashMap = getIdxBizFanPointProcessVariableClassificationListOfAnaLyse();
......@@ -198,10 +213,13 @@ public class CommonServiceImpl {
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()));
if (gongkuangList.size() > 0) {
foreachHandlerConditionVariabAnalyseFan(s, gongkuangList, startTime, endTime, IdxBizFanPointProcessVariableClassification);
}
});
});
}
//相关性分析-光伏入口
public void getPvConditionVariablesByTimeAnalyse(String startTime, String endTime) {
HashMap<String, List<IdxBizPvPointProcessVariableClassification>> idxBizPvPointProcessVariableClassificationHashMap = getIdxBizPvPointProcessVariableClassificationListOfAnaLyse();
......@@ -209,35 +227,39 @@ public class CommonServiceImpl {
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()));
if (gongkuangList.size() > 0) {
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());
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(IdxBizFanPointProcessVariableClassification.getSequenceNbr()));
map.put("analysisVariableId", Long.parseLong(idxBizFanPointProcessVariableClassification.getSequenceNbr()));
params.add(map);
});
final List<Map<String, Object>> tempParams = params;
list.forEach(IdxBizFanPointVarCorrelation -> {
List<Map<String, Object>> tempParams = params;
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, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, IdxBizFanPointVarCorrelation.getProcessIndexAddress());
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(IdxBizFanPointVarCorrelation.getProcessPointId().toString()));
map.put("processVariableId", Long.parseLong(idxBizFanPointVarCorrelation.getProcessPointId().toString()));
params1.add(map);
});
if (tempParams.size() >= params1.size()) {
requestParams = megreMapList(tempParams, params1);
} else {
......@@ -247,6 +269,7 @@ public class CommonServiceImpl {
logger.info("------------------------------风机相关性------------分析变量与工况变量相关性分析算法开始----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkxgxfxkey, requestParams);
logger.info("------------------------------风机相关性------------分析变量与工况变量相关性分析算参数---------------------------------------" + JSON.toJSONString(realParams));
String repsonse = HttpUtil.createPost(baseUrl + gkxgxfxurl).body(JSON.toJSONString(realParams)).execute().body();
try {
logger.info("response-------------" + repsonse);
......@@ -258,6 +281,7 @@ public class CommonServiceImpl {
}
});
}
//遍历处理数据-组装风机
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());
......@@ -269,7 +293,6 @@ public class CommonServiceImpl {
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<>();
......@@ -283,10 +306,10 @@ public class CommonServiceImpl {
map.put("processVariableId", Long.parseLong(idxBizPvPointVarCorrelation.getProcessPointId().toString()));
params1.add(map);
});
if (tempParams.size() >= params1.size()) {
requestParams = megreMapList(tempParams, params1);
if (params.size() >= params1.size()) {
requestParams = megreMapList(params, params1);
} else {
requestParams = megreMapList(params1, tempParams);
requestParams = megreMapList(params1, params);
}
if (!requestParams.isEmpty()) {
logger.info("---------------------------------光伏相关性---------分析变量与工况变量相关性分析算法开始----------------------------------------");
......@@ -303,16 +326,19 @@ public class CommonServiceImpl {
}
});
}
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++) {
Map<String, Object> map = longList.get(i);
Map<String, Object> mapOfShortList = null;
Map<String, Object> map = new HashMap<>();
map.putAll(longList.get(i));
Map<String, Object> mapOfShortList = new HashMap<>();
if (i < shortList.size() - 1) {
mapOfShortList = shortList.get(i);
mapOfShortList.putAll(shortList.get(i));
} else {
mapOfShortList = shortList.get(shortList.size() - 1);
mapOfShortList.putAll(shortList.get(shortList.size() - 1));
}
if (!map.containsKey("processVariable")) {
map.put("processVariable", mapOfShortList.get("processVariable"));
map.put("processVariableId", mapOfShortList.get("processVariableId"));
......@@ -324,6 +350,7 @@ public class CommonServiceImpl {
}
return resultList;
}
//中心值计算-风电
public void getFanConditionVariablesByTimeAnalyse1(String startTime, String endTime) {
HashMap<String, List<IdxBizFanPointProcessVariableClassification>> IdxBizFanPointProcessVariableClassificationHashMap = getIdxBizFanPointProcessVariableClassificationListOfAnaLyse();
......@@ -331,10 +358,13 @@ public class CommonServiceImpl {
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"));
if (gongkuangList.size() > 0) {
foreachHandlerConditionVariabAnalyse1Fan(s, gongkuangList, startTime, endTime, IdxBizFanPointProcessVariableClassification);
}
});
});
}
//中心值计算-光伏
public void getPvConditionVariablesByTimeAnalyse1(String startTime, String endTime) {
HashMap<String, List<IdxBizPvPointProcessVariableClassification>> idxBizPvPointProcessVariableClassificationHashMap = getIdxBizPvPointProcessVariableClassificationListOfAnaLyse();
......@@ -342,10 +372,14 @@ public class CommonServiceImpl {
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"));
if (gongkuangList.size() > 0) {
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());
......@@ -357,7 +391,6 @@ public class CommonServiceImpl {
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<>();
......@@ -370,33 +403,33 @@ public class CommonServiceImpl {
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());
value1.put("processVariable1", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue1())?0.0:idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue1());
value1.put("processVariable2", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue1())?0.0:idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue1());
value1.put("processVariable3", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue1())?0.0: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());
value2.put("processVariable1", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue2())?0.0:idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue2());
value2.put("processVariable2", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue2())?0.0:idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue2());
value2.put("processVariable3", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue2())?0.0: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());
value3.put("processVariable1", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue3())?0.0:idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue3());
value3.put("processVariable2", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue3())?0.0:idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue3());
value3.put("processVariable3", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue3())?0.0: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());
value4.put("processVariable1", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue4())?0.0:idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue4());
value4.put("processVariable2", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue4())?0.0:idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue4());
value4.put("processVariable3", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue4())?0.0: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());
value5.put("processVariable1", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue5())?0.0:idxBizFanPointProcessVariableClassificationList.get(2).getIntervalValue5());
value5.put("processVariable2", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue5())?0.0:idxBizFanPointProcessVariableClassificationList.get(1).getIntervalValue5());
value5.put("processVariable3", ObjectUtils.isEmpty(idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue5())?0.0:idxBizFanPointProcessVariableClassificationList.get(0).getIntervalValue5());
values.add(value5);
List<Map<String, Object>> returnList0 = influxdbUtil.query(sql);
List<Map<String, Object>> maxList = returnList0;
......@@ -431,16 +464,17 @@ public class CommonServiceImpl {
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);
if (params.size() >= params1.size()) {
requestParams = megreMapList1(params, params1);
} else {
requestParams = megreMapList1(params1, tempParams);
requestParams = megreMapList1(params1, params);
}
if (!requestParams.isEmpty()) {
logger.info("---------------------------------风机中心值---------开始调用中心值计算算法开始----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkzxzjskey1, requestParams);
realParams.put(gkzxzjskey2, values);
logger.info("------------------------------风机中心值------请求参数---------------------------------------" + JSON.toJSONString(realParams));
String response = HttpUtil.createPost(baseUrl + gkzxzjsurl).body(JSON.toJSONString(realParams)).execute().body();
try {
logger.info("------------------风机中心值--repsonse: " + response);
......@@ -453,6 +487,7 @@ public class CommonServiceImpl {
}
}
//中心值参数组装-光伏
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());
......@@ -464,7 +499,6 @@ public class CommonServiceImpl {
map.put("analysisVariableId", Long.parseLong(idxBizPvPointProcessVariableClassification.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<>();
......@@ -477,33 +511,33 @@ public class CommonServiceImpl {
List<IdxBizPvPointProcessVariableClassification> idxBizPvPointProcessVariableClassificationList = idxBizPvPointProcessVariableClassificationMapper.selectList(new QueryWrapper<IdxBizPvPointProcessVariableClassification>().in("SEQUENCE_NBR", processPointIds));
//区间值1
HashMap<String, Object> value1 = new HashMap<>();
value1.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue1());
value1.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue1());
value1.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue1());
value1.put("processVariable1", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue1())?0.0:idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue1());
value1.put("processVariable2", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue1())?0.0:idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue1());
value1.put("processVariable3", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue1())?0.0:idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue1());
values.add(value1);
//区间值2
HashMap<String, Object> value2 = new HashMap<>();
value2.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue2());
value2.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue2());
value2.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue2());
value2.put("processVariable1", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue2())?0.0:idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue2());
value2.put("processVariable2", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue2())?0.0:idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue2());
value2.put("processVariable3", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue2())?0.0:idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue2());
values.add(value2);
//区间值3
HashMap<String, Object> value3 = new HashMap<>();
value3.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue3());
value3.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue3());
value3.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue3());
value3.put("processVariable1", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue3())?0.0:idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue3());
value3.put("processVariable2", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue3())?0.0:idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue3());
value3.put("processVariable3", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue3())?0.0:idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue3());
values.add(value3);
//区间值4
HashMap<String, Object> value4 = new HashMap<>();
value4.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue4());
value4.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue4());
value4.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue4());
value4.put("processVariable1", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue4())?0.0:idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue4());
value4.put("processVariable2", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue4())?0.0:idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue4());
value4.put("processVariable3", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue4())?0.0:idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue4());
values.add(value4);
//区间值5
HashMap<String, Object> value5 = new HashMap<>();
value5.put("processVariable1", idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue5());
value5.put("processVariable2", idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue5());
value5.put("processVariable3", idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue5());
value5.put("processVariable1", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue5())?0.0:idxBizPvPointProcessVariableClassificationList.get(2).getIntervalValue5());
value5.put("processVariable2", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue5())?0.0:idxBizPvPointProcessVariableClassificationList.get(1).getIntervalValue5());
value5.put("processVariable3", ObjectUtils.isEmpty(idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue5())?0.0:idxBizPvPointProcessVariableClassificationList.get(0).getIntervalValue5());
values.add(value5);
List<Map<String, Object>> returnList0 = influxdbUtil.query(sql);
List<Map<String, Object>> maxList = returnList0;
......@@ -538,10 +572,10 @@ public class CommonServiceImpl {
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);
if (params.size() >= params1.size()) {
requestParams = megreMapList1(params, params1);
} else {
requestParams = megreMapList1(params1, tempParams);
requestParams = megreMapList1(params1, params);
}
if (!requestParams.isEmpty()) {
logger.info("-------------------------------------光伏中心值-----开始调用中心值计算算法----------------------------------------");
......@@ -564,12 +598,13 @@ public class CommonServiceImpl {
public List<Map<String, Object>> megreMapList1(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++) {
Map<String, Object> map = longList.get(i);
Map<String, Object> mapOfShortList = null;
Map<String, Object> map = new HashMap<>();
map.putAll(longList.get(i));
Map<String, Object> mapOfShortList = new HashMap<>();
if (i < shortList.size() - 1) {
mapOfShortList = shortList.get(i);
mapOfShortList.putAll(shortList.get(i));
} else {
mapOfShortList = shortList.get(shortList.size() - 1);
mapOfShortList.putAll(shortList.get(shortList.size() - 1));
}
if (!map.containsKey("processVariable1")) {
map.put("processVariable1", mapOfShortList.get("processVariable1"));
......@@ -598,4 +633,9 @@ public class CommonServiceImpl {
}
return influxdbUtil.query(sql);
}
public String getUtcTimeString(String timeStr) {
SimpleDateFormat dateFormat = new SimpleDateFormat(FORMAT_UTC);
return dateFormat.format(timeStr);
}
}
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