Commit e0ff2f16 authored by tangwei's avatar tangwei

解决冲突

parents 4c3d7c27 f1b47eaa
package com.yeejoin.amos.boot.module.jxiop.biz.Enum;
public enum SmartAnalyseEnum {
FAN_QJHF("FAN_QJHF", "风机区间变量划分"),
FAN_XGX("FAN_XGX","风机相关性"),
FAN_ZXZ("FAN_ZXZ","风机中心值"),
PV_QJHF("PV_QJHF","光伏区间变量划分"),
PV_XGX("PV_XGX","光伏相关性"),
PV_ZXZ("PV_ZXZ","光伏中心值");
private String key;
private String name;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
SmartAnalyseEnum(String key, String name) {
this.key = key;
this.name = name;
}
}
package com.yeejoin.amos.boot.module.jxiop.biz.Thread;
import com.yeejoin.amos.boot.module.jxiop.biz.Enum.SmartAnalyseEnum;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.CommonServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
public class MyServiceThread extends Thread {
Logger logger = LoggerFactory.getLogger(MyServiceThread.class);
private String startTime;
private String endTime;
private CommonServiceImpl commonService;
private String type;
public MyServiceThread(CommonServiceImpl commonService, String startTime, String endTime, String type) {
this.commonService = commonService;
this.startTime = startTime;
this.endTime = endTime;
this.type = type;
}
@Override
public void run() {
if (type.equals(SmartAnalyseEnum.FAN_QJHF.getKey())) {
this.commonService.getFanConditionVariablesByTime(this.startTime, this.endTime);
logger.info("--------------------------开始通过线程调用风机区间划分算法-----------------------");
} else if (type.equals(SmartAnalyseEnum.FAN_XGX.getKey())) {
this.commonService.getFanConditionVariablesByTimeAnalyse(startTime, endTime);
logger.info("--------------------------开始通过线程调用风机相关性算法-----------------------");
} else if (type.equals(SmartAnalyseEnum.FAN_ZXZ.getKey())) {
this.commonService.getFanConditionVariablesByTimeAnalyse1(startTime, endTime);
logger.info("--------------------------开始通过线程调用风机中心值算法-----------------------");
} else if (type.equals(SmartAnalyseEnum.PV_QJHF.getKey())) {
this.commonService.getPvConditionVariablesByTime(startTime, endTime);
logger.info("--------------------------开始通过线程调用光伏区间划分算法-----------------------");
} else if (type.equals(SmartAnalyseEnum.PV_XGX.getKey())) {
this.commonService.getPvConditionVariablesByTimeAnalyse(startTime, endTime);
logger.info("--------------------------开始通过线程调用光伏相关性算法-----------------------");
} else if (type.equals(SmartAnalyseEnum.PV_ZXZ.getKey())) {
this.commonService.getPvConditionVariablesByTimeAnalyse1(startTime, endTime);
logger.info("--------------------------开始通过线程调用光伏中心值算法-----------------------"); }
}
}
......@@ -29,38 +29,38 @@ public class AnalyseController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "工况测点区间划分-风机", notes = "工况测点区间划分-风机")
@GetMapping(value = "/getFanConditionVariablesByTime")
public void getFanConditionVariablesByTime(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getFanConditionVariablesByTime(startTime, endTime);
public ResponseModel<String> getFanConditionVariablesByTime(@RequestParam String startTime, @RequestParam String endTime) {
return ResponseHelper.buildResponse(commonServiceImpl.getFanConditionVariablesByTimeThread(startTime, endTime));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "工况测点区间划分-光伏", notes = "工况测点区间划分-光伏")
@GetMapping(value = "/getPvConditionVariablesByTime")
public void getPvConditionVariablesByTime(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getPvConditionVariablesByTime(startTime, endTime);
public ResponseModel<String> getPvConditionVariablesByTime(@RequestParam String startTime, @RequestParam String endTime) {
return ResponseHelper.buildResponse(commonServiceImpl.getPvConditionVariablesByTimeThread(startTime, endTime));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "相关性分析-风机", notes = "相关性分析-风机")
@GetMapping(value = "/getFanConditionVariablesByTimeAnalyse")
public void getFanConditionVariablesByTimeAnalyse(@RequestParam String startTime, @RequestParam String endTime) {
commonServiceImpl.getFanConditionVariablesByTimeAnalyse(startTime, endTime);
public ResponseModel<String> getFanConditionVariablesByTimeAnalyse(@RequestParam String startTime, @RequestParam String endTime) {
return ResponseHelper.buildResponse(commonServiceImpl.getFanConditionVariablesByTimeAnalyseThread(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);
public ResponseModel<String> getPvConditionVariablesByTimeAnalyse(@RequestParam String startTime, @RequestParam String endTime) {
return ResponseHelper.buildResponse(commonServiceImpl.getPvConditionVariablesByTimeAnalyseThread(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);
public ResponseModel<String> getFanConditionVariablesByTimeAnalyse1(@RequestParam String startTime, @RequestParam String endTime) {
return ResponseHelper.buildResponse(commonServiceImpl.getFanConditionVariablesByTimeAnalyse1Thread(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);
public ResponseModel<String> getPvConditionVariablesByTimeAnalyse1(@RequestParam String startTime, @RequestParam String endTime) {
return ResponseHelper.buildResponse(commonServiceImpl.getPvConditionVariablesByTimeAnalyse1Thread(startTime, endTime));
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
......
......@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
......@@ -29,7 +30,7 @@ public class IdxBizPvPointProcessVariableClassificationDto {
private String record;
@TableField("REC_DATE")
private LocalDateTime recDate;
private Date recDate;
@TableField("REC_USER_ID")
private String recUserId;
......@@ -92,7 +93,7 @@ public class IdxBizPvPointProcessVariableClassificationDto {
private String subarray;
@TableField("GATEWAY_ID")
private Integer gatewayId;
private String gatewayId;
@ApiModelProperty(value = "点表地址")
@TableField("INDEX_ADDRESS")
......@@ -102,4 +103,11 @@ public class IdxBizPvPointProcessVariableClassificationDto {
@TableField("KKS")
private String kks;
private Double currentValue;
private String pointOneId;
private String pointTwoId;
private String pointThreeId;
private String analysVariableId;
}
......@@ -2,12 +2,11 @@ package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
......@@ -38,7 +37,7 @@ public class IdxBizFanHealthIndex {
*
*/
@TableField("REC_DATE")
private LocalDateTime recDate;
private Date recDate;
/**
*
......@@ -68,7 +67,7 @@ public class IdxBizFanHealthIndex {
* 分析维度seq
*/
@TableField("ANALYSIS_OBJ_SEQ")
private Integer analysisObjSeq;
private String analysisObjSeq;
/**
*
......@@ -98,13 +97,13 @@ public class IdxBizFanHealthIndex {
*
*/
@TableField("ANALYSIS_START_TIME")
private LocalDateTime analysisStartTime;
private Date analysisStartTime;
/**
*
*/
@TableField("ANALYSIS_END_TIME")
private LocalDateTime analysisEndTime;
private Date analysisEndTime;
/**
* 片区
......@@ -148,4 +147,8 @@ public class IdxBizFanHealthIndex {
@TableField("INDEX_ADDRESS")
private String indexAddress;
@TableField("ANOMALY")
private Double ANOMALY;
}
package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
......@@ -17,7 +18,6 @@ import java.util.Date;
* @date 2023-08-15
*/
@Data
@Accessors(chain = true)
@TableName("idx_biz_fan_point_process_variable_classification")
public class IdxBizFanPointProcessVariableClassification{
......@@ -27,7 +27,7 @@ public class IdxBizFanPointProcessVariableClassification{
/**
*
*/
@TableField("SEQUENCE_NBR")
@TableId("SEQUENCE_NBR")
private String sequenceNbr;
/**
......
package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
......@@ -28,7 +29,7 @@ public class IdxBizFanPointVarCentralValue{
/**
*
*/
@TableId("SEQUENCE_NBR")
@TableId(value = "SEQUENCE_NBR",type = IdType.UUID)
private String sequenceNbr;
/**
......@@ -79,11 +80,6 @@ public class IdxBizFanPointVarCentralValue{
@TableField("INTERVAL_COMBINATION")
private String intervalCombination;
/**
*
*/
// @TableField("ANALYSIS_POINT_ID")
// private String analysisPointId;
/**
* 片区
......@@ -133,11 +129,6 @@ public class IdxBizFanPointVarCentralValue{
@TableField("PROCESS1_MAX")
private Double process1Max;
/**
* 工况变量1ID
*/
// @TableField("PROCESS_POINT1_ID")
// private String processPoint1Id;
/**
* 工况量2区间最小值
......
package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
......@@ -27,7 +28,7 @@ public class IdxBizFanPointVarCorrelation{
/**
*
*/
@TableField("SEQUENCE_NBR")
@TableId("SEQUENCE_NBR")
private String sequenceNbr;
/**
......
......@@ -69,13 +69,13 @@ public class IdxBizFanWarningRecord{
*
*/
@TableField("HEALTH_INDEX_SEQ")
private Integer healthIndexSeq;
private String healthIndexSeq;
/**
*
*/
@TableField("ANALYSIS_POINT_ID")
private Integer analysisPointId;
private String analysisPointId;
/**
* 预警等级
......
......@@ -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 IdxBizPvHealthIndex{
*
*/
@TableField("REC_DATE")
private LocalDateTime recDate;
private Date recDate;
/**
*
......@@ -69,7 +70,7 @@ public class IdxBizPvHealthIndex{
* 分析维度seq
*/
@TableField("ANALYSIS_OBJ_SEQ")
private Integer analysisObjSeq;
private String analysisObjSeq;
/**
*
......@@ -141,7 +142,7 @@ public class IdxBizPvHealthIndex{
* 网关ID
*/
@TableField("GATEWAY_ID")
private Integer gatewayId;
private String gatewayId;
/**
* 点表地址
......@@ -155,4 +156,8 @@ public class IdxBizPvHealthIndex{
@TableField("EQUIPMENT_NAME")
private String equipmentName;
@TableField("ANOMALY")
private Double ANOMALY;
}
package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
......@@ -27,7 +29,7 @@ public class IdxBizPvPointProcessVariableClassification{
/**
*
*/
@TableField("SEQUENCE_NBR")
@TableId(value="SEQUENCE_NBR",type = IdType.UUID)
private String sequenceNbr;
/**
......@@ -64,31 +66,31 @@ public class IdxBizPvPointProcessVariableClassification{
* 工况区间值1
*/
@TableField("INTERVAL_VALUE1")
private Integer intervalValue1;
private Double intervalValue1;
/**
* 工况区间值2
*/
@TableField("INTERVAL_VALUE2")
private Integer intervalValue2;
private Double intervalValue2;
/**
* 工况区间值3
*/
@TableField("INTERVAL_VALUE3")
private Integer intervalValue3;
private Double intervalValue3;
/**
* 工况区间值4
*/
@TableField("INTERVAL_VALUE4")
private Integer intervalValue4;
private Double intervalValue4;
/**
* 工况区间值5
*/
@TableField("INTERVAL_VALUE5")
private Integer intervalValue5;
private Double intervalValue5;
/**
* 标签
......@@ -121,6 +123,12 @@ public class IdxBizPvPointProcessVariableClassification{
private String equipmentName;
/**
* 测点
*/
@TableField("POINT_NAME")
private String pointName;
/**
* 厂商
*/
@TableField("MANUFACTURER")
......
......@@ -80,8 +80,8 @@ public class IdxBizPvPointVarCentralValue{
/**
*
*/
// @TableField("ANALYSIS_POINT_ID")
// private Integer analysisPointId;
@TableField("ANALYSIS_POINT_ID")
private String analysisPointId;
/**
* 片区
......@@ -118,12 +118,22 @@ public class IdxBizPvPointVarCentralValue{
*/
@TableField("DEVICE_TYPE")
private String deviceType;
/**
*
*/
@TableField("PROCESS1_MIN")
private Double process1Min;
/**
*
*/
@TableField("PROCESS2_MIN")
private Double process2Min;
/**
*
*/
@TableField("PROCESS1_MAX")
private Double process1Max;
/**
*
......
package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
......@@ -27,7 +28,7 @@ public class IdxBizPvPointVarCorrelation{
/**
*
*/
@TableField("SEQUENCE_NBR")
@TableId("SEQUENCE_NBR")
private String sequenceNbr;
/**
......
......@@ -75,7 +75,7 @@ public class IdxBizPvWarningRecord{
*
*/
@TableField("ANALYSIS_POINT_ID")
private Integer analysisPointId;
private String analysisPointId;
/**
* 预警等级
......@@ -117,7 +117,7 @@ public class IdxBizPvWarningRecord{
* 网关ID
*/
@TableField("GATEWAY_ID")
private Integer gatewayId;
private String gatewayId;
/**
* 点表地址
......@@ -131,4 +131,9 @@ public class IdxBizPvWarningRecord{
@TableField("EQUIPMENT_NAME")
private String equipmentName;
/**
* 预警内容
* */
@TableField("CONTENT")
private String CONTENT;
}
package com.yeejoin.amos.boot.module.jxiop.biz.mapper2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanPointProcessVariableClassificationDto;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizPvPointProcessVariableClassificationDto;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizPvPointProcessVariableClassification;
import java.util.List;
......@@ -13,4 +15,7 @@ import java.util.List;
*/
public interface IdxBizPvPointProcessVariableClassificationMapper extends BaseMapper<IdxBizPvPointProcessVariableClassification> {
List<String> gateWayIdListPv();
List<IdxBizPvPointProcessVariableClassificationDto> getInfluxDBData();
}
......@@ -2,11 +2,15 @@ package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.jxiop.biz.ESDto.ESEquipments;
import com.yeejoin.amos.boot.module.jxiop.biz.Enum.SmartAnalyseEnum;
import com.yeejoin.amos.boot.module.jxiop.biz.Thread.MyServiceThread;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanPointProcessVariableClassificationDto;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizPvPointProcessVariableClassificationDto;
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;
......@@ -15,6 +19,7 @@ import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
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.data.elasticsearch.core.ElasticsearchRestTemplate;
......@@ -33,6 +38,7 @@ import java.util.stream.Collectors;
@Service
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";
......@@ -45,23 +51,23 @@ public class CommonServiceImpl {
@Value("${base.url:http://36.40.66.175:30009/maas/maas/processes/api/}")
String baseUrl;
//----------------工况变量工况变量划分请求属性配置------------------------
@Value("${gkblhffan.url:3d0acca8-a6aa-4791-8dc3-9f8d3137556a}")
@Value("${gkblhffan.url:74435221-796d-43c0-ae72-319792b8f89e}")
String gkqjhfurlfan;
@Value("${gkblhfpv.url:e884fccf-b7ac-4fa4-bdb7-a5b6ff7319ec}")
@Value("${gkblhfpv.url:728d13ae-f333-4e36-b55c-6a0b6bb3b150}")
String gkqjhfurlpv;
@Value("${gkblhf.key:input 1}")
String gkqjhfkey;
//----------------工况变量相关性计算请求属性配置------------------------
@Value("${gkxgxfxfan.url:b5797e0a-d456-44d3-9f21-9528e5321b74}")
String gkxgxfxurlfan;
@Value("${gkxgxfxpv.url:f5457bfe-0780-418d-9287-c4f31d3fb4c7}")
@Value("${gkxgxfxpv.url:3d583330-1b3c-4c7a-b904-9e94f3de9fc9}")
String gkxgxfxurlpv;
@Value("${gkxgxfx.key:input 1}")
String gkxgxfxkey;
//----------------工况变量中心值计算相关请求属性配置------------------------
@Value("${gkzxzjsfan.url:2ad85cd3-aede-4936-b3bb-029bf2598c49}")
@Value("${gkzxzjsfan.url:a6f8d689-0028-445e-b797-493b5ac65e42}")
String gkzxzjsurlfan;
@Value("${gkzxzjspv.url:5c9fc897-a9f2-4563-8d7b-8cf60c6a663f}")
@Value("${gkzxzjspv.url:0945f8f6-faa6-4bd6-87fd-c7bed37d9bdc}")
String gkzxzjsurlpv;
@Value("${gkzxzjs.key:input 1}")
String gkzxzjskey1;
......@@ -70,9 +76,11 @@ public class CommonServiceImpl {
String gkzxzjskey2;
//----------------健康指数值计算相关请求属性配置------------------------
@Value("${jkzsjs.url:80538a37-2c68-431b-9aa1-bcab88d88f9e}")
String jkzsjsurl;
@Value("${jkzsjs.url:aec8ad20-6d63-4f62-99f6-2d71756cacb6}")
String jkzsjsfjurl;
@Value("${jkzsjs.url:a9a404d4-6ead-440e-9fcb-b95d5a239b10}")
String jkzsgfurl;
// {"tableName": "idx_biz_fan_point_process_variable_classification"} 风机工况变量划分
// {"tableName": "idx_biz_pv_point_process_variable_classification"} 光伏工况变量画分
......@@ -88,6 +96,15 @@ public class CommonServiceImpl {
private IdxBizPvPointVarCorrelationMapper idxBizPvPointVarCorrelationMapper;
@Autowired
private InfluxdbUtil influxdbUtil;
@Autowired
IdxBizFanHealthIndexServiceImpl idxBizFanHealthIndexService;
@Autowired
IdxBizPvHealthIndexServiceImpl idxBizPvHealthIndexService;
@Autowired
IdxBizFanHealthLevelMapper idxBizFanHealthLevelMapper;
@Autowired
IdxBizPvHealthLevelMapper idxBizPvHealthLevelMapper;
@Autowired
private ElasticsearchRestTemplate elasticsearchTemplate;
......@@ -130,26 +147,56 @@ public class CommonServiceImpl {
return idxBizPvPointProcessVariableClassificationHashMap;
}
public String getFanConditionVariablesByTimeThread(String startTime, String endTime) {
String result ="开始计算";
if(!ObjectUtils.isEmpty(cacheExecInfo.get(SmartAnalyseEnum.FAN_QJHF.getKey()))){
result="正在计算中";
}else {
MyServiceThread myServiceThread =new MyServiceThread(this,startTime,endTime,SmartAnalyseEnum.FAN_QJHF.getKey());
myServiceThread.start();
cacheExecInfo.put(SmartAnalyseEnum.FAN_QJHF.getKey(),myServiceThread);
}
return result;
}
//遍历工况列表数据-风机
public void getFanConditionVariablesByTime(String startTime, String endTime) {
String startTimeUTC = getUtcTimeString(startTime);
String endTimeUTC =getUtcTimeString(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);
foreachHandlerConditionVariabFan(s, list, startTimeUTC, endTimeUTC);
}
});
cacheExecInfo.remove(SmartAnalyseEnum.FAN_QJHF.getKey());
}
public String getPvConditionVariablesByTimeThread(String startTime, String endTime) {
String result ="开始计算";
if(!ObjectUtils.isEmpty(cacheExecInfo.get(SmartAnalyseEnum.PV_QJHF.getKey()))){
result="正在计算中";
}else {
MyServiceThread myServiceThread =new MyServiceThread(this,startTime,endTime,SmartAnalyseEnum.PV_QJHF.getKey());
myServiceThread.start();
cacheExecInfo.put(SmartAnalyseEnum.PV_QJHF.getKey(),myServiceThread);
}
return result;
}
//遍历工况列表数据-光伏
public void getPvConditionVariablesByTime(String startTime, String endTime) {
String startTimeUTC = getUtcTimeString(startTime);
String endTimeUTC =getUtcTimeString(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);
foreachHandlerConditionVariabPv(s, list, startTimeUTC, endTimeUTC);
}
});
cacheExecInfo.remove(SmartAnalyseEnum.FAN_QJHF.getKey());
}
//遍历查询数据并调用并计算-风机
......@@ -157,8 +204,7 @@ public class CommonServiceImpl {
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, IdxBizFanPointProcessVariableClassification.getIndexAddress(), startTime, endTime);
String sql = String.format("select value from %s where address='%s' ", tableName, idxBizFanPointProcessVariableClassification.getIndexAddress());
String sql = 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(sql);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
......@@ -170,9 +216,23 @@ public class CommonServiceImpl {
logger.info("------------------------------------------风机::开始调用工况变量区间划分算法----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkqjhfkey, params);
String reponse = HttpUtil.createPost(baseUrl + gkqjhfurlfan).body(JSON.toJSONString(realParams)).execute().body();
String repsonse = HttpUtil.createPost(baseUrl + gkqjhfurlfan).body(JSON.toJSONString(realParams)).execute().body();
if (repsonse.contains("\"status\":200")) {
JSONObject jsonObject = JSONObject.parseObject(repsonse);
JSONObject result = (JSONObject) jsonObject.get("result");
JSONObject result1 = (JSONObject) result.get("result1");
JSONArray rows = (JSONArray) result1.get("rows");
JSONObject values = rows.getJSONObject(0);
idxBizFanPointProcessVariableClassification.setIntervalValue5(values.getDoubleValue("intervalValue5"));
idxBizFanPointProcessVariableClassification.setIntervalValue4(values.getDoubleValue("intervalValue4"));
idxBizFanPointProcessVariableClassification.setIntervalValue3(values.getDoubleValue("intervalValue3"));
idxBizFanPointProcessVariableClassification.setIntervalValue2(values.getDoubleValue("intervalValue2"));
idxBizFanPointProcessVariableClassification.setIntervalValue1(values.getDoubleValue("intervalValue1"));
idxBizFanPointProcessVariableClassificationMapper.updateById(idxBizFanPointProcessVariableClassification);
logger.info("------------------------------------------风机::工况变量区间划分更新业务表成功----------------------------------------");
}
try {
logger.info(reponse);
logger.info(repsonse);
TimeUnit.SECONDS.sleep(sleepTime);
logger.info("------------------------------------------风机::调用工况变量区间划分算法结束----------------------------------------");
} catch (InterruptedException e) {
......@@ -188,8 +248,7 @@ public class CommonServiceImpl {
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());
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);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
......@@ -201,9 +260,23 @@ public class CommonServiceImpl {
logger.info("------------------------------------------光伏::开始调用工况变量区间划分算法----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkqjhfkey, params);
String reponse = HttpUtil.createPost(baseUrl + gkqjhfurlpv).body(JSON.toJSONString(realParams)).execute().body();
String repsonse = HttpUtil.createPost(baseUrl + gkqjhfurlpv).body(JSON.toJSONString(realParams)).execute().body();
if (repsonse.contains("\"status\":200")) {
JSONObject jsonObject = JSONObject.parseObject(repsonse);
JSONObject result = (JSONObject) jsonObject.get("result");
JSONObject result1 = (JSONObject) result.get("result1");
JSONArray rows = (JSONArray) result1.get("rows");
JSONObject values = rows.getJSONObject(0);
idxBizPvPointProcessVariableClassification.setIntervalValue5(values.getDoubleValue("intervalValue5"));
idxBizPvPointProcessVariableClassification.setIntervalValue4(values.getDoubleValue("intervalValue4"));
idxBizPvPointProcessVariableClassification.setIntervalValue3(values.getDoubleValue("intervalValue3"));
idxBizPvPointProcessVariableClassification.setIntervalValue2(values.getDoubleValue("intervalValue2"));
idxBizPvPointProcessVariableClassification.setIntervalValue1(values.getDoubleValue("intervalValue1"));
idxBizPvPointProcessVariableClassificationMapper.updateById(idxBizPvPointProcessVariableClassification);
logger.info("------------------------------------------风机::工况变量区间划分更新业务表成功----------------------------------------");
}
try {
logger.info(reponse);
logger.info(repsonse);
TimeUnit.SECONDS.sleep(sleepTime);
logger.info("------------------------------------------光伏::调用工况变量区间划分算法结束----------------------------------------");
} catch (InterruptedException e) {
......@@ -240,37 +313,66 @@ public class CommonServiceImpl {
return idxBizPvPointProcessVariableClassificationHashMap;
}
public String getFanConditionVariablesByTimeAnalyseThread(String startTime, String endTime) {
String result ="开始计算";
if(!ObjectUtils.isEmpty(cacheExecInfo.get(SmartAnalyseEnum.FAN_XGX.getKey()))){
result="正在计算中";
}else {
MyServiceThread myServiceThread =new MyServiceThread(this,startTime,endTime,SmartAnalyseEnum.FAN_XGX.getKey());
myServiceThread.start();
cacheExecInfo.put(SmartAnalyseEnum.FAN_XGX.getKey(),myServiceThread);
}
return result;
}
//相关性分析-风机入口
public void getFanConditionVariablesByTimeAnalyse(String startTime, String endTime) {
String startTimeUTC = getUtcTimeString(startTime);
String endTimeUTC =getUtcTimeString(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()));
if (gongkuangList.size() > 0) {
foreachHandlerConditionVariabAnalyseFan(s, gongkuangList, startTime, endTime, IdxBizFanPointProcessVariableClassification);
foreachHandlerConditionVariabAnalyseFan(s, gongkuangList, startTimeUTC, endTimeUTC, IdxBizFanPointProcessVariableClassification);
}
});
});
cacheExecInfo.remove(SmartAnalyseEnum.FAN_XGX.getKey());
}
public String getPvConditionVariablesByTimeAnalyseThread(String startTime, String endTime) {
String result ="开始计算";
if(!ObjectUtils.isEmpty(cacheExecInfo.get(SmartAnalyseEnum.PV_XGX.getKey()))){
result="正在计算中";
}else {
MyServiceThread myServiceThread =new MyServiceThread(this,startTime,endTime,SmartAnalyseEnum.PV_XGX.getKey());
myServiceThread.start();
cacheExecInfo.put(SmartAnalyseEnum.PV_XGX.getKey(),myServiceThread);
}
return result;
}
//相关性分析-光伏入口
public void getPvConditionVariablesByTimeAnalyse(String startTime, String endTime) {
String startTimeUTC = getUtcTimeString(startTime);
String endTimeUTC =getUtcTimeString(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()));
if (gongkuangList.size() > 0) {
foreachHandlerConditionVariabAnalysePv(s, gongkuangList, startTime, endTime, idxBizPvPointProcessVariableClassification);
foreachHandlerConditionVariabAnalysePv(s, gongkuangList, startTimeUTC, endTimeUTC, idxBizPvPointProcessVariableClassification);
}
});
});
cacheExecInfo.remove(SmartAnalyseEnum.PV_XGX.getKey());
}
//遍历处理数据-组装风机
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());
String sql1 = String.format("select value from %s where address='%s' and time >= '%s' and where time <= '%s' ", tableName, idxBizFanPointProcessVariableClassification.getIndexAddress(),startTime,endTime);
List<Map<String, Object>> returnList = influxdbUtil.query(sql1);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
......@@ -284,8 +386,7 @@ public class CommonServiceImpl {
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' and time >= '%s' and where time <= '%s' ", tableName, idxBizFanPointVarCorrelation.getProcessIndexAddress(),startTime,endTime);
List<Map<String, Object>> returnList1 = influxdbUtil.query(sql);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
......@@ -305,6 +406,16 @@ public class CommonServiceImpl {
realParams.put(gkxgxfxkey, requestParams);
logger.info("------------------------------风机相关性------------分析变量与工况变量相关性分析算参数---------------------------------------" + JSON.toJSONString(realParams));
String repsonse = HttpUtil.createPost(baseUrl + gkxgxfxurlfan).body(JSON.toJSONString(realParams)).execute().body();
if (repsonse.contains("\"status\":200")) {
JSONObject jsonObject = JSONObject.parseObject(repsonse);
JSONObject result = (JSONObject) jsonObject.get("result");
JSONObject result1 = (JSONObject) result.get("result1");
JSONArray rows = (JSONArray) result1.get("rows");
JSONObject values = rows.getJSONObject(0);
idxBizFanPointVarCorrelation.setCorrelationCoefficient(values.getDoubleValue("correlation_coefficient"));
idxBizFanPointVarCorrelationMapper.updateById(idxBizFanPointVarCorrelation);
logger.info("------------------------------------------风机相关性::相关性更新业务表成功----------------------------------------");
}
try {
logger.info("response-------------" + repsonse);
TimeUnit.SECONDS.sleep(sleepTime);
......@@ -318,7 +429,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());
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<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
......@@ -331,8 +442,7 @@ public class CommonServiceImpl {
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());
String sql = String.format("select value from %s where address='%s' and time >= '%s' and time <= '%s' ", tableName, idxBizPvPointVarCorrelation.getProcessIndexAddress(),startTime,endTime);
List<Map<String, Object>> returnList1 = influxdbUtil.query(sql);
returnList.forEach((k) -> {
Map<String, Object> map = new HashMap<>();
......@@ -350,6 +460,16 @@ public class CommonServiceImpl {
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkxgxfxkey, requestParams);
String repsonse = HttpUtil.createPost(baseUrl + gkxgxfxurlpv).body(JSON.toJSONString(realParams)).execute().body();
if (repsonse.contains("\"status\":200")) {
JSONObject jsonObject = JSONObject.parseObject(repsonse);
JSONObject result = (JSONObject) jsonObject.get("result");
JSONObject result1 = (JSONObject) result.get("result1");
JSONArray rows = (JSONArray) result1.get("rows");
JSONObject values = rows.getJSONObject(0);
idxBizPvPointVarCorrelation.setCorrelationCoefficient(values.getDoubleValue("correlation_coefficient"));
idxBizPvPointVarCorrelationMapper.updateById(idxBizPvPointVarCorrelation);
logger.info("------------------------------------------风机相关性::相关性更新业务表成功----------------------------------------");
}
try {
logger.info("response----光伏相关性---------" + repsonse);
TimeUnit.SECONDS.sleep(sleepTime);
......@@ -385,38 +505,66 @@ public class CommonServiceImpl {
return resultList;
}
//中心值计算-风电
public String getFanConditionVariablesByTimeAnalyse1Thread(String startTime, String endTime) {
String result = "开始计算";
if (!ObjectUtils.isEmpty(cacheExecInfo.get(SmartAnalyseEnum.FAN_ZXZ.getKey()))) {
result = "正在计算中";
} else {
MyServiceThread myServiceThread = new MyServiceThread(this, startTime, endTime, SmartAnalyseEnum.FAN_ZXZ.getKey());
myServiceThread.start();
cacheExecInfo.put(SmartAnalyseEnum.FAN_ZXZ.getKey(), myServiceThread);
}
return result;
}
//中心值计算-风电
public void getFanConditionVariablesByTimeAnalyse1(String startTime, String endTime) {
String startTimeUTC = getUtcTimeString(startTime);
String endTimeUTC =getUtcTimeString(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"));
if (gongkuangList.size() > 0) {
foreachHandlerConditionVariabAnalyse1Fan(s, gongkuangList, startTime, endTime, IdxBizFanPointProcessVariableClassification);
foreachHandlerConditionVariabAnalyse1Fan(s, gongkuangList, startTimeUTC, endTimeUTC, IdxBizFanPointProcessVariableClassification);
}
});
});
cacheExecInfo.remove(SmartAnalyseEnum.FAN_ZXZ.getKey());
}
public String getPvConditionVariablesByTimeAnalyse1Thread(String startTime, String endTime) {
String result = "开始计算";
if (!ObjectUtils.isEmpty(cacheExecInfo.get(SmartAnalyseEnum.PV_ZXZ.getKey()))) {
result = "正在计算中";
} else {
MyServiceThread myServiceThread = new MyServiceThread(this, startTime, endTime, SmartAnalyseEnum.PV_ZXZ.getKey());
myServiceThread.start();
cacheExecInfo.put(SmartAnalyseEnum.PV_ZXZ.getKey(), myServiceThread);
}
return result;
}
//中心值计算-光伏
public void getPvConditionVariablesByTimeAnalyse1(String startTime, String endTime) {
String startTimeUTC = getUtcTimeString(startTime);
String endTimeUTC =getUtcTimeString(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"));
if (gongkuangList.size() > 0) {
foreachHandlerConditionVariabAnalyse1Pv(s, gongkuangList, startTime, endTime, idxBizPvPointProcessVariableClassification);
foreachHandlerConditionVariabAnalyse1Pv(s, gongkuangList, startTimeUTC, endTimeUTC, idxBizPvPointProcessVariableClassification);
}
});
});
cacheExecInfo.remove(SmartAnalyseEnum.PV_ZXZ.getKey());
}
//中心值参数组装-风电
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());
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<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
......@@ -429,9 +577,9 @@ 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 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());
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<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));
......@@ -511,30 +659,42 @@ public class CommonServiceImpl {
realParams.put(gkzxzjskey2, requestParams);
logger.info("------------------------------风机中心值------请求参数---------------------------------------" + JSON.toJSONString(realParams));
String response = HttpUtil.createPost(baseUrl + gkzxzjsurlfan).body(JSON.toJSONString(realParams)).execute().body();
List<IdxBizFanPointVarCentralValue> anaylseList = idxBizFanPointVarCentralValueMapper.selectList(new QueryWrapper<IdxBizFanPointVarCentralValue>().eq("ANALYSIS_POINT_ID",IdxBizFanPointProcessVariableClassification.getSequenceNbr().toString()));
List<IdxBizFanPointVarCentralValue> precessList1 = idxBizFanPointVarCentralValueMapper.selectList(new QueryWrapper<IdxBizFanPointVarCentralValue>().eq("PROCESS_POINT1_ID",list.get(0).getProcessPointId()));
List<IdxBizFanPointVarCentralValue> precessList2 = idxBizFanPointVarCentralValueMapper.selectList(new QueryWrapper<IdxBizFanPointVarCentralValue>().eq("PROCESS_POINT2_ID",list.get(1).getProcessPointId()));
List<IdxBizFanPointVarCentralValue> precessList3 = idxBizFanPointVarCentralValueMapper.selectList(new QueryWrapper<IdxBizFanPointVarCentralValue>().eq("PROCESS_POINT3_ID",list.get(2).getProcessPointId()));
for (int i = 0; i < anaylseList.size(); i++) {
IdxBizFanPointVarCentralValue idxBizFanPointVarCentralValue =anaylseList.get(i);
idxBizFanPointVarCentralValue.setAnalysisPointName(IdxBizFanPointProcessVariableClassification.getPointName());
idxBizFanPointVarCentralValueMapper.updateById(idxBizFanPointVarCentralValue);
}
for (int i = 0; i < precessList1.size(); i++) {
IdxBizFanPointVarCentralValue idxBizFanPointVarCentralValue =precessList1.get(i);
idxBizFanPointVarCentralValue.setProcessPoint1Name(idxBizFanPointProcessVariableClassificationList.get(2).getPointName());
idxBizFanPointVarCentralValueMapper.updateById(idxBizFanPointVarCentralValue);
}
for (int i = 0; i < precessList2.size(); i++) {
IdxBizFanPointVarCentralValue idxBizFanPointVarCentralValue =precessList2.get(i);
idxBizFanPointVarCentralValue.setProcessPoint2Name(idxBizFanPointProcessVariableClassificationList.get(1).getPointName());
idxBizFanPointVarCentralValueMapper.updateById(idxBizFanPointVarCentralValue);
}
for (int i = 0; i < precessList3.size(); i++) {
IdxBizFanPointVarCentralValue idxBizFanPointVarCentralValue =precessList3.get(i);
idxBizFanPointVarCentralValue.setProcessPoint3Name(idxBizFanPointProcessVariableClassificationList.get(0).getPointName());
idxBizFanPointVarCentralValueMapper.updateById(idxBizFanPointVarCentralValue);
if (response.contains("\"status\":200")) {
JSONObject jsonObject = JSONObject.parseObject(response);
JSONObject result = (JSONObject) jsonObject.get("result");
JSONObject result1 = (JSONObject) result.get("result1");
JSONArray rows = (JSONArray) result1.get("rows");
JSONObject resultValues = rows.getJSONObject(0);
idxBizFanPointVarCentralValueMapper.delete(new QueryWrapper<IdxBizFanPointVarCentralValue>().eq("ANALYSIS_POINT_ID",resultValues.get("analysisVariableId")));
for (int i = 0; i <rows.size() ; i++) {
JSONObject idxCentralValue = rows.getJSONObject(i);
IdxBizFanPointVarCentralValue idxBizFanPointVarCentralValue =new IdxBizFanPointVarCentralValue();
idxBizFanPointVarCentralValue.setProcess1Min(idxCentralValue.getDoubleValue("process1Min"));
idxBizFanPointVarCentralValue.setProcess2Min(idxCentralValue.getDoubleValue("process2Min"));
idxBizFanPointVarCentralValue.setProcess3Min(idxCentralValue.getDoubleValue("process3Min"));
idxBizFanPointVarCentralValue.setProcess1Max(idxCentralValue.getDoubleValue("process1Max"));
idxBizFanPointVarCentralValue.setPorcess2Max(idxCentralValue.getDoubleValue("process1Max"));
idxBizFanPointVarCentralValue.setProcess3Max(idxCentralValue.getDoubleValue("process1Max"));
idxBizFanPointVarCentralValue.setAnalysisPointId(idxCentralValue.getString("analysisVariableId"));
idxBizFanPointVarCentralValue.setAnalysisPointName(IdxBizFanPointProcessVariableClassification.getPointName());
idxBizFanPointVarCentralValue.setProcessPoint1Id(idxCentralValue.getString("processVariable1Id"));
idxBizFanPointVarCentralValue.setProcessPoint1Name(idxBizFanPointProcessVariableClassificationList.get(2).getPointName());
idxBizFanPointVarCentralValue.setProcessPoint2Id(idxCentralValue.getString("processVariable2Id"));
idxBizFanPointVarCentralValue.setProcessPoint2Name(idxBizFanPointProcessVariableClassificationList.get(1).getPointName());
idxBizFanPointVarCentralValue.setProcessPoint3Id(idxCentralValue.getString("processVariable3Id"));
idxBizFanPointVarCentralValue.setProcessPoint3Name(idxBizFanPointProcessVariableClassificationList.get(0).getPointName());
idxBizFanPointVarCentralValue.setAnalysisStdDev(idxCentralValue.getDoubleValue("stdDev"));
idxBizFanPointVarCentralValue.setAnalysisCenterValue(idxCentralValue.getDoubleValue("centerValue"));
idxBizFanPointVarCentralValue.setArae(IdxBizFanPointProcessVariableClassification.getArae());
idxBizFanPointVarCentralValue.setStation(IdxBizFanPointProcessVariableClassification.getStation());
idxBizFanPointVarCentralValue.setSubSystem(IdxBizFanPointProcessVariableClassification.getSubSystem());
idxBizFanPointVarCentralValue.setNumber(IdxBizFanPointProcessVariableClassification.getNumber());
idxBizFanPointVarCentralValue.setEquipmentName(IdxBizFanPointProcessVariableClassification.getEquipmentName());
idxBizFanPointVarCentralValueMapper.insert(idxBizFanPointVarCentralValue);
}
logger.info("------------------------------------------风机中心值::中心值更新业务表成功----------------------------------------");
}
try {
logger.info("------------------风机中心值--repsonse: " + response);
TimeUnit.SECONDS.sleep(zxzsleepTime);
......@@ -547,7 +707,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());
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);
List<Map<String, Object>> params = new ArrayList<>();
returnList.forEach((k) -> {
......@@ -559,10 +719,9 @@ public class CommonServiceImpl {
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());
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<HashMap<String, Object>> values = new ArrayList<>();
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));
......@@ -641,6 +800,41 @@ public class CommonServiceImpl {
realParams.put(gkzxzjskey1, values);
realParams.put(gkzxzjskey2, requestParams);
String response = HttpUtil.createPost(baseUrl + gkzxzjsurlpv).body(JSON.toJSONString(realParams)).execute().body();
if (response.contains("\"status\":200")) {
JSONObject jsonObject = JSONObject.parseObject(response);
JSONObject result = (JSONObject) jsonObject.get("result");
JSONObject result1 = (JSONObject) result.get("result1");
JSONArray rows = (JSONArray) result1.get("rows");
JSONObject resultValues = rows.getJSONObject(0);
idxBizPvPointVarCentralValueMapper.delete(new QueryWrapper<IdxBizPvPointVarCentralValue>().eq("ANALYSIS_POINT_ID",resultValues.get("analysisVariableId")));
for (int i = 0; i <rows.size() ; i++) {
JSONObject idxCentralValue = rows.getJSONObject(i);
IdxBizPvPointVarCentralValue idxBizPvPointVarCentralValue =new IdxBizPvPointVarCentralValue();
idxBizPvPointVarCentralValue.setProcess1Min(idxCentralValue.getDoubleValue("process1Min"));
idxBizPvPointVarCentralValue.setProcess2Min(idxCentralValue.getDoubleValue("process2Min"));
idxBizPvPointVarCentralValue.setProcess3Min(idxCentralValue.getDoubleValue("process3Min"));
idxBizPvPointVarCentralValue.setProcess1Max(idxCentralValue.getDoubleValue("process1Max"));
idxBizPvPointVarCentralValue.setProcess2Max(idxCentralValue.getDoubleValue("process1Max"));
idxBizPvPointVarCentralValue.setProcess3Max(idxCentralValue.getDoubleValue("process1Max"));
idxBizPvPointVarCentralValue.setAnalysisPointId(idxCentralValue.getString("analysisVariableId"));
idxBizPvPointVarCentralValue.setAnalysisPointIdName(idxBizPvPointProcessVariableClassification.getPointName());
idxBizPvPointVarCentralValue.setProcessPoint1Id(idxCentralValue.getString("processVariable1Id"));
idxBizPvPointVarCentralValue.setProcessPoint1IdName(idxBizPvPointProcessVariableClassificationList.get(2).getPointName());
idxBizPvPointVarCentralValue.setProcessPoint2Id(idxCentralValue.getString("processVariable2Id"));
idxBizPvPointVarCentralValue.setProcessPoint2IdName(idxBizPvPointProcessVariableClassificationList.get(1).getPointName());
idxBizPvPointVarCentralValue.setProcessPoint2Id(idxCentralValue.getString("processVariable3Id"));
idxBizPvPointVarCentralValue.setProcessPoint3IdName(idxBizPvPointProcessVariableClassificationList.get(0).getPointName());
idxBizPvPointVarCentralValue.setAnalysisStdDev(idxCentralValue.getDoubleValue("stdDev"));
idxBizPvPointVarCentralValue.setAnalysisCenterValue(idxCentralValue.getDoubleValue("centerValue"));
idxBizPvPointVarCentralValue.setArae(idxBizPvPointProcessVariableClassification.getArae());
idxBizPvPointVarCentralValue.setStation(idxBizPvPointProcessVariableClassification.getStation());
idxBizPvPointVarCentralValue.setSubarray(idxBizPvPointProcessVariableClassification.getSubarray());
idxBizPvPointVarCentralValue.setManufacturer(idxBizPvPointProcessVariableClassification.getManufacturer());
idxBizPvPointVarCentralValue.setEquipmentName(idxBizPvPointProcessVariableClassification.getEquipmentName());
idxBizPvPointVarCentralValueMapper.insert(idxBizPvPointVarCentralValue);
}
logger.info("------------------------------------------光伏中心值::中心值更新业务表成功----------------------------------------");
}
try {
logger.info("-------------光伏中心值-------repsonse: " + response);
TimeUnit.SECONDS.sleep(sleepTime);
......@@ -681,24 +875,24 @@ public class CommonServiceImpl {
}
public Map<String, Object> getInfluxdbDataByConditon(String stationType, String pointId, String startTime, String endTime) {
HashMap<String,Object> resultLast =new HashMap();
HashMap<String, Object> resultLast = new HashMap();
String sql = "";
if ("FD".equals(stationType)) {
IdxBizFanPointProcessVariableClassification idxBizFanPointProcessVariableClassification = idxBizFanPointProcessVariableClassificationMapper.selectOne(new QueryWrapper<IdxBizFanPointProcessVariableClassification>().eq("SEQUENCE_NBR",pointId));
IdxBizFanPointProcessVariableClassification idxBizFanPointProcessVariableClassification = idxBizFanPointProcessVariableClassificationMapper.selectOne(new QueryWrapper<IdxBizFanPointProcessVariableClassification>().eq("SEQUENCE_NBR", pointId));
sql = String.format("select * from iot_data_%s where address ='%s' and time > '%s' and time < '%s' ;", idxBizFanPointProcessVariableClassification.getGatewayId(), idxBizFanPointProcessVariableClassification.getIndexAddress(), getUtcTimeString(startTime), getUtcTimeString(endTime));
} else {
IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification = idxBizPvPointProcessVariableClassificationMapper.selectOne(new QueryWrapper<IdxBizPvPointProcessVariableClassification>().eq("SEQUENCE_NBR",pointId));
IdxBizPvPointProcessVariableClassification idxBizPvPointProcessVariableClassification = idxBizPvPointProcessVariableClassificationMapper.selectOne(new QueryWrapper<IdxBizPvPointProcessVariableClassification>().eq("SEQUENCE_NBR", pointId));
sql = String.format("select * from iot_data_%s where address ='%s' and time > '%s' and time < '%s' ;", idxBizPvPointProcessVariableClassification.getGatewayId(), idxBizPvPointProcessVariableClassification.getIndexAddress(), getUtcTimeString(startTime), getUtcTimeString(endTime));
}
List<Map<String,Object>> reuslt = influxdbUtil.query(sql);
List<String> seriesData_valuse=new ArrayList<>();
List<String> axisData_valuse=new ArrayList<>();
reuslt.forEach(item->{
List<Map<String, Object>> reuslt = influxdbUtil.query(sql);
List<String> seriesData_valuse = new ArrayList<>();
List<String> axisData_valuse = new ArrayList<>();
reuslt.forEach(item -> {
seriesData_valuse.add(item.get("value").toString());
axisData_valuse.add(item.get("time").toString());
});
resultLast.put("seriesData",seriesData_valuse);
resultLast.put("axisData",axisData_valuse);
resultLast.put("seriesData", seriesData_valuse);
resultLast.put("axisData", axisData_valuse);
return resultLast;
}
......@@ -716,7 +910,7 @@ public class CommonServiceImpl {
}
@Scheduled(cron = "0 0/10 * * * ?")
private void healthWarningMinute() {
private void healthWarningMinuteByFJ() {
List<IdxBizFanPointProcessVariableClassificationDto> data = idxBizFanPointProcessVariableClassificationMapper.getInfluxDBData();
Map<String, List<IdxBizFanPointProcessVariableClassificationDto>> maps = data.stream().collect(Collectors.groupingBy(IdxBizFanPointProcessVariableClassificationDto::getGatewayId));
BoolQueryBuilder boolMustAll = QueryBuilders.boolQuery();
......@@ -750,7 +944,7 @@ public class CommonServiceImpl {
for (IdxBizFanPointProcessVariableClassificationDto datum : data) {
for (ESEquipments equipment : equipments) {
if (equipment.getAddress().equals(datum.getIndexAddress()) && equipment.getGatewayId().equals(datum.getGatewayId())){
if (equipment.getAddress().equals(datum.getIndexAddress()) && equipment.getGatewayId().equals(datum.getGatewayId())) {
datum.setCurrentValue(equipment.getValueDouble());
}
}
......@@ -758,30 +952,156 @@ public class CommonServiceImpl {
LambdaQueryWrapper<IdxBizFanPointVarCentralValue> wrapper = new LambdaQueryWrapper<>();
List<IdxBizFanPointVarCentralValue> idxBizUhefs = idxBizFanPointVarCentralValueMapper.selectList(wrapper);
List< Map<String, Object>> datas = new ArrayList<>();
List<Map<String, Object>> datas = new ArrayList<>();
Map<String, Map<String, Object>> resultMap = new HashMap<>();
for (IdxBizFanPointVarCentralValue idxBizUhef : idxBizUhefs) {
double value1 = 0.00;
double value2 = 0.00;
double value3 = 0.00;
double value4 = 0.00;
for (IdxBizFanPointProcessVariableClassificationDto datum : data) {
if (idxBizUhef.getProcessPoint1Id().equals(datum.getSequenceNbr())){
value1 = datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint2Id().equals(datum.getSequenceNbr())) {
value2 = datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint3Id().equals(datum.getSequenceNbr())) {
value3 = datum.getCurrentValue();
}
if (idxBizUhef.getAnalysisPointId().equals(datum.getSequenceNbr())) {
value4 = datum.getCurrentValue();
}
}
for (IdxBizFanPointProcessVariableClassificationDto datum : data) {
if (idxBizUhef.getProcessPoint1Id().equals(datum.getSequenceNbr())) {
value1 = datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint2Id().equals(datum.getSequenceNbr())) {
value2 = datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint3Id().equals(datum.getSequenceNbr())) {
value3 = datum.getCurrentValue();
}
if (idxBizUhef.getAnalysisPointId().equals(datum.getSequenceNbr())) {
value4 = datum.getCurrentValue();
}
}
Map<String, Object> map = new HashMap<>();
if (idxBizUhef.getProcess1Min() <= value1 && value1 <= idxBizUhef.getProcess1Max() &&
idxBizUhef.getProcess2Min() <= value2 && value2 <= idxBizUhef.getPorcess2Max() &&
idxBizUhef.getProcess3Min() <= value3 && value3 <= idxBizUhef.getProcess3Max()) {
map.put("analysisVariable", value4);
map.put("stdDev", idxBizUhef.getAnalysisStdDev());
map.put("centerValue", idxBizUhef.getAnalysisCenterValue());
map.put("analysisVariableId", idxBizUhef.getAnalysisPointId());
resultMap.put(idxBizUhef.getAnalysisPointId(), map);
}
}
Collection<Map<String, Object>> values = resultMap.values();
if (!values.isEmpty()) {
logger.info("------------------------------------------开始调用健康指数计算算法开始----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkzxzjskey1, values);
String response = HttpUtil.createPost(baseUrl + jkzsjsfjurl).body(JSON.toJSONString(realParams)).execute().body();
JSONObject result = JSON.parseObject(response).getJSONObject("result");
if (null != result){
JSONObject jsonObject =result .getJSONObject("result1").getJSONObject("rows");
List<JSONObject> jsonObjects = JSON.parseArray(JSON.toJSONString(jsonObject), JSONObject.class);
List<String> ids = new ArrayList<>();
jsonObjects.stream().forEach(e-> ids.add(e.getString("analysisVariableId")));
LambdaQueryWrapper<IdxBizFanPointProcessVariableClassification> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(IdxBizFanPointProcessVariableClassification::getSequenceNbr,ids);
List<IdxBizFanPointProcessVariableClassification> list = idxBizFanPointProcessVariableClassificationMapper.selectList(queryWrapper);
List<IdxBizFanHealthIndex> idxBizFanHealthIndexs = new ArrayList<>();
for (IdxBizFanPointProcessVariableClassification obj : list) {
for (JSONObject object : jsonObjects) {
if (obj.getSequenceNbr().equals(object.getString("analysisVariableId"))){
IdxBizFanHealthIndex idxBizFanHealthIndex = new IdxBizFanHealthIndex();
BeanUtils.copyProperties(idxBizFanHealthIndex,obj);
idxBizFanHealthIndex.setHealthIndex(object.getDouble("indexValue"));
idxBizFanHealthIndex.setAnalysisObjSeq(obj.getSequenceNbr());
idxBizFanHealthIndex.setRecDate(new Date());
//获取健康指数对应等级
LambdaQueryWrapper<IdxBizFanHealthLevel> query = new LambdaQueryWrapper<>();
query.eq(IdxBizFanHealthLevel::getAnalysisObjType,"设备");
query.eq(IdxBizFanHealthLevel::getStatus,obj.getStation());
query.le(IdxBizFanHealthLevel::getGroupLowerLimit,object.getDouble("indexValue"));
query.ge(IdxBizFanHealthLevel::getGroupUpperLimit,object.getDouble("indexValue"));
IdxBizFanHealthLevel idxBizFanHealthLevel = idxBizFanHealthLevelMapper.selectOne(query);
idxBizFanHealthIndex.setHealthLevel(idxBizFanHealthLevel.getHealthLevel());
idxBizFanHealthIndex.setAnalysisType("按时刻");
idxBizFanHealthIndex.setANOMALY(object.getDouble("scoreValue"));
idxBizFanHealthIndexs.add(idxBizFanHealthIndex);
}
}
}
idxBizFanHealthIndexService.saveBatch(idxBizFanHealthIndexs);
}
try {
logger.info("--------------------repsonse: "+response);
logger.info("------------------------------------------调用健康指数计算算法结束----------------------------------------");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
@Scheduled(cron = "0 0/10 * * * ?")
private void healthWarningMinuteByGF() {
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();
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.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
}
for (IdxBizPvPointProcessVariableClassificationDto datum : data) {
for (ESEquipments equipment : equipments) {
if (equipment.getAddress().equals(datum.getIndexAddress()) && equipment.getGatewayId().equals(datum.getGatewayId())){
datum.setCurrentValue(equipment.getValueDouble());
}
}
}
LambdaQueryWrapper<IdxBizPvPointVarCentralValue> wrapper = new LambdaQueryWrapper<>();
List<IdxBizPvPointVarCentralValue> idxBizUhefs = idxBizPvPointVarCentralValueMapper.selectList(wrapper);
List< Map<String, Object>> datas = new ArrayList<>();
Map<String, Map<String, Object>> resultMap = new HashMap<>();
for (IdxBizPvPointVarCentralValue idxBizUhef : idxBizUhefs) {
double value1 = 0.00;
double value2 = 0.00;
double value3 = 0.00;
double value4 = 0.00;
for (IdxBizPvPointProcessVariableClassificationDto datum : data) {
if (idxBizUhef.getProcessPoint1Id().equals(datum.getSequenceNbr())){
value1 = datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint2Id().equals(datum.getSequenceNbr())) {
value2 = datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint3Id().equals(datum.getSequenceNbr())) {
value3 = datum.getCurrentValue();
}
if (idxBizUhef.getAnalysisPointId().equals(datum.getSequenceNbr())) {
value4 = datum.getCurrentValue();
}
}
Map<String, Object> map = new HashMap<>();
if (idxBizUhef.getProcess1Min() <= value1 && value1 <= idxBizUhef.getProcess1Max() &&
idxBizUhef.getProcess2Min() <= value2 && value2 <= idxBizUhef.getProcess2Max() &&
idxBizUhef.getProcess3Min() <= value3 && value3 <= idxBizUhef.getProcess3Max()){
map.put("analysisVariable",value4);
map.put("stdDev",idxBizUhef.getAnalysisStdDev());
......@@ -795,9 +1115,45 @@ public class CommonServiceImpl {
logger.info("------------------------------------------开始调用健康指数计算算法开始----------------------------------------");
HashMap<String, Object> realParams = new HashMap<>();
realParams.put(gkzxzjskey1, values);
String response = HttpUtil.createPost(baseUrl + jkzsjsurl).body(JSON.toJSONString(realParams)).execute().body();
String response = HttpUtil.createPost(baseUrl + jkzsgfurl).body(JSON.toJSONString(realParams)).execute().body();
JSONObject result = JSON.parseObject(response).getJSONObject("result");
if (null != result){
JSONObject jsonObject =result .getJSONObject("result1").getJSONObject("rows");
List<JSONObject> jsonObjects = JSON.parseArray(JSON.toJSONString(jsonObject), JSONObject.class);
List<String> ids = new ArrayList<>();
jsonObjects.stream().forEach(e-> ids.add(e.getString("analysisVariableId")));
LambdaQueryWrapper<IdxBizPvPointProcessVariableClassification> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(IdxBizPvPointProcessVariableClassification::getSequenceNbr,ids);
List<IdxBizPvPointProcessVariableClassification> list = idxBizPvPointProcessVariableClassificationMapper.selectList(queryWrapper);
List<IdxBizPvHealthIndex> idxBizPvHealthIndexs = new ArrayList<>();
for (IdxBizPvPointProcessVariableClassification obj : list) {
for (JSONObject object : jsonObjects) {
if (obj.getSequenceNbr().equals(object.getString("analysisVariableId"))){
IdxBizPvHealthIndex idxBizFanHealthIndex = new IdxBizPvHealthIndex();
BeanUtils.copyProperties(idxBizFanHealthIndex,obj);
idxBizFanHealthIndex.setHealthIndex(object.getDouble("indexValue"));
idxBizFanHealthIndex.setAnalysisObjSeq(obj.getSequenceNbr());
idxBizFanHealthIndex.setRecDate(new Date());
//获取健康指数对应等级
LambdaQueryWrapper<IdxBizPvHealthLevel> query = new LambdaQueryWrapper<>();
query.eq(IdxBizPvHealthLevel::getAnalysisObjType,"设备");
query.eq(IdxBizPvHealthLevel::getStatus,obj.getStation());
query.le(IdxBizPvHealthLevel::getGroupLowerLimit,object.getDouble("indexValue"));
query.ge(IdxBizPvHealthLevel::getGroupUpperLimit,object.getDouble("indexValue"));
IdxBizPvHealthLevel idxBizFanHealthLevel = idxBizPvHealthLevelMapper.selectOne(query);
idxBizFanHealthIndex.setHealthLevel(idxBizFanHealthLevel.getHealthLevel());
idxBizFanHealthIndex.setAnalysisType("按时刻");
idxBizFanHealthIndex.setANOMALY(object.getDouble("scoreValue"));
idxBizPvHealthIndexs.add(idxBizFanHealthIndex);
}
}
}
idxBizPvHealthIndexService.saveBatch(idxBizPvHealthIndexs);
}
try {
logger.info("--------------------repsonse: "+response);
logger.info("--------------------repsonse: " + response);
logger.info("------------------------------------------调用健康指数计算算法结束----------------------------------------");
} catch (Exception e) {
throw new RuntimeException(e);
......
......@@ -44,6 +44,217 @@ public class HealthStatusIndicatorServiceImpl {
*
*/
@Autowired
IdxBizPvHealthIndexMapper idxBizPvHealthIndexMapper;
@Autowired
IdxBizPvWarningRecordMapper idxBizPvWarningRecordMapper;
/***
* 每一小时获取一次最大粒度内的指数异常数据
* 判断一小时内数据是否符合预警规则 符合则报警并在redis中缓存 同一级别的预警记录下次不生成
*
*/
@Scheduled(cron = "0 0 */1 * * ?")
private void healthWarningMinuteGF() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,calendar.get(Calendar.HOUR_OF_DAY)-1);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LambdaQueryWrapper<IdxBizPvHealthIndex> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IdxBizPvHealthIndex::getAnalysisType,"按时刻");
wrapper.le(IdxBizPvHealthIndex::getHealthIndex,healthValueNotice);
wrapper.ge(IdxBizPvHealthIndex::getRecDate,df.format(calendar.getTime()));
wrapper.orderByDesc(IdxBizPvHealthIndex::getRecDate);
List<IdxBizPvHealthIndex> healthIndices = idxBizPvHealthIndexMapper.selectList(wrapper);
Map<String, Map<String, List<IdxBizPvHealthIndex>>> gateWayMaps = healthIndices.stream().collect(Collectors.groupingBy(IdxBizPvHealthIndex::getGatewayId, Collectors.groupingBy(IdxBizPvHealthIndex::getIndexAddress)));
for (String gateWayId : gateWayMaps.keySet()) {
Map<String, List<IdxBizPvHealthIndex>> healthDataMaps = gateWayMaps.get(gateWayId);
for (String address : healthDataMaps.keySet()) {
List<IdxBizPvHealthIndex> idxBizPvHealthIndices = healthDataMaps.get(address);
List<Double> healthIndex = idxBizPvHealthIndices.stream().map(IdxBizPvHealthIndex::getHealthIndex).collect(Collectors.toList());
long riskNum = healthIndex.stream().filter(e -> e <= healthValueRisk).count();
long warnNum = healthIndex.stream().filter(e -> e <= healthValueWarn).count();
long noticeNum = healthIndex.stream().filter(e -> e <= healthValueNotice).count();
String level = "";
String content = "";
String num = "";
content = healthValueMinCount + "分钟";
if (riskNum >= healthValueMinCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_risk_minute")){
redisUtils.set(gateWayId+"_"+address+"_health_risk_minute","risk");
level ="危险";
num = ""+healthValueRisk;
}else if (warnNum >= healthValueMinCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_warn_minute") ){
redisUtils.set(gateWayId+"_"+address+"_health_warn_minute","warn");
level ="警告";
num = ""+healthValueWarn;
}else if (noticeNum >= healthValueMinCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_notice_minute")){
redisUtils.set(gateWayId+"_"+address+"_health_notice_minute","notice");
level ="注意";
num = ""+healthValueNotice;
}
if (!level.equals("")){
IdxBizPvWarningRecord idxBizPvWarningRecord = new IdxBizPvWarningRecord();
idxBizPvWarningRecord.setRecord(idxBizPvHealthIndices.get(0).getRecord());
idxBizPvWarningRecord.setArae(idxBizPvHealthIndices.get(0).getArae());
idxBizPvWarningRecord.setStation(idxBizPvHealthIndices.get(0).getStation());
idxBizPvWarningRecord.setSubarray(idxBizPvHealthIndices.get(0).getSubarray());
idxBizPvWarningRecord.setGatewayId(gateWayId);
idxBizPvWarningRecord.setIndexAddress(address);
idxBizPvWarningRecord.setEquipmentName(idxBizPvHealthIndices.get(0).getEquipmentName());
idxBizPvWarningRecord.setAnalysisPointId(idxBizPvHealthIndices.get(0).getAnalysisObjSeq());
idxBizPvWarningRecord.setDisposotionState("未处置");
idxBizPvWarningRecord.setStatus("0");
idxBizPvWarningRecord.setWarningName(level);
idxBizPvWarningRecord.setCONTENT("连续"+content+"健康指数<"+num );
}
}
}
}
/***
* 每五小时获取一次最大粒度内的指数异常数据
* 判断五小时内数据是否符合预警规则 符合则报警并在redis中缓存 同一级别的预警记录下次不生成
*
*/
@Scheduled(cron = "0 0 */5 * * ?")
private void healthWarningHourGF() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,calendar.get(Calendar.HOUR_OF_DAY)-5);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LambdaQueryWrapper<IdxBizPvHealthIndex> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IdxBizPvHealthIndex::getAnalysisType,"按小时");
wrapper.le(IdxBizPvHealthIndex::getHealthIndex,healthValueNotice);
wrapper.ge(IdxBizPvHealthIndex::getRecDate,df.format(calendar.getTime()));
wrapper.orderByDesc(IdxBizPvHealthIndex::getRecDate);
List<IdxBizPvHealthIndex> healthIndices = idxBizPvHealthIndexMapper.selectList(wrapper);
Map<String, Map<String, List<IdxBizPvHealthIndex>>> gateWayMaps = healthIndices.stream().collect(Collectors.groupingBy(IdxBizPvHealthIndex::getGatewayId, Collectors.groupingBy(IdxBizPvHealthIndex::getIndexAddress)));
for (String gateWayId : gateWayMaps.keySet()) {
Map<String, List<IdxBizPvHealthIndex>> healthDataMaps = gateWayMaps.get(gateWayId);
for (String address : healthDataMaps.keySet()) {
List<IdxBizPvHealthIndex> idxBizPvHealthIndices = healthDataMaps.get(address);
List<Double> healthIndex = idxBizPvHealthIndices.stream().map(IdxBizPvHealthIndex::getHealthIndex).collect(Collectors.toList());
long riskNum = healthIndex.stream().filter(e -> e <= healthValueRisk).count();
long warnNum = healthIndex.stream().filter(e -> e <= healthValueWarn).count();
long noticeNum = healthIndex.stream().filter(e -> e <= healthValueNotice).count();
String level = "";
String content = "";
String num = "";
content = healthValueHourCount + "小时";
if (riskNum >= healthValueHourCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_risk_hour")){
redisUtils.set(gateWayId+"_"+address+"_health_risk_hour","risk");
level ="危险";
num = ""+healthValueRisk;
}else if (warnNum >= healthValueHourCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_risk_hour") ){
redisUtils.set(gateWayId+"_"+address+"_health_warn_hour","warn");
level ="警告";
num = ""+healthValueWarn;
}else if (noticeNum >= healthValueHourCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_notice_hour")){
redisUtils.set(gateWayId+"_"+address+"_health_notice_hour","notice");
level ="注意";
num = ""+healthValueNotice;
}
if (!level.equals("")){
IdxBizPvWarningRecord idxBizPvWarningRecord = new IdxBizPvWarningRecord();
idxBizPvWarningRecord.setRecord(idxBizPvHealthIndices.get(0).getRecord());
idxBizPvWarningRecord.setArae(idxBizPvHealthIndices.get(0).getArae());
idxBizPvWarningRecord.setStation(idxBizPvHealthIndices.get(0).getStation());
idxBizPvWarningRecord.setSubarray(idxBizPvHealthIndices.get(0).getSubarray());
idxBizPvWarningRecord.setGatewayId(gateWayId);
idxBizPvWarningRecord.setIndexAddress(address);
idxBizPvWarningRecord.setEquipmentName(idxBizPvHealthIndices.get(0).getEquipmentName());
idxBizPvWarningRecord.setAnalysisPointId(idxBizPvHealthIndices.get(0).getAnalysisObjSeq());
idxBizPvWarningRecord.setDisposotionState("未处置");
idxBizPvWarningRecord.setStatus("0");
idxBizPvWarningRecord.setWarningName(level);
idxBizPvWarningRecord.setCONTENT("连续"+content+"健康指数<"+num );
}
}
}
}
/***
* 每三天取一次最大粒度内的指数异常数据
* 判断三天内数据是否符合预警规则 符合则报警并在redis中缓存 同一级别的预警记录下次不生成
*
*/
@Scheduled(cron = "0 0 0 */3 * ? ")
private void healthWarningDayGF() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)-3);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LambdaQueryWrapper<IdxBizPvHealthIndex> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IdxBizPvHealthIndex::getAnalysisType,"按天");
wrapper.le(IdxBizPvHealthIndex::getHealthIndex,healthValueNotice);
wrapper.ge(IdxBizPvHealthIndex::getRecDate,df.format(calendar.getTime()));
wrapper.orderByDesc(IdxBizPvHealthIndex::getRecDate);
List<IdxBizPvHealthIndex> healthIndices = idxBizPvHealthIndexMapper.selectList(wrapper);
Map<String, Map<String, List<IdxBizPvHealthIndex>>> gateWayMaps = healthIndices.stream().collect(Collectors.groupingBy(IdxBizPvHealthIndex::getGatewayId, Collectors.groupingBy(IdxBizPvHealthIndex::getIndexAddress)));
for (String gateWayId : gateWayMaps.keySet()) {
Map<String, List<IdxBizPvHealthIndex>> healthDataMaps = gateWayMaps.get(gateWayId);
for (String address : healthDataMaps.keySet()) {
List<IdxBizPvHealthIndex> idxBizPvHealthIndices = healthDataMaps.get(address);
List<Double> healthIndex = idxBizPvHealthIndices.stream().map(IdxBizPvHealthIndex::getHealthIndex).collect(Collectors.toList());
long riskNum = healthIndex.stream().filter(e -> e <= healthValueRisk).count();
long warnNum = healthIndex.stream().filter(e -> e <= healthValueWarn).count();
long noticeNum = healthIndex.stream().filter(e -> e <= healthValueNotice).count();
String level = "";
String content = "";
String num = "";
content = healthValueDayCount + "天";
if (riskNum >= healthValueDayCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_risk_day")){
redisUtils.set(gateWayId+"_"+address+"_health_risk_day","risk");
level ="危险";
num = ""+healthValueRisk;
}else if (warnNum >= healthValueDayCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_warn_day") ){
redisUtils.set(gateWayId+"_"+address+"_health_warn_day","warn");
level ="警告";
num = ""+healthValueWarn;
}else if (noticeNum >= healthValueDayCount && !redisUtils.hasKey(gateWayId+"_"+address+"_health_notice_day")){
redisUtils.set(gateWayId+"_"+address+"_health_notice_day","notice");
level ="注意";
num = ""+healthValueNotice;
}
if (!level.equals("")){
IdxBizPvWarningRecord idxBizPvWarningRecord = new IdxBizPvWarningRecord();
idxBizPvWarningRecord.setRecord(idxBizPvHealthIndices.get(0).getRecord());
idxBizPvWarningRecord.setArae(idxBizPvHealthIndices.get(0).getArae());
idxBizPvWarningRecord.setStation(idxBizPvHealthIndices.get(0).getStation());
idxBizPvWarningRecord.setSubarray(idxBizPvHealthIndices.get(0).getSubarray());
idxBizPvWarningRecord.setGatewayId(gateWayId);
idxBizPvWarningRecord.setIndexAddress(address);
idxBizPvWarningRecord.setEquipmentName(idxBizPvHealthIndices.get(0).getEquipmentName());
idxBizPvWarningRecord.setAnalysisPointId(idxBizPvHealthIndices.get(0).getAnalysisObjSeq());
idxBizPvWarningRecord.setDisposotionState("未处置");
idxBizPvWarningRecord.setStatus("0");
idxBizPvWarningRecord.setWarningName(level);
idxBizPvWarningRecord.setCONTENT("连续"+content+"健康指数<"+num );
idxBizPvWarningRecordMapper.insert(idxBizPvWarningRecord);
}
}
}
}
@Scheduled(cron = "0 0 */1 * * ?")
private void healthWarningMinute() {
Calendar calendar = Calendar.getInstance();
......
......@@ -4,4 +4,54 @@
<select id="gateWayIdListPv" resultType="java.lang.String">
select GATEWAY_ID from idx_biz_pv_point_process_variable_classification group by GATEWAY_ID;
</select>
<select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizPvPointProcessVariableClassificationDto">
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_pv_point_process_variable_classification uxfv
WHERE uxfv.SEQUENCE_NBR IN (
SELECT PROCESS_POINT1_ID
FROM `idx_biz_pv_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_pv_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_pv_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_pv_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_pv_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
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY b.SEQUENCE_NBR
</select>
</mapper>
......@@ -23,4 +23,13 @@ public enum QrcodeColorEnum {
}
return null;
}
public static String getName(String code) {
for (QrcodeColorEnum qrcodeColorEnum : QrcodeColorEnum.values()) {
if (qrcodeColorEnum.getCode().equals(code)) {
return qrcodeColorEnum.getName();
}
}
return null;
}
}
package com.yeejoin.amos.boot.module.jxiop.api.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jxiop.api.dto.EXPersonUser;
import com.yeejoin.amos.boot.module.jxiop.api.dto.StationBasicDto;
import com.yeejoin.amos.boot.module.jxiop.api.dto.UserMapperDto;
......@@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 人员基本信息 Mapper 接口
......@@ -44,4 +46,13 @@ public interface PersonBasicMapper extends BaseMapper<PersonBasic> {
@Param("orgCode") String orgCode,
@Param("ids") String [] ids
);
List<Map<String, Object>> getPersonYardStatistics(@Param("parentCode") String parentCode);
List<Map<String, Object>> getPersonYardByPage(@Param("current") Integer current,
@Param("size") Integer size,
@Param("parentCode") String parentCode);
Integer getPersonYardByPageCount(@Param("parentCode") String parentCode);
}
......@@ -193,5 +193,50 @@
</select>
<select id="getPersonYardStatistics" resultType="java.util.Map">
SELECT
qrcode_color as qrCodeColor,
count( 1 ) as value
FROM
person_basic
<where>
<if test="parentCode != null and parentCode != ''">
AND project_org_code like concat(#{parentCode},'%')
</if>
</where>
GROUP BY
qrcode_color
</select>
<select id="getPersonYardByPage" resultType="java.util.Map">
SELECT
ifnull(b.name, '') as personName ,
ifnull(a.qrcode_color, '') AS qrCodeColor,
ifnull(c.station_name, '') AS stationName
FROM
person_basic a
LEFT JOIN person_account b ON a.sequence_nbr = b.person_id
LEFT JOIN station_basic c ON a.project_org_code = c.project_org_code
<where>
<if test="parentCode != null and parentCode != ''">
AND a.project_org_code like concat(#{parentCode},'%')
</if>
</where>
ORDER BY a.rec_date DESC
limit #{current},#{size}
</select>
<select id="getPersonYardByPageCount" resultType="java.lang.Integer">
SELECT
count(1)
FROM
person_basic a
LEFT JOIN person_account b ON a.sequence_nbr = b.person_id
LEFT JOIN station_basic c ON a.project_org_code = c.project_org_code
<where>
<if test="parentCode != null and parentCode != ''">
AND a.project_org_code like concat(#{parentCode},'%')
</if>
</where>
</select>
</mapper>
......@@ -14,6 +14,8 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
import com.yeejoin.amos.boot.module.jxiop.biz.service.impl.PersonBasicServiceImpl;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
......@@ -177,4 +179,33 @@ public class PersonBasicController extends BaseController {
response.setDevMessage(message);
return response;
}
/**
* 评估大屏 - 人员赋码环形图查询
*
* @param parentCode 父级code
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getPersonYardStatistics")
@ApiOperation(httpMethod = "GET", value = "评估大屏 - 人员赋码环形图查询", notes = "评估大屏 - 人员赋码环形图查询")
public ResponseModel<List<Map<String, Object>>> getPersonYardStatistics(@RequestParam(required = false, value = "parentCode") String parentCode) {
List<Map<String, Object>> resultList = personBasicServiceImpl.getPersonYardStatistics(parentCode);
return ResponseHelper.buildResponse(resultList);
}
/**
* 评估大屏 - 人员赋码列表查询
*
* @param parentCode 父级code
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getPersonYardByPage")
@ApiOperation(httpMethod = "GET", value = "评估大屏 - 人员赋码列表查询", notes = "评估大屏 - 人员赋码列表查询")
public ResponseModel<Page<Map<String, Object>>> getPersonYardByPage(@RequestParam(required = false, value = "parentCode") String parentCode,
@RequestParam(value = "current") Integer current,
@RequestParam(value = "size") Integer size) {
Page<Map<String, Object>> resultList = personBasicServiceImpl.getPersonYardByPage(parentCode, current, size);
return ResponseHelper.buildResponse(resultList);
}
}
......@@ -602,4 +602,30 @@ public class PersonBasicServiceImpl extends BaseService<PersonBasicDto, PersonBa
return page;
}
public List<Map<String, Object>> getPersonYardStatistics(String parentCode) {
List<Map<String, Object>> resultList = personBasicMapper.getPersonYardStatistics(parentCode);
resultList.forEach(item -> {
String name = QrcodeColorEnum.getName(String.valueOf(item.get("qrCodeColor")));
item.put("name", name);
item.put("value", Integer.parseInt(item.get("value").toString()));
});
return resultList;
}
public Page<Map<String, Object>> getPersonYardByPage(String parentCode, Integer current, Integer size) {
List<Map<String, Object>> resultList = personBasicMapper.getPersonYardByPage((current - 1) * size, size , parentCode);
Integer count = personBasicMapper.getPersonYardByPageCount(parentCode);
resultList.forEach(item -> {
String name = QrcodeColorEnum.getName(String.valueOf(item.get("qrCodeColor")));
item.put("name", name);
});
Page<Map<String, Object>> mapPage = new Page<>();
mapPage.setRecords(resultList);
mapPage.setCurrent(current);
mapPage.setSize(size);
mapPage.setTotal(count);
return mapPage;
}
}
\ No newline at end of file
......@@ -640,7 +640,7 @@ public class MonitorFanIdxController extends BaseController {
data8.put("title",columnMap.get("总辐射累计").toString());
objects.add(data8);
Map<String, Object> data9 = new HashMap<>();
data9.put("title","84.00%");//综合效率
data9.put("title","0.00%");//综合效率
objects.add(data9);
......
......@@ -254,7 +254,7 @@ public class MonitoringServiceIMQTTmpl {
data6.put("title", Float.valueOf(columnMap.get("有功功率").toString()));
objects.add(data6);
Map<String, Object> data7 = new HashMap<>();
data7.put("title", 7.47);
data7.put("title", 0.00);
objects.add(data7);
IPage<Map<String, Object>> result = new Page<>();
result.setRecords(objects);
......
......@@ -423,7 +423,7 @@ public class MonitoringServiceImpl {
speendOrirradiate = String.valueOf(commonServiceImpl.getAvgvalueByIndicatior(stationBasic.getFanGatewayId(), "30秒平均风速"));
homeMapStationInfoDto.setSpeendOrirradiate(speendOrirradiate);
} else {
homeMapStationInfoDto.setSpeendOrirradiate(String.valueOf(Math.random() * 100));
homeMapStationInfoDto.setSpeendOrirradiate("0.00");
}
StationCoordinate stationCoordinate = stationCoordinateList.stream().filter(stationCoordinate1 -> stationCoordinate1.getStationId().equals(stationBasic.getSequenceNbr())).collect(Collectors.toList()).get(0);
//获取场站经纬度
......
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