Commit 5eb668ff authored by tangwei's avatar tangwei

解决冲突

parents 6e5b6b4e 0729c493
......@@ -54,11 +54,11 @@ import java.net.InetAddress;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class})
//@SpringBootApplication
public class AmosJxiopAnalyseApplication {
// @Autowired
// private EmqKeeper emqKeeper;
//
// @Autowired
// private SyncESDataToTdengineMqttListener syncESDataToTdengineMqttListener;
@Autowired
private EmqKeeper emqKeeper;
@Autowired
private SyncESDataToTdengineMqttListener syncESDataToTdengineMqttListener;
private static final Logger logger = LoggerFactory.getLogger(AmosJxiopAnalyseApplication.class);
......@@ -74,8 +74,9 @@ public class AmosJxiopAnalyseApplication {
+ path + "/doc.html\n" + "----------------------------------------------------------");
}
// @Bean
// public void initMqtt() throws Exception {
// emqKeeper.subscript("sync_esdata_to_tdengine_notice", 2,syncESDataToTdengineMqttListener );
// }
@Bean
public void initMqtt() throws Exception {
//订阅固化周期性数据成功的消息
emqKeeper.subscript("sync_esdata_to_tdengine_notice", 1,syncESDataToTdengineMqttListener );
}
}
......@@ -53,11 +53,17 @@ import java.util.stream.Collectors;
@Service("commonServiceImpl")
@Configuration
public class CommonServiceImpl {
private static final HashMap<String, Object> cacheExecInfo = new HashMap<>();
//utc时间格式
public static final String FORMAT_UTC = "yyyy-MM-dd'T'HH:mm:ss'Z'";
public static final String FORMAT_DEFAULT = "yyyy-MM-dd HH:mm:ss";
private static final HashMap<String, Object> cacheExecInfo = new HashMap<>();
private static final Logger logger = LoggerFactory.getLogger(CommonServiceImpl.class);
private static final BlockingQueue<IdxBizFanPointProcessVariableClassification> fifo = new LinkedBlockingQueue<>(5000);
/**
* 以下为相关性-光伏-方法
*/
private static final BlockingQueue<IdxBizPvPointProcessVariableClassification> fifoPv = new LinkedBlockingQueue<>(5000);
private static int threadNumber = Runtime.getRuntime().availableProcessors() * 2;
//-----------------调用算法时间间隔----------------
@Value("${sleep.time:10}")
Integer sleepTime;
......@@ -65,13 +71,10 @@ public class CommonServiceImpl {
Integer zxzsleepTime;
@Value("${base.url:http://139.9.173.44:30009/maas/maas/processes/api/}")
String baseUrl;
String baseUrlXGX = "http://139.9.173.44:8052/intelligent-analysis/correlation";
//指数分析URL
@Value("${base.url.zsfx:http://139.9.173.44:8052/intelligent-analysis/index-analysis}")
String baseUrlZSFX;
//----------------工况变量工况变量划分请求属性配置------------------------
@Value("${gkblhffan.url:74435221-796d-43c0-ae72-319792b8f89e}")
String gkqjhfurlfan;
......@@ -93,18 +96,29 @@ public class CommonServiceImpl {
String gkzxzjsurlpv;
@Value("${gkzxzjs.key:input 1}")
String gkzxzjskey1;
@Value("${gkzxzjs.key:input 2}")
String gkzxzjskey2;
//----------------健康指数值计算相关请求属性配置------------------------
@Value("${jkzsjs.url:aec8ad20-6d63-4f62-99f6-2d71756cacb6}")
String jkzsjsfjurl;
@Value("${jkzsjs.url:a9a404d4-6ead-440e-9fcb-b95d5a239b10}")
String jkzsgfurl;
@Value("${openHealth:true}")
Boolean openHealth;
@Autowired
IdxBizFanHealthIndexServiceImpl idxBizFanHealthIndexService;
@Autowired
IdxBizPvHealthIndexServiceImpl idxBizPvHealthIndexService;
@Autowired
IdxBizFanHealthLevelMapper idxBizFanHealthLevelMapper;
@Autowired
IdxBizPvHealthLevelMapper idxBizPvHealthLevelMapper;
@Autowired
IdxBizFanPointVarCentralValueMapper idxBizFanPointVarCentralValueMapper;
@Autowired
IdxBizPvPointVarCentralValueMapper idxBizPvPointVarCentralValueMapper;
@Autowired
HealthStatusIndicatorServiceImpl healthStatusIndicatorService;
// {"tableName": "idx_biz_fan_point_process_variable_classification"} 风机工况变量划分
// {"tableName": "idx_biz_pv_point_process_variable_classification"} 光伏工况变量画分
// {"tableName": "idx_biz_fan_point_var_correlation"} 风机相关性
......@@ -117,31 +131,11 @@ public class CommonServiceImpl {
private IdxBizFanPointVarCorrelationMapper idxBizFanPointVarCorrelationMapper;
@Autowired
private IdxBizPvPointVarCorrelationMapper idxBizPvPointVarCorrelationMapper;
@Autowired
private IndicatorDataMapper indicatorDataMapper;
@Autowired
IdxBizFanHealthIndexServiceImpl idxBizFanHealthIndexService;
@Autowired
IdxBizPvHealthIndexServiceImpl idxBizPvHealthIndexService;
@Autowired
IdxBizFanHealthLevelMapper idxBizFanHealthLevelMapper;
@Autowired
IdxBizPvHealthLevelMapper idxBizPvHealthLevelMapper;
@Autowired
private ElasticsearchRestTemplate elasticsearchTemplate;
@Autowired
IdxBizFanPointVarCentralValueMapper idxBizFanPointVarCentralValueMapper;
@Autowired
IdxBizPvPointVarCentralValueMapper idxBizPvPointVarCentralValueMapper;
@Autowired
HealthStatusIndicatorServiceImpl healthStatusIndicatorService;
/**
* @return
* @deprecated 获取工况变量列表风机
......@@ -153,7 +147,7 @@ public class CommonServiceImpl {
List<IdxBizFanPointProcessVariableClassification> IdxBizFanPointProcessVariableClassificationList = idxBizFanPointProcessVariableClassificationMapper.selectList(new QueryWrapper<IdxBizFanPointProcessVariableClassification>().isNotNull("SEQUENCE_NBR").eq("TAG_CODE", "工况变量"));
List<IdxBizFanPointProcessVariableClassification> finalIdxBizFanPointProcessVariableClassificationList = IdxBizFanPointProcessVariableClassificationList;
gateWayIdList.forEach(s -> {
idxBizFanPointProcessVariableClassification.put( s, finalIdxBizFanPointProcessVariableClassificationList.stream().filter(idxBizFanPointProcessVariableClassification1 -> idxBizFanPointProcessVariableClassification1.getGatewayId().toString().equals(s)).collect(Collectors.toList()));
idxBizFanPointProcessVariableClassification.put(s, finalIdxBizFanPointProcessVariableClassificationList.stream().filter(idxBizFanPointProcessVariableClassification1 -> idxBizFanPointProcessVariableClassification1.getGatewayId().toString().equals(s)).collect(Collectors.toList()));
});
return idxBizFanPointProcessVariableClassification;
}
......@@ -204,7 +198,6 @@ public class CommonServiceImpl {
}
}
public String getPvConditionVariablesByTimeThread(String startTime, String endTime) {
String result = "开始计算";
if (!ObjectUtils.isEmpty(cacheExecInfo.get(SmartAnalyseEnum.PV_QJHF.getKey()))) {
......@@ -243,7 +236,7 @@ public class CommonServiceImpl {
logger.info("--------------------------------------------风机::开始查询influxdb--------------------------------");
List<Map<String, Object>> params = new ArrayList<>();
// String sql = String.format("select value from %s where address='%s' and time >= '%s' and time <= '%s' ", tableName, idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime, tableName);
//List<Map<String, Object>> returnList = influxdbUtil.query(sql);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
......@@ -290,7 +283,7 @@ public class CommonServiceImpl {
List<Map<String, Object>> params = new ArrayList<>();
/* String sql = String.format("select value from %s where address='%s' and time >= '%s' and time <= '%s' ", tableName, idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
List<Map<String, Object>> returnList = influxdbUtil.query(sql);*/
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime, tableName);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
......@@ -427,7 +420,7 @@ public class CommonServiceImpl {
// String sql1 = String.format("select value from %s where address='%s' and time >= '%s' and time <= '%s' ", tableName, idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
// List<Map<String, Object>> returnList = influxdbUtil.query(sql1);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime, tableName);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
......@@ -442,7 +435,7 @@ public class CommonServiceImpl {
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 time >= '%s' and time <= '%s' ", tableName, idxBizFanPointVarCorrelation.getProcessIndexAddress(), startTime, endTime);
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointVarCorrelation.getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointVarCorrelation.getProcessIndexAddress(), startTime, endTime, tableName);
// List<Map<String, Object>> returnList1 = influxdbUtil.query(sql);
returnList1.forEach((k) -> {
......@@ -489,7 +482,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' and time >= '%s' and time <= '%s' ", tableName, idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
// List<Map<String, Object>> returnList = influxdbUtil.query(sql1);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime, tableName);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
......@@ -642,7 +635,7 @@ public class CommonServiceImpl {
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' and time >= '%s' and time <= '%s' ", tableName, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
// List<Map<String, Object>> returnList = influxdbUtil.query(sql0);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime, tableName);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
......@@ -691,9 +684,9 @@ public class CommonServiceImpl {
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<IndicatorData> returnList0 = indicatorDataMapper.selectDataByAddressAndtime(list.get(0).getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(list.get(1).getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList2 = indicatorDataMapper.selectDataByAddressAndtime(list.get(2).getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList0 = indicatorDataMapper.selectDataByAddressAndtime(list.get(0).getProcessIndexAddress(), startTime, endTime, tableName);
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(list.get(1).getProcessIndexAddress(), startTime, endTime, tableName);
List<IndicatorData> returnList2 = indicatorDataMapper.selectDataByAddressAndtime(list.get(2).getProcessIndexAddress(), startTime, endTime, tableName);
// List<Map<String, Object>> returnList0 = influxdbUtil.query(sql);
List<IndicatorData> maxList = returnList0;
......@@ -789,7 +782,7 @@ public class CommonServiceImpl {
//中心值参数组装-光伏
public void foreachHandlerConditionVariabAnalyse1Pv(String tableName, List<IdxBizPvPointVarCorrelation> list, String startTime, String endTime, IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification) {
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime, tableName);
//String sql0 = String.format("select value from %s where address='%s' and time >= '%s' and time <= '%s' ", tableName, idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
//List<Map<String, Object>> returnList = influxdbUtil.query(sql0);
......@@ -807,9 +800,9 @@ public class CommonServiceImpl {
// String sql = String.format("select value from %s where address='%s' and time >= '%s' and time <= '%s' ", tableName, list.get(0).getProcessIndexAddress(), startTime, endTime);
// String sql1 = String.format("select value from %s where address='%s' and time >= '%s' and time <= '%s' ", tableName, list.get(1).getProcessIndexAddress(), startTime, endTime);
// String sql2 = String.format("select value from %s where address='%s' and time >= '%s' and time <= '%s' ", tableName, list.get(2).getProcessIndexAddress(), startTime, endTime);
List<IndicatorData> returnList0 = indicatorDataMapper.selectDataByAddressAndtime(list.get(0).getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(list.get(1).getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList2 = indicatorDataMapper.selectDataByAddressAndtime(list.get(2).getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList0 = indicatorDataMapper.selectDataByAddressAndtime(list.get(0).getProcessIndexAddress(), startTime, endTime, tableName);
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(list.get(1).getProcessIndexAddress(), startTime, endTime, tableName);
List<IndicatorData> returnList2 = indicatorDataMapper.selectDataByAddressAndtime(list.get(2).getProcessIndexAddress(), startTime, endTime, tableName);
List<HashMap<String, Object>> values = new ArrayList<>();
List<String> processPointIds = list.stream().map(idxBizPvPointVarCorrelation -> idxBizPvPointVarCorrelation.getProcessPointId().toString()).collect(Collectors.toList());
......@@ -968,11 +961,11 @@ public class CommonServiceImpl {
String sql = "";
List<IndicatorData> result = new ArrayList<>();
if ("FD".equals(stationType)) {
IdxBizFanPointProcessVariableClassification idxBizFanPointProcessVariableClassification = idxBizFanPointProcessVariableClassificationMapper.selectOne(new QueryWrapper<IdxBizFanPointProcessVariableClassification>().eq("INDEX_ADDRESS", pointId).eq("TAG_CODE","分析变量"));
result = indicatorDataMapper.selectDataByAddressAndtimeTs(idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime,idxBizFanPointProcessVariableClassification.getGatewayId());
IdxBizFanPointProcessVariableClassification idxBizFanPointProcessVariableClassification = idxBizFanPointProcessVariableClassificationMapper.selectOne(new QueryWrapper<IdxBizFanPointProcessVariableClassification>().eq("INDEX_ADDRESS", pointId).eq("TAG_CODE", "分析变量"));
result = indicatorDataMapper.selectDataByAddressAndtimeTs(idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime, idxBizFanPointProcessVariableClassification.getGatewayId());
} else {
IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification = idxBizPvPointProcessVariableClassificationMapper.selectOne(new QueryWrapper<IdxBizPvPointProcessVariableClassification>().eq("INDEX_ADDRESS", pointId).eq("TAG_CODE","分析变量"));
result = indicatorDataMapper.selectDataByAddressAndtimeTs(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime,idxBizPvPointProcessVariableClassification.getGatewayId());
IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification = idxBizPvPointProcessVariableClassificationMapper.selectOne(new QueryWrapper<IdxBizPvPointProcessVariableClassification>().eq("INDEX_ADDRESS", pointId).eq("TAG_CODE", "分析变量"));
result = indicatorDataMapper.selectDataByAddressAndtimeTs(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime, idxBizPvPointProcessVariableClassification.getGatewayId());
}
List<String> seriesData_valuse = new ArrayList<>();
List<String> axisData_valuse = new ArrayList<>();
......@@ -998,7 +991,7 @@ public class CommonServiceImpl {
return s;
}
// @Scheduled(cron = "0 0/5 * * * ?")
// @Scheduled(cron = "0 0/5 * * * ?")
public void healthWarningMinuteByFJ() {
Date time = new Date();
List<IdxBizFanPointProcessVariableClassificationDto> data = idxBizFanPointProcessVariableClassificationMapper.getInfluxDBData();
......@@ -1051,16 +1044,16 @@ public class CommonServiceImpl {
double value4 = 0.00;
for (IdxBizFanPointProcessVariableClassificationDto datum : data) {
if (idxBizUhef.getProcessPoint1Id().equals(datum.getSequenceNbr())) {
value1 = datum.getCurrentValue() == null?0.0: datum.getCurrentValue();
value1 = datum.getCurrentValue() == null ? 0.0 : datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint2Id().equals(datum.getSequenceNbr())) {
value2 = datum.getCurrentValue() == null?0.0: datum.getCurrentValue();
value2 = datum.getCurrentValue() == null ? 0.0 : datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint3Id().equals(datum.getSequenceNbr())) {
value3 = datum.getCurrentValue() == null?0.0: datum.getCurrentValue();
value3 = datum.getCurrentValue() == null ? 0.0 : datum.getCurrentValue();
}
if (idxBizUhef.getAnalysisPointId().equals(datum.getSequenceNbr())) {
value4 = datum.getCurrentValue() == null?0.0: datum.getCurrentValue();
value4 = datum.getCurrentValue() == null ? 0.0 : datum.getCurrentValue();
}
}
Map<String, Object> map = new HashMap<>();
......@@ -1093,7 +1086,7 @@ public class CommonServiceImpl {
for (JSONObject object : jsonObjects) {
if (obj.getSequenceNbr().equals(object.getString("analysisVariableId"))) {
IdxBizFanHealthIndex idxBizFanHealthIndex = new IdxBizFanHealthIndex();
BeanUtils.copyProperties(obj,idxBizFanHealthIndex );
BeanUtils.copyProperties(obj, idxBizFanHealthIndex);
idxBizFanHealthIndex.setHealthIndex(object.getDouble("indexValue"));
idxBizFanHealthIndex.setAnalysisObjSeq(obj.getSequenceNbr());
idxBizFanHealthIndex.setRecDate(time);
......@@ -1126,7 +1119,7 @@ public class CommonServiceImpl {
}
}
// @Scheduled(cron = "0 0/10 * * * ?")
// @Scheduled(cron = "0 0/10 * * * ?")
public void healthWarningMinuteByGF() {
Date time = new Date();
List<IdxBizPvPointProcessVariableClassificationDto> data = idxBizPvPointProcessVariableClassificationMapper.getInfluxDBData();
......@@ -1220,7 +1213,7 @@ public class CommonServiceImpl {
for (JSONObject object : jsonObjects) {
if (obj.getSequenceNbr().equals(object.getString("analysisVariableId"))) {
IdxBizPvHealthIndex idxBizFanHealthIndex = new IdxBizPvHealthIndex();
BeanUtils.copyProperties(obj,idxBizFanHealthIndex );
BeanUtils.copyProperties(obj, idxBizFanHealthIndex);
idxBizFanHealthIndex.setHealthIndex(object.getDouble("indexValue"));
idxBizFanHealthIndex.setAnalysisObjSeq(obj.getSequenceNbr());
idxBizFanHealthIndex.setRecDate(time);
......@@ -1286,7 +1279,6 @@ public class CommonServiceImpl {
return null;
}
public Map<String, String> getUnitByIndexAddress(String stationType, String pointId) {
IndicatorData indicatorData = new IndicatorData();
if ("FD".equals(stationType)) {
......@@ -1301,22 +1293,6 @@ public class CommonServiceImpl {
return resultMap;
}
private static final BlockingQueue<IdxBizFanPointProcessVariableClassification> fifo = new LinkedBlockingQueue<>(5000);
private static int threadNumber = Runtime.getRuntime().availableProcessors() * 2;
public void chuli() throws InterruptedException {
this.getFanConditionVariablesByTimeAnalyseNew(null, null);
......@@ -1331,9 +1307,7 @@ public class CommonServiceImpl {
service.shutdown();
}
public void info(String gatewayId, String startTime, String endTime, IdxBizFanPointProcessVariableClassification idxBizFanPointProcessVariableClassification){
public void info(String gatewayId, String startTime, String endTime, IdxBizFanPointProcessVariableClassification idxBizFanPointProcessVariableClassification) {
logger.info("异步执行,gatewayId:{},分析Id:{}", gatewayId, idxBizFanPointProcessVariableClassification.getSequenceNbr());
List<IdxBizFanPointVarCorrelation> gongkuangList = idxBizFanPointVarCorrelationMapper.selectList(new QueryWrapper<IdxBizFanPointVarCorrelation>().eq("ANALYSIS_GATEWAY_ID", idxBizFanPointProcessVariableClassification.getGatewayId()).eq("ANALYSIS_POINT_ID", idxBizFanPointProcessVariableClassification.getSequenceNbr()));
if (gongkuangList.size() > 0) {
......@@ -1343,11 +1317,11 @@ public class CommonServiceImpl {
//遍历处理数据-组装风机
public void foreachHandlerConditionVariabAnalyseFanNew(String tableName, List<IdxBizFanPointVarCorrelation> list, String startTime, String endTime, IdxBizFanPointProcessVariableClassification idxBizFanPointProcessVariableClassification) {
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime, tableName);
List<Double> data1 = returnList.stream().map(t -> Double.parseDouble(t.getValue())).collect(Collectors.toList());
list.forEach(idxBizFanPointVarCorrelation -> {
logger.info("---------------------------------风机相关性-----------开始查询influxdb--------------------------------");
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointVarCorrelation.getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(idxBizFanPointVarCorrelation.getProcessIndexAddress(), startTime, endTime, tableName);
List<Double> data2 = returnList1.stream().map(t -> Double.parseDouble(t.getValue())).collect(Collectors.toList());
HashMap<String, Object> map1 = new HashMap<>();
map1.put("data1", data1);
......@@ -1388,17 +1362,6 @@ public class CommonServiceImpl {
}
}
/**
* 以下为相关性-光伏-方法
*/
private static final BlockingQueue<IdxBizPvPointProcessVariableClassification> fifoPv = new LinkedBlockingQueue<>(5000);
public void chuliPv(String startTime, String endTime) throws InterruptedException {
this.getPvConditionVariablesByTimeAnalyseNew();
......@@ -1413,7 +1376,7 @@ public class CommonServiceImpl {
service.shutdown();
}
public void infoPv(String gatewayId, String startTime, String endTime, IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification){
public void infoPv(String gatewayId, String startTime, String endTime, IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification) {
logger.info("异步执行,gatewayId:{},分析Id:{}", gatewayId, idxBizPvPointProcessVariableClassification.getSequenceNbr());
List<IdxBizPvPointVarCorrelation> gongkuangList = idxBizPvPointVarCorrelationMapper.selectList(new QueryWrapper<IdxBizPvPointVarCorrelation>().eq("ANALYSIS_GATEWAY_ID", idxBizPvPointProcessVariableClassification.getGatewayId()).eq("ANALYSIS_POINT_ID", idxBizPvPointProcessVariableClassification.getSequenceNbr()));
if (gongkuangList.size() > 0) {
......@@ -1423,11 +1386,11 @@ public class CommonServiceImpl {
//遍历处理数据-组装风机
public void foreachHandlerConditionVariabAnalysePvNew(String tableName, List<IdxBizPvPointVarCorrelation> list, String startTime, String endTime, IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification) {
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointProcessVariableClassification.getIndexAddress(), startTime, endTime, tableName);
List<Double> data1 = returnList.stream().map(t -> Double.parseDouble(t.getValue())).collect(Collectors.toList());
list.forEach(idxBizPvPointVarCorrelation -> {
logger.info("---------------------------------风机相关性-----------开始查询influxdb--------------------------------");
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointVarCorrelation.getProcessIndexAddress(), startTime, endTime,tableName);
List<IndicatorData> returnList1 = indicatorDataMapper.selectDataByAddressAndtime(idxBizPvPointVarCorrelation.getProcessIndexAddress(), startTime, endTime, tableName);
List<Double> data2 = returnList1.stream().map(t -> Double.parseDouble(t.getValue())).collect(Collectors.toList());
HashMap<String, Object> map1 = new HashMap<>();
map1.put("data1", data1);
......@@ -1453,6 +1416,7 @@ public class CommonServiceImpl {
}
});
}
//相关性分析-光伏
public void getPvConditionVariablesByTimeAnalyseNew() {
try {
......@@ -1468,66 +1432,74 @@ public class CommonServiceImpl {
}
@Scheduled(cron = "0 0/10 * * * ?")
// @Scheduled(cron = "0 0/10 * * * ?")
@Async("async")
public void healthWarningMinuteByFan() {
if (!openHealth){
if (!openHealth) {
return;
}
Date time = new Date();
Calendar calendar = Calendar.getInstance();
List<IdxBizFanPointProcessVariableClassificationDto> data = idxBizFanPointProcessVariableClassificationMapper.getInfluxDBData();
Map<String, List<IdxBizFanPointProcessVariableClassificationDto>> maps = data.stream().collect(Collectors.groupingBy(IdxBizFanPointProcessVariableClassificationDto::getGatewayId));
BoolQueryBuilder boolMustAll = QueryBuilders.boolQuery();
List<QueryBuilder> should = boolMustAll.should();
// BoolQueryBuilder boolMustAll = QueryBuilders.boolQuery();
// List<QueryBuilder> should = boolMustAll.should();
List<IndicatorData> indicatorDataListAll = new LinkedList<>();
for (String s : maps.keySet()) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
List<String> address = maps.get(s).stream().map(IdxBizFanPointProcessVariableClassificationDto::getIndexAddress).collect(Collectors.toList());
boolQueryBuilder.must(QueryBuilders.termsQuery("address.keyword", address)).must(QueryBuilders.matchQuery("gatewayId.keyword", s));
should.add(boolQueryBuilder);
}
// 创建查询构造器
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
//过滤条件
.withQuery(boolMustAll);
List<ESEquipments> equipments = new LinkedList<>();
long totle = 0;
try {
SearchHits<ESEquipments> searchHits = elasticsearchTemplate.search(queryBuilder.build(), ESEquipments.class);
for (SearchHit searchHit : searchHits.getSearchHits()) {
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(searchHit.getContent());
ESEquipments eSAlertCalled = JSONObject.toJavaObject(jsonObject, ESEquipments.class);
equipments.add(eSAlertCalled);
}
totle = searchHits.getTotalHits();
} catch (Exception e) {
// TODO: handle exception
}
while (totle == 0){
try {
SearchHits<ESEquipments> searchHits = elasticsearchTemplate.search(queryBuilder.build(), ESEquipments.class);
for (SearchHit searchHit : searchHits.getSearchHits()) {
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(searchHit.getContent());
ESEquipments eSAlertCalled = JSONObject.toJavaObject(jsonObject, ESEquipments.class);
equipments.add(eSAlertCalled);
}
totle = searchHits.getTotalHits();
} catch (Exception e) {
// TODO: handle exception
}
}
// BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// List<String> address = maps.get(s).stream().map(IdxBizFanPointProcessVariableClassificationDto::getIndexAddress).collect(Collectors.toList());
// boolQueryBuilder.must(QueryBuilders.termsQuery("address.keyword", address)).must(QueryBuilders.matchQuery("gatewayId.keyword", s));
// should.add(boolQueryBuilder);
// String addressids = maps.get(s).stream().map(idxBizFanPointProcessVariableClassificationDto -> "\'" + idxBizFanPointProcessVariableClassificationDto.getIndexAddress() + "\'").collect(Collectors.joining(","));
List<IndicatorData> indicatorDataList = indicatorDataMapper.selectDataByGatewayIdAndAddress(s);
indicatorDataListAll.addAll(indicatorDataList);
}
// // 创建查询构造器
// NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
// //过滤条件
// .withQuery(boolMustAll);
// List<ESEquipments> equipments = new LinkedList<>();
// long totle = 0;
// try {
// SearchHits<ESEquipments> searchHits = elasticsearchTemplate.search(queryBuilder.build(), ESEquipments.class);
//
// for (SearchHit searchHit : searchHits.getSearchHits()) {
// JSONObject jsonObject = (JSONObject) JSONObject.toJSON(searchHit.getContent());
// ESEquipments eSAlertCalled = JSONObject.toJavaObject(jsonObject, ESEquipments.class);
// equipments.add(eSAlertCalled);
// }
// totle = searchHits.getTotalHits();
// } catch (Exception e) {
// // TODO: handle exception
// }
//
//
// while (totle == 0) {
// try {
// SearchHits<ESEquipments> searchHits = elasticsearchTemplate.search(queryBuilder.build(), ESEquipments.class);
//
// for (SearchHit searchHit : searchHits.getSearchHits()) {
// JSONObject jsonObject = (JSONObject) JSONObject.toJSON(searchHit.getContent());
// ESEquipments eSAlertCalled = JSONObject.toJavaObject(jsonObject, ESEquipments.class);
// equipments.add(eSAlertCalled);
// }
// totle = searchHits.getTotalHits();
// } catch (Exception e) {
// // TODO: handle exception
// }
// }
Map<String, Float> indicatorDataListAllMap = indicatorDataListAll.stream().collect(Collectors.toMap(indicatorData -> indicatorData.getAddress() +"_"+ indicatorData.getGatewayId(), IndicatorData::getValueF));
for (IdxBizFanPointProcessVariableClassificationDto datum : data) {
for (ESEquipments equipment : equipments) {
if (equipment.getAddress().equals(datum.getIndexAddress()) && equipment.getGatewayId().equals(datum.getGatewayId())) {
datum.setCurrentValue(equipment.getValueF());
}
Double currentValue = Double.valueOf(indicatorDataListAllMap.get(datum.getIndexAddress() + "_" + datum.getGatewayId()));
if (!ObjectUtils.isEmpty(currentValue)) {
datum.setCurrentValue(currentValue);
}
// for (ESEquipments equipment : equipments) {
// if (equipment.getAddress().equals(datum.getIndexAddress()) && equipment.getGatewayId().equals(datum.getGatewayId())) {
// datum.setCurrentValue(equipment.getValueF());
// }
// }
}
LambdaQueryWrapper<IdxBizFanPointVarCentralValue> wrapper = new LambdaQueryWrapper<>();
......@@ -1543,7 +1515,7 @@ public class CommonServiceImpl {
List<Double> centerValue = new ArrayList<>();
List<String> analysisVariableId = new ArrayList<>();
List<Double> ProcessPoint1= new ArrayList<>();
List<Double> ProcessPoint1 = new ArrayList<>();
List<Double> ProcessPoint2 = new ArrayList<>();
List<Double> ProcessPoint3 = new ArrayList<>();
List<String> ProcessPoint1Id = new ArrayList<>();
......@@ -1572,10 +1544,10 @@ public class CommonServiceImpl {
}
if ((null == idxBizUhef.getProcess1Min() || idxBizUhef.getProcess1Min() <= value1 ) && (null == idxBizUhef.getProcess1Max()||value1 <= idxBizUhef.getProcess1Max() )
&&(null == idxBizUhef.getProcess2Min() || idxBizUhef.getProcess2Min() <= value2 ) && (null == idxBizUhef.getPorcess2Max() || value2 <= idxBizUhef.getPorcess2Max())
&&(null == idxBizUhef.getProcess3Min() || idxBizUhef.getProcess3Min() <= value3 ) && (null ==idxBizUhef.getProcess3Max() || value3 <= idxBizUhef.getProcess3Max())) {
if (!analysisVariableIdList.contains(idxBizUhef.getAnalysisPointId())){
if ((null == idxBizUhef.getProcess1Min() || idxBizUhef.getProcess1Min() <= value1) && (null == idxBizUhef.getProcess1Max() || value1 <= idxBizUhef.getProcess1Max())
&& (null == idxBizUhef.getProcess2Min() || idxBizUhef.getProcess2Min() <= value2) && (null == idxBizUhef.getPorcess2Max() || value2 <= idxBizUhef.getPorcess2Max())
&& (null == idxBizUhef.getProcess3Min() || idxBizUhef.getProcess3Min() <= value3) && (null == idxBizUhef.getProcess3Max() || value3 <= idxBizUhef.getProcess3Max())) {
if (!analysisVariableIdList.contains(idxBizUhef.getAnalysisPointId())) {
analysisVariableList.add(value4);
analysisVariable.add(value4);
......@@ -1606,16 +1578,16 @@ public class CommonServiceImpl {
requestMap.put("analysisVariableId", analysisVariableIdList);
Table healthData = Table.create("healthData");
healthData.addColumns(DoubleColumn.create("analysisVariable",analysisVariable),
DoubleColumn.create("stdDev",stdDev),
DoubleColumn.create("centerValue",centerValue),
StringColumn.create("ProcessPoint1Id",ProcessPoint1Id),
DoubleColumn.create("ProcessPoint1",ProcessPoint1),
StringColumn.create("ProcessPoint2Id",ProcessPoint2Id),
DoubleColumn.create("ProcessPoint2",ProcessPoint2),
StringColumn.create("ProcessPoint3Id",ProcessPoint3Id),
DoubleColumn.create("ProcessPoint3",ProcessPoint3),
StringColumn.create("analysisVariableId",analysisVariableIds));
healthData.addColumns(DoubleColumn.create("analysisVariable", analysisVariable),
DoubleColumn.create("stdDev", stdDev),
DoubleColumn.create("centerValue", centerValue),
StringColumn.create("ProcessPoint1Id", ProcessPoint1Id),
DoubleColumn.create("ProcessPoint1", ProcessPoint1),
StringColumn.create("ProcessPoint2Id", ProcessPoint2Id),
DoubleColumn.create("ProcessPoint2", ProcessPoint2),
StringColumn.create("ProcessPoint3Id", ProcessPoint3Id),
DoubleColumn.create("ProcessPoint3", ProcessPoint3),
StringColumn.create("analysisVariableId", analysisVariableIds));
logger.info("------------------------------------------开始调用健康指数计算算法开始----------------------------------------");
String response = HttpUtil.createPost(baseUrlZSFX).body(JSON.toJSONString(requestMap)).execute().body();
......@@ -1625,17 +1597,17 @@ public class CommonServiceImpl {
JSONArray indexValueArray = jsonObject.getJSONArray("indexValue");
JSONArray scoreValueArray = jsonObject.getJSONArray("scoreValue");
JSONArray analysisVariableIdArray = jsonObject.getJSONArray("analysisVariableId");
List<String> jsonArrayToStringList = JSONObject.parseArray(analysisVariableIdArray.toJSONString(),String.class);
List<Double> scoreValue = JSONObject.parseArray(scoreValueArray.toJSONString(),Double.class);
List<Double> indexValue = JSONObject.parseArray(indexValueArray.toJSONString(),Double.class);
List<String> jsonArrayToStringList = JSONObject.parseArray(analysisVariableIdArray.toJSONString(), String.class);
List<Double> scoreValue = JSONObject.parseArray(scoreValueArray.toJSONString(), Double.class);
List<Double> indexValue = JSONObject.parseArray(indexValueArray.toJSONString(), Double.class);
// Table resultTable = Table.create("healthData");
healthData.addColumns( StringColumn.create("analysisVariableIdResult",jsonArrayToStringList),
DoubleColumn.create("indexValue",indexValue), DoubleColumn.create("scoreValue",scoreValue));
healthData.addColumns(StringColumn.create("analysisVariableIdResult", jsonArrayToStringList),
DoubleColumn.create("indexValue", indexValue), DoubleColumn.create("scoreValue", scoreValue));
System.out.println(healthData.print());
try {
healthData.write().csv(new Date().getTime()+"fj.csv");
healthData.write().csv(new Date().getTime() + "fj.csv");
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
......@@ -1653,11 +1625,11 @@ public class CommonServiceImpl {
for (IdxBizFanPointProcessVariableClassification obj : list) {
for (int i = 0; i < analysisVariableIdArray.size(); i++) {
if (analysisVariableIdArray.get(i).toString().equals(obj.getSequenceNbr())){
if (analysisVariableIdArray.get(i).toString().equals(obj.getSequenceNbr())) {
IdxBizFanHealthIndex idxBizFanHealthIndex = new IdxBizFanHealthIndex();
BeanUtils.copyProperties(obj, idxBizFanHealthIndex,"sequenceNbr");
BeanUtils.copyProperties(obj, idxBizFanHealthIndex, "sequenceNbr");
//2023年10月30日10点05分 移除原来的判断 无论是否小于0都取绝对值
idxBizFanHealthIndex.setHealthIndex( Math.abs(indexValueArray.getDoubleValue(i)));
idxBizFanHealthIndex.setHealthIndex(Math.abs(indexValueArray.getDoubleValue(i)));
idxBizFanHealthIndex.setAnalysisObjSeq(obj.getSequenceNbr());
idxBizFanHealthIndex.setRecDate(time);
// idxBizFanHealthIndex.setSequenceNbr(null);
......@@ -1665,18 +1637,18 @@ public class CommonServiceImpl {
//获取健康指数对应等级
for (IdxBizFanHealthLevel idxBizFanHealthLevel : idxBizFanHealthLevels) {
if (indexValueArray.getDoubleValue(i) <= idxBizFanHealthLevel.getGroupUpperLimit()
&& indexValueArray.getDoubleValue(i) >= idxBizFanHealthLevel.getGroupLowerLimit()){
&& indexValueArray.getDoubleValue(i) >= idxBizFanHealthLevel.getGroupLowerLimit()) {
idxBizFanHealthIndex.setHealthLevel(idxBizFanHealthLevel.getHealthLevel());
}
}
idxBizFanHealthIndex.setAnalysisType("按时刻");
idxBizFanHealthIndex.setAnalysisObjType("测点");
if (ObjectUtils.isEmpty(scoreValueArray.getDoubleValue(i))){
if (ObjectUtils.isEmpty(scoreValueArray.getDoubleValue(i))) {
System.out.println(JSON.toJSONString(requestMap));
idxBizFanHealthIndex.setANOMALY(0.0);
}else {
} else {
idxBizFanHealthIndex.setANOMALY(scoreValueArray.getDoubleValue(i));
}
......@@ -1693,7 +1665,7 @@ public class CommonServiceImpl {
logger.info("------------------------------------------调用健康指数计算算法结束----------------------------------------");
logger.info("------------------------------------------开始计算预警----------------------------------------");
healthStatusIndicatorService.healthWarningMinute(calendar,time);
healthStatusIndicatorService.healthWarningMinute(calendar, time);
} catch (Exception e) {
throw new RuntimeException(e);
......@@ -1702,48 +1674,56 @@ public class CommonServiceImpl {
}
@Scheduled(cron = "0 0/10 * * * ?")
// @Scheduled(cron = "0 0/10 * * * ?")
@Async("async")
public void healthWarningMinuteByPv() {
if (!openHealth){
if (!openHealth) {
return;
}
Calendar calendar = Calendar.getInstance();
Date time = new Date();
List<IdxBizPvPointProcessVariableClassificationDto> data = idxBizPvPointProcessVariableClassificationMapper.getInfluxDBData();
Map<String, List<IdxBizPvPointProcessVariableClassificationDto>> maps = data.stream().collect(Collectors.groupingBy(IdxBizPvPointProcessVariableClassificationDto::getGatewayId));
BoolQueryBuilder boolMustAll = QueryBuilders.boolQuery();
List<QueryBuilder> should = boolMustAll.should();
// BoolQueryBuilder boolMustAll = QueryBuilders.boolQuery();
// List<QueryBuilder> should = boolMustAll.should();
List<IndicatorData> indicatorDataListAll = new LinkedList<>();
for (String s : maps.keySet()) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
List<String> address = maps.get(s).stream().map(IdxBizPvPointProcessVariableClassificationDto::getIndexAddress).collect(Collectors.toList());
boolQueryBuilder.must(QueryBuilders.termsQuery("address.keyword", address)).must(QueryBuilders.termsQuery("gatewayId.keyword", s));
should.add(boolQueryBuilder);
// BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// String addressids = maps.get(s).stream().map(idxBizPvPointProcessVariableClassificationDto -> "\'" + idxBizPvPointProcessVariableClassificationDto.getIndexAddress() + "\'").collect(Collectors.joining(","));
List<IndicatorData> indicatorDataList = indicatorDataMapper.selectDataByGatewayIdAndAddress(s);
indicatorDataListAll.addAll(indicatorDataList);
// List<String> address = maps.get(s).stream().map(IdxBizPvPointProcessVariableClassificationDto::getIndexAddress).collect(Collectors.toList());
// boolQueryBuilder.must(QueryBuilders.termsQuery("address.keyword", address)).must(QueryBuilders.termsQuery("gatewayId.keyword", s));
// should.add(boolQueryBuilder);
}
// 创建查询构造器
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
//过滤条件
.withQuery(boolMustAll);
List<ESEquipments> equipments = new LinkedList<>();
long totle = 0;
try {
SearchHits<ESEquipments> searchHits = elasticsearchTemplate.search(queryBuilder.build(), ESEquipments.class);
for (SearchHit searchHit : searchHits.getSearchHits()) {
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(searchHit.getContent());
ESEquipments eSAlertCalled = JSONObject.toJavaObject(jsonObject, ESEquipments.class);
equipments.add(eSAlertCalled);
}
totle = searchHits.getTotalHits();
} catch (Exception e) {
// TODO: handle exception
}
// NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
// //过滤条件
// .withQuery(boolMustAll);
// List<ESEquipments> equipments = new LinkedList<>();
// long totle = 0;
// try {
// SearchHits<ESEquipments> searchHits = elasticsearchTemplate.search(queryBuilder.build(), ESEquipments.class);
//
// for (SearchHit searchHit : searchHits.getSearchHits()) {
// JSONObject jsonObject = (JSONObject) JSONObject.toJSON(searchHit.getContent());
// ESEquipments eSAlertCalled = JSONObject.toJavaObject(jsonObject, ESEquipments.class);
// equipments.add(eSAlertCalled);
// }
// totle = searchHits.getTotalHits();
// } catch (Exception e) {
// // TODO: handle exception
// }
Map<String, Float> indicatorDataListAllMap = indicatorDataListAll.stream().collect(Collectors.toMap(indicatorData -> indicatorData.getAddress() +"_"+indicatorData.getGatewayId(), IndicatorData::getValueF));
for (IdxBizPvPointProcessVariableClassificationDto datum : data) {
for (ESEquipments equipment : equipments) {
if (equipment.getAddress().equals(datum.getIndexAddress()) && equipment.getGatewayId().equals(datum.getGatewayId())) {
datum.setCurrentValue(equipment.getValueF().doubleValue());
}
// for (ESEquipments equipment : equipments) {
// if (equipment.getAddress().equals(datum.getIndexAddress()) && equipment.getGatewayId().equals(datum.getGatewayId())) {
Double currentValue = Double.valueOf(indicatorDataListAllMap.get(datum.getIndexAddress() + "_" + datum.getGatewayId()));
if (!ObjectUtils.isEmpty(currentValue)) {
datum.setCurrentValue(currentValue);
}
// }
// }
}
LambdaQueryWrapper<IdxBizPvPointVarCentralValue> wrapper = new LambdaQueryWrapper<>();
List<IdxBizPvPointVarCentralValue> idxBizUhefs = idxBizPvPointVarCentralValueMapper.selectList(wrapper);
......@@ -1758,7 +1738,7 @@ public class CommonServiceImpl {
List<Double> centerValue = new ArrayList<>();
List<String> analysisVariableId = new ArrayList<>();
List<Double> ProcessPoint1= new ArrayList<>();
List<Double> ProcessPoint1 = new ArrayList<>();
List<Double> ProcessPoint2 = new ArrayList<>();
List<Double> ProcessPoint3 = new ArrayList<>();
List<String> ProcessPoint1Id = new ArrayList<>();
......@@ -1785,10 +1765,10 @@ public class CommonServiceImpl {
value4 = datum.getCurrentValue();
}
}
if ((null == idxBizUhef.getProcess1Min() || idxBizUhef.getProcess1Min() <= value1 ) && (null == idxBizUhef.getProcess1Max()||value1 <= idxBizUhef.getProcess1Max() )
&&(null == idxBizUhef.getProcess2Min() || idxBizUhef.getProcess2Min() <= value2 ) && (null == idxBizUhef.getProcess2Max() || value2 <= idxBizUhef.getProcess2Max())
&&(null == idxBizUhef.getProcess3Min() || idxBizUhef.getProcess3Min() <= value3 ) && (null ==idxBizUhef.getProcess3Max() || value3 <= idxBizUhef.getProcess3Max())) {
if (!analysisVariableIdList.contains(idxBizUhef.getAnalysisPointId())){
if ((null == idxBizUhef.getProcess1Min() || idxBizUhef.getProcess1Min() <= value1) && (null == idxBizUhef.getProcess1Max() || value1 <= idxBizUhef.getProcess1Max())
&& (null == idxBizUhef.getProcess2Min() || idxBizUhef.getProcess2Min() <= value2) && (null == idxBizUhef.getProcess2Max() || value2 <= idxBizUhef.getProcess2Max())
&& (null == idxBizUhef.getProcess3Min() || idxBizUhef.getProcess3Min() <= value3) && (null == idxBizUhef.getProcess3Max() || value3 <= idxBizUhef.getProcess3Max())) {
if (!analysisVariableIdList.contains(idxBizUhef.getAnalysisPointId())) {
analysisVariableList.add(value4);
analysisVariable.add(value4);
......@@ -1819,16 +1799,16 @@ public class CommonServiceImpl {
requestMap.put("analysisVariableId", analysisVariableIdList);
Table healthData = Table.create("healthData");
healthData.addColumns(DoubleColumn.create("analysisVariable",analysisVariable),
DoubleColumn.create("stdDev",stdDev),
DoubleColumn.create("centerValue",centerValue),
StringColumn.create("ProcessPoint1Id",ProcessPoint1Id),
DoubleColumn.create("ProcessPoint1",ProcessPoint1),
StringColumn.create("ProcessPoint2Id",ProcessPoint2Id),
DoubleColumn.create("ProcessPoint2",ProcessPoint2),
StringColumn.create("ProcessPoint3Id",ProcessPoint3Id),
DoubleColumn.create("ProcessPoint3",ProcessPoint3),
StringColumn.create("analysisVariableId",analysisVariableIds));
healthData.addColumns(DoubleColumn.create("analysisVariable", analysisVariable),
DoubleColumn.create("stdDev", stdDev),
DoubleColumn.create("centerValue", centerValue),
StringColumn.create("ProcessPoint1Id", ProcessPoint1Id),
DoubleColumn.create("ProcessPoint1", ProcessPoint1),
StringColumn.create("ProcessPoint2Id", ProcessPoint2Id),
DoubleColumn.create("ProcessPoint2", ProcessPoint2),
StringColumn.create("ProcessPoint3Id", ProcessPoint3Id),
DoubleColumn.create("ProcessPoint3", ProcessPoint3),
StringColumn.create("analysisVariableId", analysisVariableIds));
logger.info("------------------------------------------开始调用健康指数计算算法开始----------------------------------------");
String response = HttpUtil.createPost(baseUrlZSFX).body(JSON.toJSONString(requestMap)).execute().body();
JSONObject jsonObject = JSON.parseObject(response);
......@@ -1836,17 +1816,17 @@ public class CommonServiceImpl {
JSONArray indexValueArray = jsonObject.getJSONArray("indexValue");
JSONArray scoreValueArray = jsonObject.getJSONArray("scoreValue");
JSONArray analysisVariableIdArray = jsonObject.getJSONArray("analysisVariableId");
List<String> jsonArrayToStringList = JSONObject.parseArray(analysisVariableIdArray.toJSONString(),String.class);
List<Double> scoreValue = JSONObject.parseArray(scoreValueArray.toJSONString(),Double.class);
List<Double> indexValue = JSONObject.parseArray(indexValueArray.toJSONString(),Double.class);
List<String> jsonArrayToStringList = JSONObject.parseArray(analysisVariableIdArray.toJSONString(), String.class);
List<Double> scoreValue = JSONObject.parseArray(scoreValueArray.toJSONString(), Double.class);
List<Double> indexValue = JSONObject.parseArray(indexValueArray.toJSONString(), Double.class);
// Table resultTable = Table.create("healthData");
healthData.addColumns( StringColumn.create("analysisVariableIdResult",jsonArrayToStringList),
DoubleColumn.create("indexValue",indexValue), DoubleColumn.create("scoreValue",scoreValue));
healthData.addColumns(StringColumn.create("analysisVariableIdResult", jsonArrayToStringList),
DoubleColumn.create("indexValue", indexValue), DoubleColumn.create("scoreValue", scoreValue));
System.out.println(healthData.print());
try {
healthData.write().csv(new Date().getTime()+"gf.csv");
healthData.write().csv(new Date().getTime() + "gf.csv");
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
......@@ -1865,7 +1845,7 @@ public class CommonServiceImpl {
List<IdxBizPvHealthIndex> idxBizPvHealthIndexs = new ArrayList<>();
for (IdxBizPvPointProcessVariableClassification obj : list) {
for (int i = 0; i < analysisVariableIdArray.size(); i++) {
if (analysisVariableIdArray.get(i).toString().equals(obj.getSequenceNbr())){
if (analysisVariableIdArray.get(i).toString().equals(obj.getSequenceNbr())) {
IdxBizPvHealthIndex idxBizPvHealthIndex = new IdxBizPvHealthIndex();
BeanUtils.copyProperties(obj, idxBizPvHealthIndex, "sequenceNbr");
// idxBizPvHealthIndex.setSequenceNbr(null);
......@@ -1878,7 +1858,7 @@ public class CommonServiceImpl {
for (IdxBizPvHealthLevel idxBizFanHealthLevel : idxBizFanHealthLevels) {
if (indexValueArray.getDoubleValue(i) <= idxBizFanHealthLevel.getGroupUpperLimit()
&& indexValueArray.getDoubleValue(i) >= idxBizFanHealthLevel.getGroupLowerLimit()){
&& indexValueArray.getDoubleValue(i) >= idxBizFanHealthLevel.getGroupLowerLimit()) {
idxBizPvHealthIndex.setHealthLevel(idxBizFanHealthLevel.getHealthLevel());
}
......@@ -1900,7 +1880,7 @@ public class CommonServiceImpl {
throw new RuntimeException(e);
}
healthStatusIndicatorService.healthWarningMinuteGF(calendar,time);
healthStatusIndicatorService.healthWarningMinuteGF(calendar, time);
}
......
......@@ -47,7 +47,7 @@ public interface IndicatorDataMapper extends BaseMapper<IndicatorData> {
@Select("select `value`, created_time from iot_data.indicator_data where id =#{id} and ts >= #{startTime} and ts <= #{endTime} ")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumber(@Param("id") String id, @Param("startTime") String startTime, @Param("endTime") String endTime);
@Select("select `value`,`value_f`, address, gateway_id from iot_data.indicator_data where ts >=NOW()-10m and gateway_id = #{gatewayId} and address in(#{addressIds})")
List<IndicatorData> selectDataByGatewayIdAndAddress(@Param("gatewayId") String gatewayId,@Param("addressIds") String addressIds);
@Select("select `value`,`value_f`, address, gateway_id from iot_data.indicator_data where ts > NOW()-10m and gateway_id = #{gatewayId}")
List<IndicatorData> selectDataByGatewayIdAndAddress(@Param("gatewayId") String gatewayId);
}
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