Commit 256925bc authored by tangwei's avatar tangwei

结决冲突

parents ea23097a 2a0751dd
...@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray; ...@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.api.householdapi.constant.GoLangConstant; import com.yeejoin.amos.api.householdapi.constant.GoLangConstant;
import com.yeejoin.amos.api.householdapi.constant.KSolarConstant; import com.yeejoin.amos.api.householdapi.constant.KSolarConstant;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.jcajce.provider.symmetric.AES; import org.bouncycastle.jcajce.provider.symmetric.AES;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -20,7 +21,8 @@ import java.util.List; ...@@ -20,7 +21,8 @@ import java.util.List;
@Component @Component
public class KSolarRequestUtil { @Slf4j
public class KsolarRequestUtil {
/** /**
* @return HashMap<String, Object> 发送请求前的准备 准备header信息 * @return HashMap<String, Object> 发送请求前的准备 准备header信息
...@@ -66,6 +68,7 @@ public class KSolarRequestUtil { ...@@ -66,6 +68,7 @@ public class KSolarRequestUtil {
String url = KSolarConstant.baseurl + apiurl; String url = KSolarConstant.baseurl + apiurl;
respone = sendRequest(requestMethod, url, requestParmInfo, headMap); respone = sendRequest(requestMethod, url, requestParmInfo, headMap);
jsonArray = handlerResponseByResultResolverule(ResultResolveRule, respone); jsonArray = handlerResponseByResultResolverule(ResultResolveRule, respone);
log.info("原始数据:{}", jsonArray);
if (!ObjectUtils.isEmpty(jsonArray)) { if (!ObjectUtils.isEmpty(jsonArray)) {
result = JSONArray.parseArray(jsonArray.toJSONString(), tClass); result = JSONArray.parseArray(jsonArray.toJSONString(), tClass);
} }
...@@ -82,8 +85,12 @@ public class KSolarRequestUtil { ...@@ -82,8 +85,12 @@ public class KSolarRequestUtil {
* @desc 根据解析规则解析请求返回数据 * @desc 根据解析规则解析请求返回数据
*/ */
public JSONArray handlerResponseByResultResolverule(String resultResovle, String response) { public JSONArray handlerResponseByResultResolverule(String resultResovle, String response) {
JSONObject jsonObject = JSONObject.parseObject(response);
JSONArray jsonArray = new JSONArray(); JSONArray jsonArray = new JSONArray();
if ("arr".equals(resultResovle)) {
jsonArray = JSONArray.parseArray(response);
} else {
JSONObject jsonObject = JSONObject.parseObject(response);
if (ObjectUtil.isNotEmpty(resultResovle)) { if (ObjectUtil.isNotEmpty(resultResovle)) {
String[] rules = resultResovle.split(","); String[] rules = resultResovle.split(",");
if (rules.length > 0) { if (rules.length > 0) {
...@@ -102,6 +109,7 @@ public class KSolarRequestUtil { ...@@ -102,6 +109,7 @@ public class KSolarRequestUtil {
jsonArray.add(jsonObject); jsonArray.add(jsonObject);
} }
} }
}
return jsonArray; return jsonArray;
} }
......
package com.yeejoin.amos.api.householdapi.constant; package com.yeejoin.amos.api.householdapi.constant;
import java.util.HashMap;
public class KSolarConstant { public class KSolarConstant {
public static String baseurl ="http://111.230.136.62:8092"; public static String baseurl ="http://111.230.136.62:8092";
public static String account ="三一硅能"; public static String account ="三一硅能";
...@@ -11,6 +13,47 @@ public class KSolarConstant { ...@@ -11,6 +13,47 @@ public class KSolarConstant {
public static String requestPOST="POST"; public static String requestPOST="POST";
public static String requestGET="GET"; public static String requestGET="GET";
public static String stationListUrl="/station/list/info"; public static String stationListUrl="/station/list/info";
public static String stationInfoByIdUrl="/station/list/info/by/id";
public static String stationEarnUrl="/station/detail/earn";
public static String stationEarnChartUrl="/protocol/station/statistic/elec/chart";
public static String stationCollectListUrl="/station/detail/collect/list";
public static String stationCollectDataUrl="/station/detail/get/realdata/by/collectid";
public static String stationCollectAlarmUrl="/alarm/bi/list";
public static String resovle_rows="rows"; public static String resovle_rows="rows";
public static String resovle_data="data";
public static String resovle_arr="arr";
public static Double kwhToMwh = 0.0001;
public static final HashMap<String, String> stationStaus = new HashMap<String, String>() {
{
put("1", "在线");
put("0", "离线");
put("2", "报警");
}
};
public static final HashMap<String, String> collectStaus = new HashMap<String, String>() {
{
put("0", "在线");
put("1", "离线");
put("2", "报警");
}
};
public static final HashMap<String, String> alarmLevel = new HashMap<String, String>() {
{
put("1", "低级");
put("2", "中级");
put("3", "高级");
}
};
public static final HashMap<String, String> alarmstatus = new HashMap<String, String>() {
{
put("0", "未恢复");
put("1", "已恢复");
}
};
} }
package com.yeejoin.amos.api.householdapi.controller; package com.yeejoin.amos.api.householdapi.controller;
import com.yeejoin.amos.api.householdapi.Utils.HouseholdPvUtils; import com.yeejoin.amos.api.householdapi.Utils.HouseholdPvUtils;
import com.yeejoin.amos.api.householdapi.Utils.KSolarRequestUtil;
import com.yeejoin.amos.api.householdapi.face.service.GoLangDataAcquisitionService; import com.yeejoin.amos.api.householdapi.face.service.GoLangDataAcquisitionService;
import com.yeejoin.amos.api.householdapi.face.service.KSolarDataAcquisitionService; import com.yeejoin.amos.api.householdapi.face.service.KSolarDataAcquisitionService;
import fastjson.JSON;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -15,7 +13,6 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType; ...@@ -15,7 +13,6 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
/** /**
...@@ -111,9 +108,11 @@ public class HouseholdTestController { ...@@ -111,9 +108,11 @@ public class HouseholdTestController {
@PostMapping(value = "/ksolarnew") @PostMapping(value = "/ksolarnew")
@ApiOperation(httpMethod = "POST", value = "科士达", notes = "科士达") @ApiOperation(httpMethod = "POST", value = "科士达", notes = "科士达")
public void ksolarnew() throws IOException { public void ksolarnew() throws IOException {
// kSolarDataAcquisitionService.stationList();
kSolarDataAcquisitionService.stationDetail();
kSolarDataAcquisitionService.stationList(); kSolarDataAcquisitionService.stationList();
// goLangDataAcquisitionService.stationDetail(); kSolarDataAcquisitionService.collectorList();
// goLangDataAcquisitionService.collectorList(); kSolarDataAcquisitionService.collectorDetail();
//// goLangDataAcquisitionService.inverterList(); //// goLangDataAcquisitionService.inverterList();
// goLangDataAcquisitionService.collectorDetail(); // goLangDataAcquisitionService.collectorDetail();
// goLangDataAcquisitionService.inverterDetail(); // goLangDataAcquisitionService.inverterDetail();
......
package com.yeejoin.amos.api.householdapi.face.dto;
import lombok.Data;
/**
* @author DELL
*/
@Data
public class KsolarAlarmDto {
private String alarmId;
private String attribId;
private String collectName;
private String deviceId;
private String inverterId;
private String levels;
private String message;
private String removeTime;
private String saveTime;
private String solution;
private String stationId;
private String stationName;
private String status;
}
...@@ -54,7 +54,7 @@ public class JpInverter implements Serializable { ...@@ -54,7 +54,7 @@ public class JpInverter implements Serializable {
* 采集器id * 采集器id
*/ */
@TableField("collector_id") @TableField("collector_id")
private Long collectorId; private String collectorId;
/** /**
* 采集器sn编码 * 采集器sn编码
......
...@@ -43,7 +43,7 @@ public class JpInverterElectricity implements Serializable { ...@@ -43,7 +43,7 @@ public class JpInverterElectricity implements Serializable {
* 逆变器id * 逆变器id
*/ */
@TableField("inverter_id") @TableField("inverter_id")
private Long inverterId; private String inverterId;
/** /**
* sn编码 * sn编码
......
...@@ -17,437 +17,437 @@ public class GolangInverterDetail { ...@@ -17,437 +17,437 @@ public class GolangInverterDetail {
private String sirRealtime; private String sirRealtime;
private String uPv24Str; private String uPv24Str;
private String state; private String state;
private String pow25Str; // private String pow25Str;
private String batteryPowerZheng; // private String batteryPowerZheng;
private String uPv1Str; // private String uPv1Str;
private String backupTotalEnergyStr; // private String backupTotalEnergyStr;
private String uPv7; // private String uPv7;
private String uPv8; // private String uPv8;
private String powerPec; // private String powerPec;
private String pow26Str; // private String pow26Str;
private String homeLoadEnergy; // private String homeLoadEnergy;
private String pow13Str; // private String pow13Str;
private String eTotal; // private String eTotal;
private String pow1Str; // private String pow1Str;
private String bypassLoadPower; // private String bypassLoadPower;
private String temp; // private String temp;
private String pow14Str; // private String pow14Str;
private String gridPurchasedEnergyStr; // private String gridPurchasedEnergyStr;
private String uPv3; // private String uPv3;
private String uPv4; // private String uPv4;
private String homeGridMonthEnergy; // private String homeGridMonthEnergy;
private String pEpm; // private String pEpm;
private String gridPurchasedYearEnergyStr; // private String gridPurchasedYearEnergyStr;
private String socChargingSet; // private String socChargingSet;
private String uPv28; // private String uPv28;
private String uPv27; // private String uPv27;
private String uPv20; // private String uPv20;
private String pow9Str; // private String pow9Str;
private String bypassAcOnoffSet; // private String bypassAcOnoffSet;
private String daylight; // private String daylight;
private String dcInputtype; // private String dcInputtype;
private String dcBusHalfStr; // private String dcBusHalfStr;
private String pow7Str; // private String pow7Str;
private String gridSellYesterdayEnergyStr; // private String gridSellYesterdayEnergyStr;
private String porwerPercent; // private String porwerPercent;
private String uAc2Str; // private String uAc2Str;
private String pReactiveLimitSet; // private String pReactiveLimitSet;
private String uPv18; // private String uPv18;
private String uPv17; // private String uPv17;
private String uPv10; // private String uPv10;
private String batteryFcvSet; // private String batteryFcvSet;
private String pow28Str; // private String pow28Str;
private String pow30; // private String pow30;
private String batteryPowerFu; // private String batteryPowerFu;
private String timeZoneStr; // private String timeZoneStr;
private String fac; // private String fac;
private String homeGridTotalEnergyStr; // private String homeGridTotalEnergyStr;
private String iPv29; // private String iPv29;
private String iPv26; // private String iPv26;
private String iPv21; // private String iPv21;
private String iPv27Str; // private String iPv27Str;
private String batteryTotalChargeEnergyStr; // private String batteryTotalChargeEnergyStr;
private String meter1Type; // private String meter1Type;
private String batteryDischargeLimitingStr; // private String batteryDischargeLimitingStr;
private String homeGridYesterdayEnergy; // private String homeGridYesterdayEnergy;
private String pow2Str; // private String pow2Str;
private String uAc3Str; // private String uAc3Str;
private String collectorsn; // private String collectorsn;
private String batteryFailureInformation01; // private String batteryFailureInformation01;
private String iPv18Str; // private String iPv18Str;
private String uPv30Str; // private String uPv30Str;
private String uInitGndStr; // private String uInitGndStr;
private String eYearStr; // private String eYearStr;
private String gridSellEnergyStr; // private String gridSellEnergyStr;
private String batteryDischargeEnergyStr; // private String batteryDischargeEnergyStr;
private String familyLoadPercent; // private String familyLoadPercent;
private String batteryCapacitySoc; // private String batteryCapacitySoc;
private String batteryTodayChargeEnergyStr; // private String batteryTodayChargeEnergyStr;
private String pEpmSetStr; // private String pEpmSetStr;
private String iPv21Str; // private String iPv21Str;
private String pLimitSet; // private String pLimitSet;
private String iPv5Str; // private String iPv5Str;
private String iPv1Str; // private String iPv1Str;
private String iPv26Str; // private String iPv26Str;
private String homeLoadTotalEnergy; // private String homeLoadTotalEnergy;
private String batteryType; // private String batteryType;
private String iPv14Str; // private String iPv14Str;
private String homeGridYesterdayEnergyStr; // private String homeGridYesterdayEnergyStr;
private String backupTotalEnergy; // private String backupTotalEnergy;
private String iAc3Str; // private String iAc3Str;
private String gridSellTotalEnergyStr; // private String gridSellTotalEnergyStr;
private String uPv29; // private String uPv29;
private String uPv26; // private String uPv26;
private String uPv21; // private String uPv21;
private String uPv12Str; // private String uPv12Str;
private String gridPurchasedEnergy; // private String gridPurchasedEnergy;
private String pow2; // private String pow2;
private String timeStr; // private String timeStr;
private String pow5; // private String pow5;
private String iPv19; // private String iPv19;
private String iPv16; // private String iPv16;
private String iPv11; // private String iPv11;
private String dcBus; // private String dcBus;
private String pow32Str; // private String pow32Str;
private String familyLoadPower; // private String familyLoadPower;
private String meter2SiteHigh; // private String meter2SiteHigh;
private String inverterMeterModel; // private String inverterMeterModel;
private String iPv32Str; // private String iPv32Str;
private String familyLoadPowerStr; // private String familyLoadPowerStr;
private String batteryYearDischargeEnergyStr; // private String batteryYearDischargeEnergyStr;
private String iPv24Str; // private String iPv24Str;
private String currentState; // private String currentState;
private String iPv25; // private String iPv25;
private String iPv22; // private String iPv22;
private String iPv3Str; // private String iPv3Str;
private String pow4Str; // private String pow4Str;
private String gridPurchasedYesterdayEnergy; // private String gridPurchasedYesterdayEnergy;
private String energyStorageControl; // private String energyStorageControl;
private String homeLoadTodayEnergyStr; // private String homeLoadTodayEnergyStr;
private String batteryPowerStr; // private String batteryPowerStr;
private String meter2TypeLow; // private String meter2TypeLow;
private String pow27Str; // private String pow27Str;
private String homeGridMonthEnergyStr; // private String homeGridMonthEnergyStr;
private String iPv23Str; // private String iPv23Str;
private String eYear; // private String eYear;
private String acInType; // private String acInType;
private String batteryVoltage; // private String batteryVoltage;
private String reactivePowerStr; // private String reactivePowerStr;
private String iPv12Str; // private String iPv12Str;
private String pow19Str; // private String pow19Str;
private String timeZone; // private String timeZone;
private String eMonthStr; // private String eMonthStr;
private String simFlowState; // private String simFlowState;
private String bstteryCurrentStr; // private String bstteryCurrentStr;
private String uPv16Str; // private String uPv16Str;
private String uPv3Str; // private String uPv3Str;
private String gridSellTotalEnergy; // private String gridSellTotalEnergy;
private String powTotal; // private String powTotal;
private String pow22; // private String pow22;
private String pow25; // private String pow25;
private String familyLoadPowerPec; // private String familyLoadPowerPec;
private String oneSelf; // private String oneSelf;
private String uPv19; // private String uPv19;
private String uPv16; // private String uPv16;
private String uPv11; // private String uPv11;
private String batteryDischargeEnergy; // private String batteryDischargeEnergy;
private String pow13; // private String pow13;
private String pow14; // private String pow14;
private String psumCalStr; // private String psumCalStr;
private String fullHourStr; // private String fullHourStr;
private String iPv3; // private String iPv3;
private String iPv4; // private String iPv4;
private String batteryPowerBms; // private String batteryPowerBms;
private String eTotalStr; // private String eTotalStr;
private String uPv11Str; // private String uPv11Str;
private String pow10; // private String pow10;
private String pow17; // private String pow17;
private String pow18; // private String pow18;
private String pow6Str; // private String pow6Str;
private String uPv30; // private String uPv30;
private String iPv19Str; // private String iPv19Str;
private String pow8Str; // private String pow8Str;
private String batteryAcvSet; // private String batteryAcvSet;
private String userId; // private String userId;
private String uPv25; // private String uPv25;
private String uPv22; // private String uPv22;
private String power; // private String power;
private String bypassAcVoltageB; // private String bypassAcVoltageB;
private String id; // private String id;
private String uPv13Str; // private String uPv13Str;
private String iPv17Str; // private String iPv17Str;
private String pow18Str; // private String pow18Str;
private String pow23; // private String pow23;
private String pow24; // private String pow24;
private String uPv4Str; // private String uPv4Str;
private String backupYearEnergyStr; // private String backupYearEnergyStr;
private String ipvTotal; // private String ipvTotal;
private String uPv10Str; // private String uPv10Str;
private String batteryChargeEnergy; // private String batteryChargeEnergy;
private String contractTime; // private String contractTime;
private String batteryTodayDischargeEnergy; // private String batteryTodayDischargeEnergy;
private String batteryYearDischargeEnergy; // private String batteryYearDischargeEnergy;
private String batteryYesterdayChargeEnergyStr; // private String batteryYesterdayChargeEnergyStr;
private String iAc2Str; // private String iAc2Str;
private String warningInfoData; // private String warningInfoData;
private String eTodayStr; // private String eTodayStr;
private String productModel; // private String productModel;
private String pow31Str; // private String pow31Str;
private String iPv25Str; // private String iPv25Str;
private String iPv8Str; // private String iPv8Str;
private String parallelPhase; // private String parallelPhase;
private String dispersionRate; // private String dispersionRate;
private String batteryYearChargeEnergy; // private String batteryYearChargeEnergy;
private String pow3Str; // private String pow3Str;
private String backupMonthEnergy; // private String backupMonthEnergy;
private String gridSellMonthEnergy; // private String gridSellMonthEnergy;
private String gridPurchasedTotalEnergyStr; // private String gridPurchasedTotalEnergyStr;
private String pow11; // private String pow11;
private String pow16; // private String pow16;
private String pow19; // private String pow19;
private String batteryCDISet; // private String batteryCDISet;
private String backupYesterdayEnergyStr; // private String backupYesterdayEnergyStr;
private String gridSellYearEnergyStr; // private String gridSellYearEnergyStr;
private String model; // private String model;
private String pow3; // private String pow3;
private String pow4; // private String pow4;
private String backupYearEnergy; // private String backupYearEnergy;
private String parallelStatus; // private String parallelStatus;
private String iPv24; // private String iPv24;
private String iPv23; // private String iPv23;
private String iPv6Str; // private String iPv6Str;
private String pFactorLimitSet; // private String pFactorLimitSet;
private String uPv14Str; // private String uPv14Str;
private String pow12Str; // private String pow12Str;
private String pow23Str; // private String pow23Str;
private String batteryDMaxiSet; // private String batteryDMaxiSet;
private String iPv7; // private String iPv7;
private String iPv8; // private String iPv8;
private String apparentPowerStr; // private String apparentPowerStr;
private String stationId; // private String stationId;
private String powerStr; // private String powerStr;
private String bypassAcCurrentB; // private String bypassAcCurrentB;
private String iPv15; // private String iPv15;
private String iPv12; // private String iPv12;
private String batteryChargingCurrentStr; // private String batteryChargingCurrentStr;
private String uPv18Str; // private String uPv18Str;
private String gridPurchasedTodayEnergy; // private String gridPurchasedTodayEnergy;
private String uAc1; // private String uAc1;
private String uPv9Str; // private String uPv9Str;
private String pow17Str; // private String pow17Str;
private String batteryPower; // private String batteryPower;
private String nationalStandardstr; // private String nationalStandardstr;
private String offGridDDepth; // private String offGridDDepth;
private String homeGridTodayEnergy; // private String homeGridTodayEnergy;
private String uAc3; // private String uAc3;
private String iPv30Str; // private String iPv30Str;
private String uPv14; // private String uPv14;
private String uPv13; // private String uPv13;
private String iPv10Str; // private String iPv10Str;
private String uPv32; // private String uPv32;
private String batteryVoltageStr; // private String batteryVoltageStr;
private String psumStr; // private String psumStr;
private String pow30Str; // private String pow30Str;
private String backupMonthEnergyStr; // private String backupMonthEnergyStr;
private String uPv31; // private String uPv31;
private String uPv23Str; // private String uPv23Str;
private String bypassAcVoltageC; // private String bypassAcVoltageC;
private String uPv20Str; // private String uPv20Str;
private String iPv14; // private String iPv14;
private String iPv13; // private String iPv13;
private String stateExceptionFlag; // private String stateExceptionFlag;
private String daylightSwitch; // private String daylightSwitch;
private String bypassAcCurrent; // private String bypassAcCurrent;
private String uPv15Str; // private String uPv15Str;
private String homeLoadYesterdayEnergy; // private String homeLoadYesterdayEnergy;
private String uPv32Str; // private String uPv32Str;
private String batteryOvpSet; // private String batteryOvpSet;
private String ctrlCommand; // private String ctrlCommand;
private String iAc2; // private String iAc2;
private String pow20Str; // private String pow20Str;
private String iPv31; // private String iPv31;
private String batteryPowerBmsStr; // private String batteryPowerBmsStr;
private String inverterTemperature; // private String inverterTemperature;
private String storageBatteryCurrent; // private String storageBatteryCurrent;
private String homeLoadYesterdayEnergyStr; // private String homeLoadYesterdayEnergyStr;
private String collectorId; // private String collectorId;
private String uPv25Str; // private String uPv25Str;
private String reactivePower; // private String reactivePower;
private String iAc3; // private String iAc3;
private String upvTotal; // private String upvTotal;
private String batteryMonthDischargeEnergyStr; // private String batteryMonthDischargeEnergyStr;
private String insulationResistance; // private String insulationResistance;
private String batteryTotalDischargeEnergyStr; // private String batteryTotalDischargeEnergyStr;
private String ipvTotalStr; // private String ipvTotalStr;
private String bypassAcCurrentC; // private String bypassAcCurrentC;
private String uAc1Str; // private String uAc1Str;
private String psum; // private String psum;
private String epsSwitchTime; // private String epsSwitchTime;
private String gridPurchasedTodayEnergyStr; // private String gridPurchasedTodayEnergyStr;
private String homeGridYearEnergyStr; // private String homeGridYearEnergyStr;
private String psumCal; // private String psumCal;
private String gridSellTodayEnergyStr; // private String gridSellTodayEnergyStr;
private String iPv29Str; // private String iPv29Str;
private String pacPec; // private String pacPec;
private String bstteryCurrent; // private String bstteryCurrent;
private String rs485ComAddr; // private String rs485ComAddr;
private String uInitGnd; // private String uInitGnd;
private String pow24Str; // private String pow24Str;
private String batteryYearChargeEnergyStr; // private String batteryYearChargeEnergyStr;
private String epmFailSafe; // private String epmFailSafe;
private String pow21; // private String pow21;
private String pow26; // private String pow26;
private String pow29; // private String pow29;
private String gridSellEnergy; // private String gridSellEnergy;
private String meter1TypeLow; // private String meter1TypeLow;
private String homeLoadTotalEnergyStr; // private String homeLoadTotalEnergyStr;
private String pow15Str; // private String pow15Str;
private String uPv28Str; // private String uPv28Str;
private String uPv26Str; // private String uPv26Str;
private String backupTodayEnergy; // private String backupTodayEnergy;
private String batteryCMaxiSet; // private String batteryCMaxiSet;
private String iPv31Str; // private String iPv31Str;
private String uPv22Str; // private String uPv22Str;
private String batteryYesterdayChargeEnergy; // private String batteryYesterdayChargeEnergy;
private String batteryOlvEnableSet; // private String batteryOlvEnableSet;
private String uPv19Str; // private String uPv19Str;
private String batteryTotalDischargeEnergy; // private String batteryTotalDischargeEnergy;
private String inverterTemperatureUnit; // private String inverterTemperatureUnit;
private String batteryYesterdayDischargeEnergy; // private String batteryYesterdayDischargeEnergy;
private String gridSellTodayEnergy; // private String gridSellTodayEnergy;
private String sno; // private String sno;
private String uPv17Str; // private String uPv17Str;
private String batteryFailureInformation02; // private String batteryFailureInformation02;
private String pow7; // private String pow7;
private String pow8; // private String pow8;
private String uPv15; // private String uPv15;
private String uPv12; // private String uPv12;
private String stationName; // private String stationName;
private String iPv2; // private String iPv2;
private String iPv5; // private String iPv5;
private String upvTotalStr; // private String upvTotalStr;
private String uPv7Str; // private String uPv7Str;
private String iPv9Str; // private String iPv9Str;
private String internalBatteryI; // private String internalBatteryI;
private String iPv2Str; // private String iPv2Str;
private String iPv20Str; // private String iPv20Str;
private String iPv11Str; // private String iPv11Str;
private String totalLoadPower; // private String totalLoadPower;
private String dcPacStr; // private String dcPacStr;
private String powerFactor; // private String powerFactor;
private String iPv7Str; // private String iPv7Str;
private String pow10Str; // private String pow10Str;
private String uPv27Str; // private String uPv27Str;
private String sn; // private String sn;
private String uAc2; // private String uAc2;
private String eToday; // private String eToday;
private String storageBatteryCurrentStr; // private String storageBatteryCurrentStr;
private String dcBusHalf; // private String dcBusHalf;
private String pow5Str; // private String pow5Str;
private String dcBusStr; // private String dcBusStr;
private String uPv1; // private String uPv1;
private String uPv6; // private String uPv6;
private String uPv9; // private String uPv9;
private String batteryMonthChargeEnergy; // private String batteryMonthChargeEnergy;
private String gridPurchasedYesterdayEnergyStr; // private String gridPurchasedYesterdayEnergyStr;
private String pEpmSet; // private String pEpmSet;
private String bypassAcVoltageSet; // private String bypassAcVoltageSet;
private String batteryYesterdayDischargeEnergyStr; // private String batteryYesterdayDischargeEnergyStr;
private String homeGridTodayEnergyStr; // private String homeGridTodayEnergyStr;
private String socDischargeSet; // private String socDischargeSet;
private String gridPurchasedMonthEnergyStr; // private String gridPurchasedMonthEnergyStr;
private String batteryLaTemp; // private String batteryLaTemp;
private String dataTimestamp; // private String dataTimestamp;
private String batteryChargingCurrent; // private String batteryChargingCurrent;
private String batteryMonthChargeEnergyStr; // private String batteryMonthChargeEnergyStr;
private String uPv5Str; // private String uPv5Str;
private String pow11Str; // private String pow11Str;
private String uPv2; // private String uPv2;
private String uPv5; // private String uPv5;
private String homeLoadTodayEnergy; // private String homeLoadTodayEnergy;
private String bypassAcCurrentSet; // private String bypassAcCurrentSet;
private String bypassLoadPowerStr; // private String bypassLoadPowerStr;
private String iPv1; // private String iPv1;
private String iPv6; // private String iPv6;
private String iPv9; // private String iPv9;
private String batteryTodayChargeEnergy; // private String batteryTodayChargeEnergy;
private String batteryUvpSet; // private String batteryUvpSet;
private String pow31; // private String pow31;
private String iPv4Str; // private String iPv4Str;
private String iPv32; // private String iPv32;
private String epsDDepth; // private String epsDDepth;
private String pow21Str; // private String pow21Str;
private String totalLoadPowerStr; // private String totalLoadPowerStr;
private String facStr; // private String facStr;
private String homeGridTotalEnergy; // private String homeGridTotalEnergy;
private String iPv15Str; // private String iPv15Str;
private String iAc1Str; // private String iAc1Str;
private String backupYesterdayEnergy; // private String backupYesterdayEnergy;
private String uPv31Str; // private String uPv31Str;
private String uPv29Str; // private String uPv29Str;
private String psumCalPec; // private String psumCalPec;
private String homeLoadEnergyStr; // private String homeLoadEnergyStr;
private String gridSellMonthEnergyStr; // private String gridSellMonthEnergyStr;
private String pEpmStr; // private String pEpmStr;
private String pow32; // private String pow32;
private String pow16Str; // private String pow16Str;
private String iPv30; // private String iPv30;
private String meter2Type; // private String meter2Type;
private String pac; // private String pac;
private String batteryCDSet; // private String batteryCDSet;
private String batteryDischargeLimiting; // private String batteryDischargeLimiting;
private String iPv22Str; // private String iPv22Str;
private String iPv28Str; // private String iPv28Str;
private String batteryCDEnableSet; // private String batteryCDEnableSet;
private String pow29Str; // private String pow29Str;
private String pacStr; // private String pacStr;
private String gridPurchasedMonthEnergy; // private String gridPurchasedMonthEnergy;
private String iLeakLimt; // private String iLeakLimt;
private String bypassAcVoltage; // private String bypassAcVoltage;
private String parallelBattery; // private String parallelBattery;
private String version; // private String version;
private String batteryPowerPec; // private String batteryPowerPec;
private String batteryMonthDischargeEnergy; // private String batteryMonthDischargeEnergy;
private String gridSellYesterdayEnergy; // private String gridSellYesterdayEnergy;
private String gridPurchasedYearEnergy; // private String gridPurchasedYearEnergy;
private String apparentPower; // private String apparentPower;
private String iPv16Str; // private String iPv16Str;
private String batteryChargeEnergyStr; // private String batteryChargeEnergyStr;
private String backupTodayEnergyStr; // private String backupTodayEnergyStr;
private String homeGridYearEnergy; // private String homeGridYearEnergy;
private String iPv13Str; // private String iPv13Str;
private String pow12; // private String pow12;
private String pow15; // private String pow15;
private String pow1; // private String pow1;
private String dcPac; // private String dcPac;
private String pow6; // private String pow6;
private String pow9; // private String pow9;
private String epmSafe; // private String epmSafe;
private String batteryHealthSoh; // private String batteryHealthSoh;
private String iPv18; // private String iPv18;
private String iPv17; // private String iPv17;
private String iPv10; // private String iPv10;
private String iPv28; // private String iPv28;
private String iPv27; // private String iPv27;
private String iPv20; // private String iPv20;
private String pow20; // private String pow20;
private String pow27; // private String pow27;
private String pow28; // private String pow28;
private String storageBatteryVoltage; // private String storageBatteryVoltage;
private String uPv21Str; // private String uPv21Str;
private String uPv24; // private String uPv24;
private String uPv23; // private String uPv23;
private String powTotalStr; // private String powTotalStr;
private String uPv8Str; // private String uPv8Str;
private String parallelAddr; // private String parallelAddr;
private String pow22Str; // private String pow22Str;
private String batteryTotalChargeEnergy; // private String batteryTotalChargeEnergy;
private String meter1SiteHigh; // private String meter1SiteHigh;
private String uPv6Str; // private String uPv6Str;
private String iAc1; // private String iAc1;
private String fullHour; // private String fullHour;
private String batteryTodayDischargeEnergyStr; // private String batteryTodayDischargeEnergyStr;
private String tempName; // private String tempName;
private String uPv2Str; // private String uPv2Str;
private String gridPurchasedTotalEnergy; // private String gridPurchasedTotalEnergy;
} }
...@@ -16,7 +16,7 @@ public class HYGFJPInverterHistory implements Serializable { ...@@ -16,7 +16,7 @@ public class HYGFJPInverterHistory implements Serializable {
private Double powerGeneration; private Double powerGeneration;
private Double dailyReturn; private Double dailyReturn;
private Double generationHours; private Double generationHours;
private Long inverterId; private String inverterId;
private String thirdStationId; private String thirdStationId;
private String thirdCode; private String thirdCode;
} }
package com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine;
import lombok.Data;
import java.io.Serializable;
/**
* @author DELL
*/
@Data
public class KsolarStationCollectData implements Serializable {
private Long createdTime;
private String inverterId;
private String status;
private String deviceModel;
private String version;
private Double powerApparent;
private Double dayGeneration;
private Double monthGeneration;
private Double yearGeneration;
private Double totalGeneration;
private Double currentPv1;
private Double currentPv2;
private Double currentPv3;
private Double currentPv4;
private Double currentPv5;
private Double currentPv6;
private Double currentPv7;
private Double currentPv8;
private Double currentPv9;
private Double currentPv10;
private Double currentPv11;
private Double currentPv12;
private Double currentR;
private Double currents;
private Double currentT;
private Double voltagePv1;
private Double voltagePv2;
private Double voltagePv3;
private Double voltagePv4;
private Double voltagePv5;
private Double voltagePv6;
private Double voltagePv7;
private Double voltagePv8;
private Double voltagePv9;
private Double voltagePv10;
private Double voltagePv11;
private Double voltagePv12;
private Double voltagePbus;
private Double voltagelbus;
private Double voltageRs;
private Double voltageSt;
private Double voltageTr;
private Double powerPv1;
private Double powerPv2;
private Double powerPv3;
private Double powerPv4;
private Double powerPv5;
private Double powerPv6;
private Double powerPv7;
private Double powerPv8;
private Double powerPv9;
private Double powerPv10;
private Double powerPv11;
private Double powerPv12;
private Double frequencyRs;
private Double frequencySt;
private Double frequencyTr;
}
package com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* @author DELL
*/
@Data
@TableName(value = "ksolar_collector_list" ,autoResultMap = true)
public class KsolarStationCollectList implements Serializable {
private Long createdTime;
private String address;
private String armVersion;
private String bstVersion;
private String collectId;
private String collectName;
private String collectVersion;
private String dayGeneration;
private String deviceModel;
private String dspVersion;
private String inverterId;
private String trafficType;
private Integer interfaceType;
private Integer modelId;
private Integer phaseStandard;
private String stationName;
private Integer phaseType;
private Double signal;
private String status;
private Double powerInter;
private Double totalGeneration;
private String thirdStationId;
}
package com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* @author DELL
*/
@Data
@TableName(value = "ksolar_station_detail" ,autoResultMap = true)
public class KsolarStationDetails implements Serializable {
private Long createdTime;
private String area;
private Double installCapacity;
private Double elecPrice;
private String city;
private String elecUnit;
private Integer stationType;
private String latitude;
private String timeZone;
private String countries;
private String userCode;
private String stationAddressDetail;
private String province;
private String stationName;
private String longitude;
}
package com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* @author DELL
*/
@Data
@TableName(value = "ksolar_station_earn" ,autoResultMap = true)
public class KsolarStationEarn implements Serializable {
private Long createdTime;
private Double co2;
private Double coal;
private Double dayEarn;
private Double dayGeneration;
private Double forest;
private Double monthGeneration;
private Double realPower;
private Double totalEarn;
private Double totalGeneration;
private Double totalPower;
private Double yearGeneration;
}
package com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName(value = "ksolar_station_earn_chart" ,autoResultMap = true)
public class KsolarStationEarnChart {
private Long createdTime;
private String attribValue;
private String earnValue;
private String saveTime;
}
package com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine; package com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
/**
* @author DELL
*/
@Data @Data
public class KSolarStationList { @TableName(value = "ksolar_station_list" ,autoResultMap = true)
public class KsolarStationList implements Serializable {
private Long createdTime;
private String stationId; private String stationId;
private String stationName; private String stationName;
private Integer stationType; private Integer stationType;
......
package com.yeejoin.amos.api.householdapi.face.orm.mapper.tdengine;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.GolangCollectorList;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.KsolarStationCollectList;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface KsolarStationCollectListMapper extends BaseMapper<KsolarStationCollectList> {
@Select("select collect_id from ksolar_collector_list group by collect_id")
List<String> getCollectIds();
}
package com.yeejoin.amos.api.householdapi.face.orm.mapper.tdengine;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.KsolarStationDetails;
/**
* @author DELL
*/
public interface KsolarStationDetailsMapper extends BaseMapper<KsolarStationDetails> {
}
package com.yeejoin.amos.api.householdapi.face.orm.mapper.tdengine;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.KsolarStationEarn;
/**
* @author DELL
*/
public interface KsolarStationEarnMapper extends BaseMapper<KsolarStationEarn> {
}
package com.yeejoin.amos.api.householdapi.face.orm.mapper.tdengine;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.KsolarStationList;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author DELL
*/
public interface KsolarStationMapper extends BaseMapper<KsolarStationList> {
@Select("select station_id from ksolar_station_list group by station_id")
List<String> getStationIds();
}
...@@ -25,8 +25,5 @@ public interface KSolarDataAcquisitionService { ...@@ -25,8 +25,5 @@ public interface KSolarDataAcquisitionService {
* @descrption 逆变器详情数据入库 * @descrption 逆变器详情数据入库
*/ */
void inverterDetail(); void inverterDetail();
/**
* @descrption 采集器告警列表数据入库
*/
void inverAlramInfo();
} }
...@@ -364,7 +364,7 @@ public class GoLangDataAcquisitionServiceImpl implements GoLangDataAcquisitionSe ...@@ -364,7 +364,7 @@ public class GoLangDataAcquisitionServiceImpl implements GoLangDataAcquisitionSe
} }
jpInverter.setSnCode(inverterDetailDto.getSn()); jpInverter.setSnCode(inverterDetailDto.getSn());
jpInverter.setState(GoLangConstant.stationStaus.get(inverterDetailDto.getCurrentState())); jpInverter.setState(GoLangConstant.stationStaus.get(inverterDetailDto.getCurrentState()));
jpInverter.setCollectorId(inverterDetailDto.getCollectorId()); jpInverter.setCollectorId(String.valueOf(inverterDetailDto.getCollectorId()));
jpInverter.setCollectorSnCode(inverterDetailDto.getCollectorsn()); jpInverter.setCollectorSnCode(inverterDetailDto.getCollectorsn());
jpInverter.setUpdateTime(new Date()); jpInverter.setUpdateTime(new Date());
jpInverter.setCurrentPower(inverterDetailDto.getPac()); jpInverter.setCurrentPower(inverterDetailDto.getPac());
...@@ -398,7 +398,7 @@ public class GoLangDataAcquisitionServiceImpl implements GoLangDataAcquisitionSe ...@@ -398,7 +398,7 @@ public class GoLangDataAcquisitionServiceImpl implements GoLangDataAcquisitionSe
if (ObjectUtils.isEmpty(jpInverterElectricity)) { if (ObjectUtils.isEmpty(jpInverterElectricity)) {
jpInverterElectricity = new JpInverterElectricity(); jpInverterElectricity = new JpInverterElectricity();
} }
jpInverterElectricity.setInverterId(inverterDetailDto.getId()); jpInverterElectricity.setInverterId(String.valueOf(inverterDetailDto.getId()));
jpInverterElectricity.setSnCode(inverterDetailDto.getSn()); jpInverterElectricity.setSnCode(inverterDetailDto.getSn());
jpInverterElectricity.setThirdCode(PVProducerInfoEnum.JLY.getCode()); jpInverterElectricity.setThirdCode(PVProducerInfoEnum.JLY.getCode());
jpInverterElectricity.setThirdStationId(String.valueOf(inverterDetailDto.getStationId())); jpInverterElectricity.setThirdStationId(String.valueOf(inverterDetailDto.getStationId()));
...@@ -421,7 +421,7 @@ public class GoLangDataAcquisitionServiceImpl implements GoLangDataAcquisitionSe ...@@ -421,7 +421,7 @@ public class GoLangDataAcquisitionServiceImpl implements GoLangDataAcquisitionSe
if (ObjectUtils.isEmpty(jpInverterElectricity)) { if (ObjectUtils.isEmpty(jpInverterElectricity)) {
jpInverterElectricity = new JpInverterElectricity(); jpInverterElectricity = new JpInverterElectricity();
} }
jpInverterElectricity.setInverterId(inverterDetailDto.getId()); jpInverterElectricity.setInverterId(String.valueOf(inverterDetailDto.getId()));
jpInverterElectricity.setSnCode(inverterDetailDto.getSn()); jpInverterElectricity.setSnCode(inverterDetailDto.getSn());
jpInverterElectricity.setThirdCode(PVProducerInfoEnum.JLY.getCode()); jpInverterElectricity.setThirdCode(PVProducerInfoEnum.JLY.getCode());
jpInverterElectricity.setThirdStationId(String.valueOf(inverterDetailDto.getStationId())); jpInverterElectricity.setThirdStationId(String.valueOf(inverterDetailDto.getStationId()));
...@@ -457,7 +457,7 @@ public class GoLangDataAcquisitionServiceImpl implements GoLangDataAcquisitionSe ...@@ -457,7 +457,7 @@ public class GoLangDataAcquisitionServiceImpl implements GoLangDataAcquisitionSe
} }
hygfjpInverterHistory.setDate(today); hygfjpInverterHistory.setDate(today);
hygfjpInverterHistory.setThirdStationId(String.valueOf(inverterDetailDto.getStationId())); hygfjpInverterHistory.setThirdStationId(String.valueOf(inverterDetailDto.getStationId()));
hygfjpInverterHistory.setInverterId(inverterDetailDto.getId()); hygfjpInverterHistory.setInverterId(String.valueOf(inverterDetailDto.getId()));
hygfjpInverterHistory.setSnCode(inverterDetailDto.getSn()); hygfjpInverterHistory.setSnCode(inverterDetailDto.getSn());
hygfjpInverterHistory.setThirdCode(PVProducerInfoEnum.JLY.getCode()); hygfjpInverterHistory.setThirdCode(PVProducerInfoEnum.JLY.getCode());
hygfjpInverterHistory.setGenerationHours(inverterDetailDto.getFullHour()); hygfjpInverterHistory.setGenerationHours(inverterDetailDto.getFullHour());
......
package com.yeejoin.amos.api.householdapi.face.service.impl;
import com.yeejoin.amos.api.householdapi.Utils.KSolarRequestUtil;
import com.yeejoin.amos.api.householdapi.constant.KSolarConstant;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.KSolarStationList;
import com.yeejoin.amos.api.householdapi.face.service.KSolarDataAcquisitionService;
import fastjson.JSON;
import jdk.nashorn.internal.ir.RuntimeNode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
@Service
public class KSolarDataAcquisitionServiceImpl implements KSolarDataAcquisitionService {
@Autowired
KSolarRequestUtil kSolarRequestUtil;
@Override
public void stationList() {
HashMap<String, Object> requestInfo = new HashMap<>();
String requestParaminfo = JSON.toJSONString(requestInfo);
List<KSolarStationList> kSolarStationListList = kSolarRequestUtil.getResPonse(
KSolarConstant.stationListUrl,
KSolarConstant.requestGET,
requestParaminfo,
KSolarConstant.resovle_rows,
KSolarStationList.class);
for (int i = 0; i < kSolarStationListList.size(); i++) {
KSolarStationList kSolarStationList = kSolarStationListList.get(i);
kSolarStationList.getStationId();
}
}
@Override
public void stationDetail() {
}
@Override
public void collectorList() {
}
@Override
public void collectorDetail() {
}
@Override
public void inverterList() {
}
@Override
public void inverterDetail() {
}
@Override
public void inverAlramInfo() {
}
}
package com.yeejoin.amos.api.householdapi.face.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.api.householdapi.Utils.KsolarRequestUtil;
import com.yeejoin.amos.api.householdapi.constant.GoLangConstant;
import com.yeejoin.amos.api.householdapi.constant.KSolarConstant;
import com.yeejoin.amos.api.householdapi.face.dto.AlarmDto;
import com.yeejoin.amos.api.householdapi.face.dto.CollectorDetailDto;
import com.yeejoin.amos.api.householdapi.face.dto.KsolarAlarmDto;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.hygf.JpCollector;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.hygf.JpInverter;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.hygf.JpInverterElectricity;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.hygf.JpStation;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.*;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.KsolarStationCollectList;
import com.yeejoin.amos.api.householdapi.face.orm.mapper.hygf.JpCollectorMapper;
import com.yeejoin.amos.api.householdapi.face.orm.mapper.hygf.JpInverterElectricityMapper;
import com.yeejoin.amos.api.householdapi.face.orm.mapper.hygf.JpInverterMapper;
import com.yeejoin.amos.api.householdapi.face.orm.mapper.hygf.JpStationMapper;
import com.yeejoin.amos.api.householdapi.face.orm.mapper.tdengine.*;
import com.yeejoin.amos.api.householdapi.face.service.KSolarDataAcquisitionService;
import com.yeejoin.amos.openapi.enums.PVProducerInfoEnum;
import fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
/**
* @author DELL
*/
@Service
public class KsolarDataAcquisitionServiceImpl implements KSolarDataAcquisitionService {
//定时任务执行频率 当前为10分钟一次
private final String dataRequstScheduled = "0 0/60 * * * *";
@Autowired
KsolarRequestUtil kSolarRequestUtil;
@Autowired
KsolarStationMapper kSolarStationMapper;
@Autowired
private JpStationMapper jpStationMapper;
@Autowired
private HYGFJPStationPowerHistoryMapper hygfjpStationPowerHistoryMapper;
@Autowired
private HYGFJPInverterHistoryMapper hygfjpInverterHistoryMapper;
@Autowired
private HYGFJPCollectorHistoryMapper hygfjpCollectorHistoryMapper;
@Autowired
private HYGFJPInverterWarnMapper hygfjpInverterWarnMapper;
@Autowired
private HYGFJPInverterElecHistoryMapper hygfjpInverterElecHistoryMapper;
@Autowired
private HYGFJPDayPowerMapper hygfjpDayPowerMapper;
@Autowired
private KsolarStationDetailsMapper ksolarStationDetailsMapper;
@Autowired
private KsolarStationEarnMapper ksolarStationEarnMapper;
@Autowired
private KsolarStationCollectListMapper ksolarStationCollectListMapper;
@Autowired
private JpCollectorMapper jpCollectorMapper;
@Autowired
private JpInverterMapper jpInverterMapper;
//监盘逆变器电量mapper
@Autowired
private JpInverterElectricityMapper jpInverterElectricityMapper;
@Scheduled(cron = dataRequstScheduled)
@Override
public void stationList() {
HashMap<String, Object> requestInfo = new HashMap<>();
String requestParaminfo = JSON.toJSONString(requestInfo);
List<KsolarStationList> kSolarStationListList = kSolarRequestUtil.getResPonse(
KSolarConstant.stationListUrl,
KSolarConstant.requestGET,
requestParaminfo,
KSolarConstant.resovle_rows,
KsolarStationList.class);
for (KsolarStationList kSolarStation : kSolarStationListList) {
kSolarStation.setCreatedTime(System.currentTimeMillis());
kSolarStationMapper.insert(kSolarStation);
}
}
@Scheduled(cron = dataRequstScheduled)
@Override
public void stationDetail() {
List<String> stationIds = kSolarStationMapper.getStationIds();
String today = DateUtil.today();
String hour = new Date().getHours() + ":00";
for (String stationId : stationIds) {
LambdaQueryWrapper<KsolarStationList> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(KsolarStationList::getStationId, stationId);
List<KsolarStationList> ksolarStationLists = kSolarStationMapper.selectList(wrapper);
if (!CollectionUtils.isEmpty(ksolarStationLists)) {
KsolarStationList ksolarStation = ksolarStationLists.get(0);
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
HashMap<String, Object> requestInfo = new HashMap<>(1);
String requestParaminfo = JSON.toJSONString(requestInfo);
String url = KSolarConstant.stationInfoByIdUrl + "?stationId=" + ksolarStation.getStationId();
// 获取电站详情
List<KsolarStationDetails> ksolarStationDetailsList = kSolarRequestUtil.getResPonse(
url,
KSolarConstant.requestPOST,
requestParaminfo,
KSolarConstant.resovle_data,
KsolarStationDetails.class);
// 获取单个电站的发电量和收益
KsolarStationEarn stationEarn = getStationEarn(ksolarStation.getStationId());
// 获取单个电站月收益
Map<String, Double> monthEarn = getStationMonthEarn(ksolarStation.getStationId(), "month");
// 获取单个电站年收益
Map<String, Double> yearEarn = getStationMonthEarn(ksolarStation.getStationId(), "year");
for (KsolarStationDetails ksolarStationDetail : ksolarStationDetailsList) {
ksolarStationDetail.setCreatedTime(System.currentTimeMillis());
JpStation jpStation = jpStationMapper.selectOne(new QueryWrapper<JpStation>().
eq("third_code", PVProducerInfoEnum.KSOLAR.getCode()).
eq("third_station_id", ksolarStation.getStationId()));
// 给户用光伏存储的数据赋值
if (ObjectUtils.isEmpty(jpStation)) {
jpStation = new JpStation();
}
jpStation.setThirdStationId(ksolarStation.getStationId());
jpStation.setCapacity(ksolarStationDetail.getInstallCapacity());
jpStation.setName(ksolarStationDetail.getStationName());
jpStation.setPrice(ksolarStationDetail.getElecPrice());
jpStation.setAddress(ksolarStationDetail.getStationAddressDetail());
jpStation.setLongitude(ksolarStationDetail.getLongitude());
jpStation.setLatitude(ksolarStationDetail.getLatitude());
jpStation.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
// 业主姓名
jpStation.setUserName(ksolarStation.getUserName());
jpStation.setState(KSolarConstant.stationStaus.get(String.valueOf(ksolarStation.getStatus())));
jpStation.setRealTimePower(ksolarStation.getPowerInter());
jpStation.setDayGenerate(ksolarStation.getDayGeneration());
jpStation.setAccumulatedPower(ksolarStation.getTotalGeneration());
jpStation.setArea(ksolarStation.getAddress());
// 日收益
jpStation.setDayIncome(stationEarn.getDayEarn() * KSolarConstant.kwhToMwh);
// 月发电量
jpStation.setMonthGenerate(stationEarn.getMonthGeneration() * KSolarConstant.kwhToMwh);
// 年发电量
jpStation.setYearGenerate(stationEarn.getYearGeneration() * KSolarConstant.kwhToMwh);
// 月收益
jpStation.setMonthIncome(monthEarn.get("monthEarn"));
// 年收益
jpStation.setYearIncome(yearEarn.get("yearEarn"));
// 累计收益
jpStation.setCumulativeIncome(stationEarn.getTotalEarn());
// 并网类型
// jpStation.setOnGridType(GoLangConstant.intoNetWorkStatus.get(String.valueOf(golangStationDetail.getStationtypenew())));
// // 邮箱
// jpStation.setEmail(golangStationDetail.getUseremail());
// // 并网时间
// jpStation.setOnGridTime(new Date(golangStationDetail.getFispowertime()));
// // 接入平台时间
// jpStation.setAccessTime(new Date(golangStationDetail.getFisgeneratetime()));
// // 创建时间
// jpStation.setCreateTime(new Date(golangStationDetail.getCreatedate()));
// // 额定功率
// jpStation.setRatedPower(Double.valueOf(golangStationDetail.getInverterpower()));
// 第三方电站id
// jpStation.setThirdStationId(String.valueOf(golangStationDetail.getId()));
// 第三方厂商标识
// jpStation.setThirdCode(PVProducerInfoEnum.JLY.getCode());
// 业主电话
// jpStation.setUserPhone(String.valueOf(golangStationDetail.getUsermobile()));
// 电站联系人
// jpStation.setStationContact(String.valueOf(golangStationDetail.getMobile()).toLowerCase().replace("null", ""));
// 组件数量
// jpStation.setModuleCount(ObjectUtils.isEmpty(Math.toIntExact(golangStationDetail.getModule()))?0:Math.toIntExact(golangStationDetail.getModule()));
if (!ObjectUtils.isEmpty(jpStation.getSequenceNbr())) {
jpStationMapper.updateById(jpStation);
} else {
jpStationMapper.insert(jpStation);
}
HYGFJPStationPowerHistory hygfjpStationPowerHistory = new HYGFJPStationPowerHistory();
hygfjpStationPowerHistory.setCreatedTime(System.currentTimeMillis());
hygfjpStationPowerHistory.setThirdStationId(jpStation.getThirdStationId());
hygfjpStationPowerHistory.setPower(ksolarStation.getPowerInter());
hygfjpStationPowerHistory.setThirdCode(jpStation.getThirdCode());
hygfjpStationPowerHistory.setTime(System.currentTimeMillis());
hygfjpStationPowerHistoryMapper.insert(hygfjpStationPowerHistory);
HYGFJPDayPower hygfjpDayPower = hygfjpDayPowerMapper.selectOne(
new QueryWrapper<HYGFJPDayPower>().
eq("tation_id", ksolarStation.getStationId()).
eq("year_month_day", today).
eq("hour", hour)
);
if (ObjectUtils.isEmpty(hygfjpDayPower)) {
hygfjpDayPower = new HYGFJPDayPower();
}
hygfjpDayPower.setTationId(ksolarStation.getStationId());
hygfjpDayPower.setHour(hour);
hygfjpDayPower.setYearMonthDay(today);
hygfjpDayPower.setPower(ksolarStation.getPowerInter());
if (ObjectUtils.isEmpty(hygfjpDayPower.getCreatedTime())) {
hygfjpDayPower.setCreatedTime(System.currentTimeMillis());
hygfjpDayPowerMapper.insert(hygfjpDayPower);
} else {
hygfjpDayPowerMapper.insert(hygfjpDayPower);
}
ksolarStationDetail.setCreatedTime(System.currentTimeMillis());
ksolarStationDetailsMapper.insert(ksolarStationDetail);
}
}
}
}
/**
* 获取单个站的发电量
* @param stationId 站id
* @return 发电量实体
*/
private KsolarStationEarn getStationEarn (String stationId) {
KsolarStationEarn ksolarStationEarn = new KsolarStationEarn();
// 获取单个电站的发电量和收益
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
HashMap<String, Object> requestInfo = new HashMap<>(1);
String requestParaminfo = JSON.toJSONString(requestInfo);
String url = KSolarConstant.stationEarnUrl + "?stationId=" + stationId;
List<KsolarStationEarn> ksolarStationEarns = kSolarRequestUtil.getResPonse(
url,
KSolarConstant.requestGET,
requestParaminfo,
KSolarConstant.resovle_data,
KsolarStationEarn.class);
if (!CollectionUtils.isEmpty(ksolarStationEarns)) {
ksolarStationEarn = ksolarStationEarns.get(0);
ksolarStationEarn.setCreatedTime(System.currentTimeMillis());
ksolarStationEarnMapper.insert(ksolarStationEarn);
}
return ksolarStationEarn;
}
Map<String, Double> getStationMonthEarn (String stationId, String type) {
Map<String, Double> map = new HashMap<>(1);
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
HashMap<String, Object> requestInfo = new HashMap<>(1);
String requestParaminfo = JSON.toJSONString(requestInfo);
// 获取当前日期
Date currentDate = new Date();
// 创建SimpleDateFormat实例,指定日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
// 格式化日期为字符串
String formattedDate = sdf.format(currentDate);
// 从格式化后的字符串中提取年份和月份
String year = formattedDate.substring(0, 4);
String month = formattedDate;
String attribId = "201";
String stime = month;
if ("year".equals(type)) {
attribId = "202";
stime = year;
}
String url = KSolarConstant.stationEarnChartUrl + "?stationId=" + stationId + "&attribId="+ attribId + "&stime=" + stime;
List<KsolarStationEarnChart> ksolarStationEarnCharts = kSolarRequestUtil.getResPonse(
url,
KSolarConstant.requestGET,
requestParaminfo,
KSolarConstant.resovle_arr,
KsolarStationEarnChart.class);
double earnValues = 0;
if (!CollectionUtils.isEmpty(ksolarStationEarnCharts)) {
earnValues += ksolarStationEarnCharts.stream().mapToDouble(ksolarStationEarnChart -> Double.parseDouble(ksolarStationEarnChart.getEarnValue())).sum();
}
if ("year".equals(type)) {
map.put("yearEarn", earnValues);
} else {
map.put("monthEarn", earnValues);
}
return map;
}
@Scheduled(cron = dataRequstScheduled)
@Override
public void collectorList() {
List<String> stationIds = kSolarStationMapper.getStationIds();
for (String stationId : stationIds) {
LambdaQueryWrapper<KsolarStationList> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(KsolarStationList::getStationId, stationId);
List<KsolarStationList> ksolarStationLists = kSolarStationMapper.selectList(wrapper);
if (!CollectionUtils.isEmpty(ksolarStationLists)) {
KsolarStationList ksolarStationList = ksolarStationLists.get(0);
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
HashMap<String, Object> requestInfo = new HashMap<>(1);
String requestParaminfo = JSON.toJSONString(requestInfo);
String url = KSolarConstant.stationCollectListUrl + "?stationId=" + ksolarStationList.getStationId() + "&pageNumber=1&pageSize=200";
List<KsolarStationCollectList> result = kSolarRequestUtil.getResPonse(
url,
KSolarConstant.requestGET,
requestParaminfo,
KSolarConstant.resovle_rows,
KsolarStationCollectList.class
);
for (KsolarStationCollectList ksolarStationCollectList : result) {
ksolarStationCollectList.setCreatedTime(System.currentTimeMillis());
ksolarStationCollectList.setThirdStationId(ksolarStationList.getStationId());
ksolarStationCollectListMapper.insert(ksolarStationCollectList);
JpCollector jpCollector = jpCollectorMapper.selectOne(new QueryWrapper<JpCollector>().
eq("third_station_id", ksolarStationCollectList.getThirdStationId()).
eq("sn_code", ksolarStationCollectList.getCollectId()).
eq("third_code", PVProducerInfoEnum.KSOLAR.getCode()));
if (ObjectUtils.isEmpty(jpCollector)) {
jpCollector = new JpCollector();
}
// //出场日期
// jpCollector.setDischargeDate(new Date(collectorDetailDto.getFactoryTime()));
// //生产日期
// jpCollector.setProductDate(new Date(collectorDetailDto.getFactoryTime()));
// //数据上传间隔
// jpCollector.setDataPeriod(collectorDetailDto.getDataUploadCycle());
// //本次上电时间
// jpCollector.setThisWorkTime(new DateTime(collectorDetailDto.getCurrentWorkingTime()));
// //累计工作时间
// jpCollector.setTotalWorkTime(new DateTime(collectorDetailDto.getTotalWorkingTime()));
// sn编码
jpCollector.setSnCode(ksolarStationCollectList.getCollectId());
// 更新时间
jpCollector.setUpdateTime(new Date());
// 第三方电站id
jpCollector.setThirdStationId(ksolarStationCollectList.getThirdStationId());
// 第三方厂商标识
jpCollector.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
//第三方厂商标识
jpCollector.setState(KSolarConstant.collectStaus.get(ksolarStationCollectList.getStatus()));
jpCollector.setStationName(ksolarStationCollectList.getStationName());
jpCollector.setAddr(ksolarStationCollectList.getAddress());
jpCollector.setName(ksolarStationCollectList.getCollectName());
jpCollector.setVersion(ksolarStationCollectList.getCollectVersion());
jpCollector.setType(ksolarStationCollectList.getDeviceModel());
if (ObjectUtils.isEmpty(jpCollector.getSequenceNbr())) {
jpCollectorMapper.insert(jpCollector);
} else {
jpCollectorMapper.updateById(jpCollector);
}
HYGFJPCollectorHistory hygfjpCollectorHistory = new HYGFJPCollectorHistory();
hygfjpCollectorHistory.setTime(System.currentTimeMillis());
hygfjpCollectorHistory.setCreatedTime(System.currentTimeMillis());
hygfjpCollectorHistory.setSnCode(ksolarStationCollectList.getCollectId());
hygfjpCollectorHistory.setSignalStrength(ksolarStationCollectList.getSignal());
hygfjpCollectorHistory.setThirdStationId(ksolarStationCollectList.getThirdStationId());
hygfjpCollectorHistory.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
hygfjpCollectorHistoryMapper.insert(hygfjpCollectorHistory);
}
}
}
}
@Scheduled(cron = dataRequstScheduled)
@Override
public void collectorDetail() {
List<String> collectIds = ksolarStationCollectListMapper.getCollectIds();
if (!CollectionUtils.isEmpty(collectIds)) {
collectIds.forEach(collectId -> {
LambdaQueryWrapper<KsolarStationCollectList> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(KsolarStationCollectList::getCollectId, collectId);
List<KsolarStationCollectList> ksolarStationCollectLists = ksolarStationCollectListMapper.selectList(wrapper);
if (!CollectionUtils.isEmpty(ksolarStationCollectLists)) {
KsolarStationCollectList ksolarStationCollectList = ksolarStationCollectLists.get(0);
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
HashMap<String, Object> requestInfo = new HashMap<>(1);
String requestParaminfo = JSON.toJSONString(requestInfo);
String url = KSolarConstant.stationCollectDataUrl + "?collectId=" + ksolarStationCollectList.getCollectId();
List<KsolarStationCollectData> result = kSolarRequestUtil.getResPonse(
url,
KSolarConstant.requestGET,
requestParaminfo,
KSolarConstant.resovle_data,
KsolarStationCollectData.class
);
if (!CollectionUtils.isEmpty(result)) {
result.forEach(ksolarStationCollectData -> {
JpInverter jpInverter = jpInverterMapper.selectOne(new QueryWrapper<JpInverter>().
eq("third_station_id", ksolarStationCollectList.getThirdStationId()).
eq("third_code", PVProducerInfoEnum.KSOLAR.getCode()).
eq("sn_code", ksolarStationCollectData.getInverterId()));
if (ObjectUtils.isEmpty(jpInverter)) {
jpInverter = new JpInverter();
}
// 品牌
// jpInverter.setBrand(inverterDetailDto.getName());
// 国标
// jpInverter.setNationalStandard(inverterDetailDto.getNationalStandards());
// 满发小时数
// jpInverter.setGenerationHours(String.valueOf(inverterDetailDto.getFullHour()));
// 装机容量
// jpInverter.setCapacity(inverterDetailDto.getPower().intValue());
jpInverter.setSnCode(ksolarStationCollectData.getInverterId());
jpInverter.setState(KSolarConstant.collectStaus.get(ksolarStationCollectData.getStatus()));
jpInverter.setCollectorId(ksolarStationCollectList.getCollectId());
jpInverter.setCollectorSnCode(ksolarStationCollectList.getCollectId());
jpInverter.setUpdateTime(new Date());
jpInverter.setCurrentPower(ksolarStationCollectData.getPowerApparent());
jpInverter.setDayPowerGeneration(ksolarStationCollectData.getDayGeneration());
jpInverter.setMonthPowerGeneration(ksolarStationCollectData.getMonthGeneration() * KSolarConstant.kwhToMwh);
jpInverter.setYearPowerGeneration(ksolarStationCollectData.getYearGeneration() * KSolarConstant.kwhToMwh);
jpInverter.setTotalPowerGeneration(ksolarStationCollectData.getTotalGeneration() * KSolarConstant.kwhToMwh);
jpInverter.setModel(ksolarStationCollectData.getDeviceModel());
jpInverter.setVersion(ksolarStationCollectData.getVersion());
jpInverter.setThirdStationId(ksolarStationCollectList.getThirdStationId());
jpInverter.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
jpInverter.setStationName(ksolarStationCollectList.getStationName());
if (!ObjectUtils.isEmpty(jpInverter.getSequenceNbr())) {
jpInverterMapper.updateById(jpInverter);
} else {
jpInverterMapper.insert(jpInverter);
}
String jsonString = JSON.toJSONString(ksolarStationCollectData);
Map<String, Object> hanlderResult = JSON.parseObject(jsonString, Map.class);
for (int k1 = 1; k1 < 13; k1++) {
JpInverterElectricity jpInverterElectricity = jpInverterElectricityMapper.selectOne(new QueryWrapper<JpInverterElectricity>().
eq("sn_code", ksolarStationCollectData.getInverterId()).
eq("type", "直流").
eq("name", "PV" + k1)
);
if (ObjectUtils.isEmpty(jpInverterElectricity)) {
jpInverterElectricity = new JpInverterElectricity();
}
jpInverterElectricity.setInverterId(ksolarStationCollectData.getInverterId());
jpInverterElectricity.setSnCode(ksolarStationCollectData.getInverterId());
jpInverterElectricity.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
jpInverterElectricity.setThirdStationId(ksolarStationCollectList.getThirdStationId());
jpInverterElectricity.setType("直流");
jpInverterElectricity.setName("PV" + k1);
jpInverterElectricity.setVoltage(Double.valueOf(hanlderResult.get("voltagePv" + k1).toString()));
jpInverterElectricity.setCurrent(Double.valueOf(hanlderResult.get("currentPv" + k1).toString()));
jpInverterElectricity.setPower(Double.valueOf(hanlderResult.get("powerPv" + k1).toString()));
if (ObjectUtils.isEmpty(jpInverterElectricity.getSequenceNbr())) {
jpInverterElectricityMapper.insert(jpInverterElectricity);
} else {
jpInverterElectricityMapper.updateById(jpInverterElectricity);
}
}
JpInverterElectricity jpInverterElectricityR = jpInverterElectricityMapper.selectOne(new QueryWrapper<JpInverterElectricity>().
eq("sn_code", ksolarStationCollectData.getInverterId()).
eq("type", "交流").
eq("name", "RS")
);
if (ObjectUtils.isEmpty(jpInverterElectricityR)) {
jpInverterElectricityR = new JpInverterElectricity();
}
jpInverterElectricityR.setInverterId(ksolarStationCollectData.getInverterId());
jpInverterElectricityR.setSnCode(ksolarStationCollectData.getInverterId());
jpInverterElectricityR.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
jpInverterElectricityR.setThirdStationId(ksolarStationCollectList.getThirdStationId());
jpInverterElectricityR.setType("交流");
jpInverterElectricityR.setName("RS");
jpInverterElectricityR.setVoltage(ksolarStationCollectData.getVoltageRs());
jpInverterElectricityR.setCurrent(ksolarStationCollectData.getCurrentR());
if (ObjectUtils.isEmpty(jpInverterElectricityR.getSequenceNbr())) {
jpInverterElectricityMapper.insert(jpInverterElectricityR);
} else {
jpInverterElectricityMapper.updateById(jpInverterElectricityR);
}
JpInverterElectricity jpInverterElectricityS = jpInverterElectricityMapper.selectOne(new QueryWrapper<JpInverterElectricity>().
eq("sn_code", ksolarStationCollectData.getInverterId()).
eq("type", "交流").
eq("name", "ST")
);
if (ObjectUtils.isEmpty(jpInverterElectricityS)) {
jpInverterElectricityS = new JpInverterElectricity();
}
jpInverterElectricityS.setInverterId(ksolarStationCollectData.getInverterId());
jpInverterElectricityS.setSnCode(ksolarStationCollectData.getInverterId());
jpInverterElectricityS.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
jpInverterElectricityS.setThirdStationId(ksolarStationCollectList.getThirdStationId());
jpInverterElectricityS.setType("交流");
jpInverterElectricityS.setName("ST");
jpInverterElectricityS.setVoltage(ksolarStationCollectData.getVoltageSt());
jpInverterElectricityS.setCurrent(ksolarStationCollectData.getCurrents());
if (ObjectUtils.isEmpty(jpInverterElectricityS.getSequenceNbr())) {
jpInverterElectricityMapper.insert(jpInverterElectricityS);
} else {
jpInverterElectricityMapper.updateById(jpInverterElectricityS);
}
JpInverterElectricity jpInverterElectricityT = jpInverterElectricityMapper.selectOne(new QueryWrapper<JpInverterElectricity>().
eq("sn_code", ksolarStationCollectData.getInverterId()).
eq("type", "交流").
eq("name", "TR")
);
if (ObjectUtils.isEmpty(jpInverterElectricityT)) {
jpInverterElectricityT = new JpInverterElectricity();
}
jpInverterElectricityT.setInverterId(ksolarStationCollectData.getInverterId());
jpInverterElectricityT.setSnCode(ksolarStationCollectData.getInverterId());
jpInverterElectricityT.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
jpInverterElectricityT.setThirdStationId(ksolarStationCollectList.getThirdStationId());
jpInverterElectricityT.setType("交流");
jpInverterElectricityT.setName("TR");
jpInverterElectricityT.setVoltage(ksolarStationCollectData.getVoltageTr());
jpInverterElectricityT.setCurrent(ksolarStationCollectData.getCurrentT());
if (ObjectUtils.isEmpty(jpInverterElectricityT.getSequenceNbr())) {
jpInverterElectricityMapper.insert(jpInverterElectricityT);
} else {
jpInverterElectricityMapper.updateById(jpInverterElectricityT);
}
//
HYGFJPInverterElecHistory hygfjpInverterElecHistory = new HYGFJPInverterElecHistory();
hygfjpInverterElecHistory.setThirdStationId(ksolarStationCollectList.getThirdStationId());
hygfjpInverterElecHistory.setCreatedTime(System.currentTimeMillis());
hygfjpInverterElecHistory.setSnCode(ksolarStationCollectData.getInverterId());
hygfjpInverterElecHistory.setUAcCurrent(ksolarStationCollectData.getCurrentR());
hygfjpInverterElecHistory.setVAcCurrent(ksolarStationCollectData.getCurrents());
hygfjpInverterElecHistory.setWAcCurrent(ksolarStationCollectData.getCurrentT());
hygfjpInverterElecHistory.setUAcVoltage(ksolarStationCollectData.getVoltageRs());
hygfjpInverterElecHistory.setVAcVoltage(ksolarStationCollectData.getVoltageSt());
hygfjpInverterElecHistory.setWAcVoltage(ksolarStationCollectData.getVoltageTr());
hygfjpInverterElecHistory.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
hygfjpInverterElecHistory.setTime(System.currentTimeMillis());
hygfjpInverterElecHistoryMapper.insert(hygfjpInverterElecHistory);
// 逆变器历史
String today = DateUtil.today();
HYGFJPInverterHistory hygfjpInverterHistory = hygfjpInverterHistoryMapper.selectOne(
new QueryWrapper<HYGFJPInverterHistory>().eq("sn_code", ksolarStationCollectData.getInverterId()).eq("date", today));
if (ObjectUtils.isEmpty(hygfjpInverterHistory)) {
hygfjpInverterHistory = new HYGFJPInverterHistory();
}
// 满发小时数
// hygfjpInverterHistory.setGenerationHours(inverterDetailDto.getFullHour());
hygfjpInverterHistory.setDate(today);
hygfjpInverterHistory.setThirdStationId(ksolarStationCollectList.getThirdStationId());
hygfjpInverterHistory.setInverterId(ksolarStationCollectData.getInverterId());
hygfjpInverterHistory.setSnCode(ksolarStationCollectData.getInverterId());
hygfjpInverterHistory.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
hygfjpInverterHistory.setPowerGeneration(ksolarStationCollectData.getTotalGeneration());
if (ObjectUtils.isEmpty(hygfjpInverterHistory.getCreatedTime())) {
hygfjpInverterHistory.setCreatedTime(System.currentTimeMillis());
hygfjpInverterHistoryMapper.insert(hygfjpInverterHistory);
} else {
hygfjpInverterHistoryMapper.insert(hygfjpInverterHistory);
}
});
}
}
});
}
// 实时告警
try {
inverAlramInfo();
} catch (ParseException e) {
e.printStackTrace();
}
}
@Override
public void inverterList() {
}
@Override
public void inverterDetail() {
}
private void inverAlramInfo() throws ParseException {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
HashMap<String, Object> requestInfo = new HashMap<>(1);
String requestParaminfo = JSON.toJSONString(requestInfo);
String url = KSolarConstant.stationCollectAlarmUrl + "?pageNumber=1&pageSize=200";
List<KsolarAlarmDto> result = kSolarRequestUtil.getResPonse(
url,
KSolarConstant.requestGET,
requestParaminfo,
KSolarConstant.resovle_rows,
KsolarAlarmDto.class
);
if (!CollectionUtils.isEmpty(result)) {
for (KsolarAlarmDto ksolarAlarmDto : result) {
if (!ObjectUtils.isEmpty(ksolarAlarmDto.getInverterId())) {
String startTime = ksolarAlarmDto.getSaveTime();
String recoverTime = ksolarAlarmDto.getRemoveTime();
String pattern = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date startTimeL = sdf.parse(startTime);
Date recoverTimeL = sdf.parse(recoverTime);
HYGFJPInverterWarn hygfjpInverterWarn = hygfjpInverterWarnMapper.selectOne(new QueryWrapper<HYGFJPInverterWarn>()
.eq("sn_code", ksolarAlarmDto.getAlarmId())
.eq("start_time", startTimeL.getTime())
.eq("third_code", PVProducerInfoEnum.KSOLAR.getCode())
.eq("third_station_id", ksolarAlarmDto.getStationId())
);
if (ObjectUtils.isEmpty(hygfjpInverterWarn)) {
hygfjpInverterWarn = new HYGFJPInverterWarn();
}
hygfjpInverterWarn.setTime(System.currentTimeMillis());
hygfjpInverterWarn.setTimeLong(System.currentTimeMillis());
hygfjpInverterWarn.setSnCode(ksolarAlarmDto.getAlarmId());
hygfjpInverterWarn.setThirdStationId(ksolarAlarmDto.getStationId());
hygfjpInverterWarn.setLevel(KSolarConstant.alarmLevel.get(ksolarAlarmDto.getLevels()));
hygfjpInverterWarn.setContent(ksolarAlarmDto.getMessage());
hygfjpInverterWarn.setThirdCode(PVProducerInfoEnum.KSOLAR.getCode());
hygfjpInverterWarn.setTreatment(ksolarAlarmDto.getSolution());
hygfjpInverterWarn.setStartTime(startTimeL.getTime());
hygfjpInverterWarn.setRecoverTime(recoverTimeL.getTime());
hygfjpInverterWarn.setState(KSolarConstant.alarmstatus.get(ksolarAlarmDto.getStatus()));
if (ObjectUtils.isEmpty(hygfjpInverterWarn.getCreatedTime())) {
hygfjpInverterWarn.setCreatedTime(System.currentTimeMillis());
hygfjpInverterWarnMapper.insert(hygfjpInverterWarn);
} else {
hygfjpInverterWarnMapper.insert(hygfjpInverterWarn);
}
}
}
}
}
}
...@@ -2,53 +2,98 @@ ...@@ -2,53 +2,98 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanPointProcessVariableClassificationMapper"> <mapper namespace="com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanPointProcessVariableClassificationMapper">
<select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanPointProcessVariableClassificationDto"> <select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanPointProcessVariableClassificationDto">
SELECT b.*, SELECT
ibfpvcv.PROCESS_POINT1_ID as pointOneId, b.*,
ibfpvcv.PROCESS_POINT2_ID as pointTwoId, ibfpvcv.PROCESS_POINT1_ID AS pointOneId,
ibfpvcv.PROCESS_POINT3_ID as pointThreeId, ibfpvcv.PROCESS_POINT2_ID AS pointTwoId,
ibfpvcv.ANALYSIS_POINT_ID as pointId ibfpvcv.PROCESS_POINT3_ID AS pointThreeId,
FROM ( ibfpvcv.ANALYSIS_POINT_ID AS pointId
SELECT * FROM
FROM idx_biz_fan_point_process_variable_classification uxfv (
WHERE uxfv.SEQUENCE_NBR IN ( SELECT
SELECT PROCESS_POINT1_ID *
FROM `idx_biz_fan_point_var_central_value` FROM
WHERE ANALYSIS_POINT_ID IS NOT NULL idx_biz_fan_point_process_variable_classification uxfv
GROUP BY ANALYSIS_POINT_ID, WHERE
PROCESS_POINT1_ID, uxfv.SEQUENCE_NBR IN ( SELECT PROCESS_POINT1_ID FROM `idx_biz_fan_point_var_central_value` WHERE ANALYSIS_POINT_ID IS NOT NULL GROUP BY ANALYSIS_POINT_ID, PROCESS_POINT1_ID, PROCESS_POINT3_ID, PROCESS_POINT2_ID )
PROCESS_POINT3_ID, ) AS b,
PROCESS_POINT2_ID
UNION ALL
SELECT PROCESS_POINT2_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
UNION ALL
SELECT PROCESS_POINT3_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
UNION ALL
SELECT ANALYSIS_POINT_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
)) AS b,
idx_biz_fan_point_var_central_value ibfpvcv idx_biz_fan_point_var_central_value ibfpvcv
WHERE b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY b.SEQUENCE_NBR GROUP BY
b.SEQUENCE_NBR UNION ALL
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_fan_point_process_variable_classification uxfv
WHERE
uxfv.SEQUENCE_NBR IN ( SELECT PROCESS_POINT2_ID FROM `idx_biz_fan_point_var_central_value` WHERE ANALYSIS_POINT_ID IS NOT NULL GROUP BY ANALYSIS_POINT_ID, PROCESS_POINT1_ID, PROCESS_POINT3_ID, PROCESS_POINT2_ID )
) AS b,
idx_biz_fan_point_var_central_value ibfpvcv
WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY
b.SEQUENCE_NBR UNION ALL
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_fan_point_process_variable_classification uxfv
WHERE
uxfv.SEQUENCE_NBR IN ( SELECT PROCESS_POINT3_ID FROM `idx_biz_fan_point_var_central_value` WHERE ANALYSIS_POINT_ID IS NOT NULL GROUP BY ANALYSIS_POINT_ID, PROCESS_POINT1_ID, PROCESS_POINT3_ID, PROCESS_POINT2_ID )
) AS b,
idx_biz_fan_point_var_central_value ibfpvcv
WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY
b.SEQUENCE_NBR UNION ALL
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_fan_point_process_variable_classification uxfv
WHERE
uxfv.SEQUENCE_NBR IN ( SELECT ANALYSIS_POINT_ID FROM `idx_biz_fan_point_var_central_value` WHERE ANALYSIS_POINT_ID IS NOT NULL GROUP BY ANALYSIS_POINT_ID, PROCESS_POINT1_ID, PROCESS_POINT3_ID, PROCESS_POINT2_ID )
) AS b,
idx_biz_fan_point_var_central_value ibfpvcv
WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY
b.SEQUENCE_NBR
</select> </select>
<select id="gateWayIdListFan" resultType="java.lang.String"> <select id="gateWayIdListFan" resultType="java.lang.String">
......
...@@ -6,52 +6,97 @@ ...@@ -6,52 +6,97 @@
</select> </select>
<select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizPvPointProcessVariableClassificationDto"> <select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizPvPointProcessVariableClassificationDto">
SELECT b.*, SELECT
ibfpvcv.PROCESS_POINT1_ID as pointOneId, b.*,
ibfpvcv.PROCESS_POINT2_ID as pointTwoId, ibfpvcv.PROCESS_POINT1_ID AS pointOneId,
ibfpvcv.PROCESS_POINT3_ID as pointThreeId, ibfpvcv.PROCESS_POINT2_ID AS pointTwoId,
ibfpvcv.ANALYSIS_POINT_ID as pointId ibfpvcv.PROCESS_POINT3_ID AS pointThreeId,
FROM ( ibfpvcv.ANALYSIS_POINT_ID AS pointId
SELECT * FROM
FROM idx_biz_pv_point_process_variable_classification uxfv (
WHERE uxfv.SEQUENCE_NBR IN ( SELECT
SELECT PROCESS_POINT1_ID *
FROM `idx_biz_pv_point_var_central_value` FROM
WHERE ANALYSIS_POINT_ID IS NOT NULL idx_biz_pv_point_process_variable_classification uxfv
GROUP BY ANALYSIS_POINT_ID, WHERE
PROCESS_POINT1_ID, 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 )
PROCESS_POINT3_ID, ) AS b,
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 idx_biz_pv_point_var_central_value ibfpvcv
WHERE b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY b.SEQUENCE_NBR GROUP BY
b.SEQUENCE_NBR UNION ALL
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_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 )
) 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 UNION ALL
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_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 )
) 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 UNION ALL
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 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> </select>
</mapper> </mapper>
...@@ -44,8 +44,8 @@ public class TestController extends BaseController { ...@@ -44,8 +44,8 @@ public class TestController extends BaseController {
@GetMapping("/test2") @GetMapping("/test2")
public void test2 () { public void test2 () {
commonService.healthWarningMinuteByFJ(); // commonService.healthWarningMinuteByFJ();
commonService.healthWarningMinuteByFan();
} }
} }
...@@ -57,6 +57,10 @@ public class CommonServiceImpl { ...@@ -57,6 +57,10 @@ public class CommonServiceImpl {
String baseUrlXGX = "http://139.9.173.44:8052/intelligent-analysis/correlation"; 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}") @Value("${gkblhffan.url:74435221-796d-43c0-ae72-319792b8f89e}")
String gkqjhfurlfan; String gkqjhfurlfan;
...@@ -980,7 +984,7 @@ public class CommonServiceImpl { ...@@ -980,7 +984,7 @@ public class CommonServiceImpl {
return s; return s;
} }
@Scheduled(cron = "0 0/5 * * * ?") // @Scheduled(cron = "0 0/5 * * * ?")
public void healthWarningMinuteByFJ() { public void healthWarningMinuteByFJ() {
Date time = new Date(); Date time = new Date();
List<IdxBizFanPointProcessVariableClassificationDto> data = idxBizFanPointProcessVariableClassificationMapper.getInfluxDBData(); List<IdxBizFanPointProcessVariableClassificationDto> data = idxBizFanPointProcessVariableClassificationMapper.getInfluxDBData();
...@@ -1108,7 +1112,7 @@ public class CommonServiceImpl { ...@@ -1108,7 +1112,7 @@ public class CommonServiceImpl {
} }
} }
@Scheduled(cron = "0 0/10 * * * ?") // @Scheduled(cron = "0 0/10 * * * ?")
public void healthWarningMinuteByGF() { public void healthWarningMinuteByGF() {
Date time = new Date(); Date time = new Date();
List<IdxBizPvPointProcessVariableClassificationDto> data = idxBizPvPointProcessVariableClassificationMapper.getInfluxDBData(); List<IdxBizPvPointProcessVariableClassificationDto> data = idxBizPvPointProcessVariableClassificationMapper.getInfluxDBData();
...@@ -1450,4 +1454,252 @@ public class CommonServiceImpl { ...@@ -1450,4 +1454,252 @@ public class CommonServiceImpl {
} }
@Scheduled(cron = "0 0/5 * * * ?")
public void healthWarningMinuteByFan() {
Date time = new Date();
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();
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
}
for (IdxBizFanPointProcessVariableClassificationDto datum : data) {
for (ESEquipments equipment : equipments) {
if (equipment.getAddress().equals(datum.getIndexAddress()) && equipment.getGatewayId().equals(datum.getGatewayId())) {
datum.setCurrentValue(equipment.getValueF());
}
}
}
LambdaQueryWrapper<IdxBizFanPointVarCentralValue> wrapper = new LambdaQueryWrapper<>();
List<IdxBizFanPointVarCentralValue> idxBizUhefs = idxBizFanPointVarCentralValueMapper.selectList(wrapper);
HashMap<String, Object> requestMap = new HashMap<>();
ArrayList<Object> analysisVariableList = new ArrayList<>();
ArrayList<Object> stdDevList = new ArrayList<>();
ArrayList<Object> centerValueList = new ArrayList<>();
ArrayList<Object> analysisVariableIdList = new ArrayList<>();
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() == null ? 0.0 : datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint2Id().equals(datum.getSequenceNbr())) {
value2 = datum.getCurrentValue() == null ? 0.0 : datum.getCurrentValue();
}
if (idxBizUhef.getProcessPoint3Id().equals(datum.getSequenceNbr())) {
value3 = datum.getCurrentValue() == null ? 0.0 : datum.getCurrentValue();
}
if (idxBizUhef.getAnalysisPointId().equals(datum.getSequenceNbr())) {
value4 = datum.getCurrentValue() == null ? 0.0 : datum.getCurrentValue();
}
}
if (idxBizUhef.getProcess1Min() <= value1 && value1 <= idxBizUhef.getProcess1Max() && idxBizUhef.getProcess2Min() <= value2 && value2 <= idxBizUhef.getPorcess2Max() && idxBizUhef.getProcess3Min() <= value3 && value3 <= idxBizUhef.getProcess3Max()) {
analysisVariableList.add(value4);
stdDevList.add(idxBizUhef.getAnalysisStdDev());
centerValueList.add(idxBizUhef.getAnalysisCenterValue());
analysisVariableIdList.add(idxBizUhef.getAnalysisPointId());
}
}
requestMap.put("analysisVariable", analysisVariableList);
requestMap.put("stdDev", stdDevList);
requestMap.put("centerValue", centerValueList);
requestMap.put("analysisVariableId", analysisVariableIdList);
logger.info("------------------------------------------开始调用健康指数计算算法开始----------------------------------------");
String response = HttpUtil.createPost(baseUrlZSFX).body(JSON.toJSONString(requestMap)).execute().body();
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.containsKey("indexValue")) {
JSONArray indexValueArray = jsonObject.getJSONArray("indexValue");
JSONArray scoreValueArray = jsonObject.getJSONArray("scoreValue");
JSONArray analysisVariableIdArray = jsonObject.getJSONArray("analysisVariableId");
LambdaQueryWrapper<IdxBizFanPointProcessVariableClassification> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(IdxBizFanPointProcessVariableClassification::getSequenceNbr, analysisVariableIdArray);
List<IdxBizFanPointProcessVariableClassification> list = idxBizFanPointProcessVariableClassificationMapper.selectList(queryWrapper);
List<IdxBizFanHealthIndex> idxBizFanHealthIndexs = new ArrayList<>();
for (IdxBizFanPointProcessVariableClassification obj : list) {
for (int i = 0; i < analysisVariableIdArray.size(); i++) {
IdxBizFanHealthIndex idxBizFanHealthIndex = new IdxBizFanHealthIndex();
BeanUtils.copyProperties(obj, idxBizFanHealthIndex);
idxBizFanHealthIndex.setHealthIndex(indexValueArray.getDoubleValue(i));
idxBizFanHealthIndex.setAnalysisObjSeq(obj.getSequenceNbr());
idxBizFanHealthIndex.setRecDate(time);
idxBizFanHealthIndex.setSequenceNbr(null);
idxBizFanHealthIndex.setRecDate(new Date());
//获取健康指数对应等级
LambdaQueryWrapper<IdxBizFanHealthLevel> query = new LambdaQueryWrapper<>();
query.eq(IdxBizFanHealthLevel::getAnalysisObjType, "设备");
query.eq(IdxBizFanHealthLevel::getStatus, obj.getStation());
query.le(IdxBizFanHealthLevel::getGroupLowerLimit, indexValueArray.getDoubleValue(i));
query.ge(IdxBizFanHealthLevel::getGroupUpperLimit, indexValueArray.getDoubleValue(i));
IdxBizFanHealthLevel idxBizFanHealthLevel = idxBizFanHealthLevelMapper.selectOne(query);
idxBizFanHealthIndex.setHealthLevel(idxBizFanHealthLevel.getHealthLevel());
idxBizFanHealthIndex.setAnalysisType("按时刻");
idxBizFanHealthIndex.setAnalysisObjType("测点");
idxBizFanHealthIndex.setANOMALY(scoreValueArray.getDoubleValue(i));
idxBizFanHealthIndexs.add(idxBizFanHealthIndex);
}
}
idxBizFanHealthIndexService.saveBatch(idxBizFanHealthIndexs);
}
try {
logger.info("--------------------response: " + response);
logger.info("------------------------------------------调用健康指数计算算法结束----------------------------------------");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Scheduled(cron = "0 0/5 * * * ?")
public void healthWarningMinuteByPv() {
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();
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.getValueF().doubleValue());
}
}
}
LambdaQueryWrapper<IdxBizPvPointVarCentralValue> wrapper = new LambdaQueryWrapper<>();
List<IdxBizPvPointVarCentralValue> idxBizUhefs = idxBizPvPointVarCentralValueMapper.selectList(wrapper);
HashMap<String, Object> requestMap = new HashMap<>();
ArrayList<Object> analysisVariableList = new ArrayList<>();
ArrayList<Object> stdDevList = new ArrayList<>();
ArrayList<Object> centerValueList = new ArrayList<>();
ArrayList<Object> analysisVariableIdList = new ArrayList<>();
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();
}
}
if (idxBizUhef.getProcess1Min() <= value1 && value1 <= idxBizUhef.getProcess1Max() && idxBizUhef.getProcess2Min() <= value2 && value2 <= idxBizUhef.getProcess2Max() && idxBizUhef.getProcess3Min() <= value3 && value3 <= idxBizUhef.getProcess3Max()) {
analysisVariableList.add(value4);
stdDevList.add(idxBizUhef.getAnalysisStdDev());
centerValueList.add(idxBizUhef.getAnalysisCenterValue());
analysisVariableIdList.add(idxBizUhef.getAnalysisPointId());
}
}
requestMap.put("analysisVariable", analysisVariableList);
requestMap.put("stdDev", stdDevList);
requestMap.put("centerValue", centerValueList);
requestMap.put("analysisVariableId", analysisVariableIdList);
logger.info("------------------------------------------开始调用健康指数计算算法开始----------------------------------------");
String response = HttpUtil.createPost(baseUrlZSFX).body(JSON.toJSONString(requestMap)).execute().body();
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.containsKey("indexValue")) {
JSONArray indexValueArray = jsonObject.getJSONArray("indexValue");
JSONArray scoreValueArray = jsonObject.getJSONArray("scoreValue");
JSONArray analysisVariableIdArray = jsonObject.getJSONArray("analysisVariableId");
LambdaQueryWrapper<IdxBizPvPointProcessVariableClassification> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(IdxBizPvPointProcessVariableClassification::getSequenceNbr, analysisVariableIdArray);
List<IdxBizPvPointProcessVariableClassification> list = idxBizPvPointProcessVariableClassificationMapper.selectList(queryWrapper);
List<IdxBizPvHealthIndex> idxBizPvHealthIndexs = new ArrayList<>();
for (IdxBizPvPointProcessVariableClassification obj : list) {
for (int i = 0; i < analysisVariableIdArray.size(); i++) {
IdxBizPvHealthIndex idxBizPvHealthIndex = new IdxBizPvHealthIndex();
BeanUtils.copyProperties(obj, idxBizPvHealthIndex);
idxBizPvHealthIndex.setHealthIndex(indexValueArray.getDoubleValue(i));
idxBizPvHealthIndex.setAnalysisObjSeq(obj.getSequenceNbr());
idxBizPvHealthIndex.setRecDate(time);
//获取健康指数对应等级
LambdaQueryWrapper<IdxBizPvHealthLevel> query = new LambdaQueryWrapper<>();
query.eq(IdxBizPvHealthLevel::getAnalysisObjType, "设备");
query.eq(IdxBizPvHealthLevel::getStatus, obj.getStation());
query.le(IdxBizPvHealthLevel::getGroupLowerLimit, indexValueArray.getDoubleValue(i));
query.ge(IdxBizPvHealthLevel::getGroupUpperLimit, indexValueArray.getDoubleValue(i));
IdxBizPvHealthLevel idxBizFanHealthLevel = idxBizPvHealthLevelMapper.selectOne(query);
idxBizPvHealthIndex.setHealthLevel(idxBizFanHealthLevel.getHealthLevel());
idxBizPvHealthIndex.setAnalysisType("按时刻");
idxBizPvHealthIndex.setAnalysisObjType("测点");
idxBizPvHealthIndex.setANOMALY(scoreValueArray.getDoubleValue(i));
idxBizPvHealthIndexs.add(idxBizPvHealthIndex);
}
}
idxBizPvHealthIndexService.saveBatch(idxBizPvHealthIndexs);
}
try {
logger.info("--------------------response: " + response);
logger.info("------------------------------------------调用健康指数计算算法结束----------------------------------------");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
} }
...@@ -172,3 +172,5 @@ base.url.XGX=http://139.9.171.247:8052/intelligent-analysis/correlation ...@@ -172,3 +172,5 @@ base.url.XGX=http://139.9.171.247:8052/intelligent-analysis/correlation
base.url.GKHF=http://139.9.171.247:8052/intelligent-analysis/working-condition-division base.url.GKHF=http://139.9.171.247:8052/intelligent-analysis/working-condition-division
#相关性 算法调用 #相关性 算法调用
base.url.ZXZ=http://139.9.171.247:8052/intelligent-analysis/central-value base.url.ZXZ=http://139.9.171.247:8052/intelligent-analysis/central-value
#指数分析,算法调用
base.url.zsfx:http://139.9.171.247:8052/intelligent-analysis/index-analysis
\ No newline at end of file
...@@ -2,53 +2,98 @@ ...@@ -2,53 +2,98 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanPointProcessVariableClassificationMapper"> <mapper namespace="com.yeejoin.amos.boot.module.jxiop.biz.mapper2.IdxBizFanPointProcessVariableClassificationMapper">
<select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanPointProcessVariableClassificationDto"> <select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanPointProcessVariableClassificationDto">
SELECT b.*, SELECT
ibfpvcv.PROCESS_POINT1_ID as pointOneId, b.*,
ibfpvcv.PROCESS_POINT2_ID as pointTwoId, ibfpvcv.PROCESS_POINT1_ID AS pointOneId,
ibfpvcv.PROCESS_POINT3_ID as pointThreeId, ibfpvcv.PROCESS_POINT2_ID AS pointTwoId,
ibfpvcv.ANALYSIS_POINT_ID as pointId ibfpvcv.PROCESS_POINT3_ID AS pointThreeId,
FROM ( ibfpvcv.ANALYSIS_POINT_ID AS pointId
SELECT * FROM
FROM idx_biz_fan_point_process_variable_classification uxfv (
WHERE uxfv.SEQUENCE_NBR IN ( SELECT
SELECT PROCESS_POINT1_ID *
FROM `idx_biz_fan_point_var_central_value` FROM
WHERE ANALYSIS_POINT_ID IS NOT NULL idx_biz_fan_point_process_variable_classification uxfv
GROUP BY ANALYSIS_POINT_ID, WHERE
PROCESS_POINT1_ID, uxfv.SEQUENCE_NBR IN ( SELECT PROCESS_POINT1_ID FROM `idx_biz_fan_point_var_central_value` WHERE ANALYSIS_POINT_ID IS NOT NULL GROUP BY ANALYSIS_POINT_ID, PROCESS_POINT1_ID, PROCESS_POINT3_ID, PROCESS_POINT2_ID )
PROCESS_POINT3_ID, ) AS b,
PROCESS_POINT2_ID
UNION ALL
SELECT PROCESS_POINT2_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
UNION ALL
SELECT PROCESS_POINT3_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
UNION ALL
SELECT ANALYSIS_POINT_ID
FROM `idx_biz_fan_point_var_central_value`
WHERE ANALYSIS_POINT_ID IS NOT NULL
GROUP BY ANALYSIS_POINT_ID,
PROCESS_POINT1_ID,
PROCESS_POINT3_ID,
PROCESS_POINT2_ID
)) AS b,
idx_biz_fan_point_var_central_value ibfpvcv idx_biz_fan_point_var_central_value ibfpvcv
WHERE b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY b.SEQUENCE_NBR GROUP BY
b.SEQUENCE_NBR UNION ALL
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_fan_point_process_variable_classification uxfv
WHERE
uxfv.SEQUENCE_NBR IN ( SELECT PROCESS_POINT2_ID FROM `idx_biz_fan_point_var_central_value` WHERE ANALYSIS_POINT_ID IS NOT NULL GROUP BY ANALYSIS_POINT_ID, PROCESS_POINT1_ID, PROCESS_POINT3_ID, PROCESS_POINT2_ID )
) AS b,
idx_biz_fan_point_var_central_value ibfpvcv
WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY
b.SEQUENCE_NBR UNION ALL
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_fan_point_process_variable_classification uxfv
WHERE
uxfv.SEQUENCE_NBR IN ( SELECT PROCESS_POINT3_ID FROM `idx_biz_fan_point_var_central_value` WHERE ANALYSIS_POINT_ID IS NOT NULL GROUP BY ANALYSIS_POINT_ID, PROCESS_POINT1_ID, PROCESS_POINT3_ID, PROCESS_POINT2_ID )
) AS b,
idx_biz_fan_point_var_central_value ibfpvcv
WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY
b.SEQUENCE_NBR UNION ALL
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_fan_point_process_variable_classification uxfv
WHERE
uxfv.SEQUENCE_NBR IN ( SELECT ANALYSIS_POINT_ID FROM `idx_biz_fan_point_var_central_value` WHERE ANALYSIS_POINT_ID IS NOT NULL GROUP BY ANALYSIS_POINT_ID, PROCESS_POINT1_ID, PROCESS_POINT3_ID, PROCESS_POINT2_ID )
) AS b,
idx_biz_fan_point_var_central_value ibfpvcv
WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY
b.SEQUENCE_NBR
</select> </select>
<select id="gateWayIdListFan" resultType="java.lang.String"> <select id="gateWayIdListFan" resultType="java.lang.String">
......
...@@ -6,52 +6,97 @@ ...@@ -6,52 +6,97 @@
</select> </select>
<select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizPvPointProcessVariableClassificationDto"> <select id="getInfluxDBData" resultType="com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizPvPointProcessVariableClassificationDto">
SELECT b.*, SELECT
ibfpvcv.PROCESS_POINT1_ID as pointOneId, b.*,
ibfpvcv.PROCESS_POINT2_ID as pointTwoId, ibfpvcv.PROCESS_POINT1_ID AS pointOneId,
ibfpvcv.PROCESS_POINT3_ID as pointThreeId, ibfpvcv.PROCESS_POINT2_ID AS pointTwoId,
ibfpvcv.ANALYSIS_POINT_ID as pointId ibfpvcv.PROCESS_POINT3_ID AS pointThreeId,
FROM ( ibfpvcv.ANALYSIS_POINT_ID AS pointId
SELECT * FROM
FROM idx_biz_pv_point_process_variable_classification uxfv (
WHERE uxfv.SEQUENCE_NBR IN ( SELECT
SELECT PROCESS_POINT1_ID *
FROM `idx_biz_pv_point_var_central_value` FROM
WHERE ANALYSIS_POINT_ID IS NOT NULL idx_biz_pv_point_process_variable_classification uxfv
GROUP BY ANALYSIS_POINT_ID, WHERE
PROCESS_POINT1_ID, 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 )
PROCESS_POINT3_ID, ) AS b,
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 idx_biz_pv_point_var_central_value ibfpvcv
WHERE b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID WHERE
b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT1_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT2_ID
OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID OR b.SEQUENCE_NBR = ibfpvcv.PROCESS_POINT3_ID
OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID OR b.SEQUENCE_NBR = ibfpvcv.ANALYSIS_POINT_ID
GROUP BY b.SEQUENCE_NBR GROUP BY
b.SEQUENCE_NBR UNION ALL
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_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 )
) 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 UNION ALL
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_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 )
) 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 UNION ALL
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 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> </select>
</mapper> </mapper>
...@@ -214,7 +214,8 @@ ...@@ -214,7 +214,8 @@
ifnull(a.qrcode_color, '') AS qrCodeColor, ifnull(a.qrcode_color, '') AS qrCodeColor,
ifnull(c.station_name, '') AS stationName, ifnull(c.station_name, '') AS stationName,
ifnull(a.rec_date, '') as recDate, ifnull(a.rec_date, '') as recDate,
a.sequence_nbr as objectId a.sequence_nbr as objectId,
b.project_name as unitName
FROM FROM
person_basic a person_basic a
LEFT JOIN person_account b ON a.sequence_nbr = b.person_id LEFT JOIN person_account b ON a.sequence_nbr = b.person_id
......
...@@ -488,16 +488,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -488,16 +488,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
Map<String, Object> otherInfo = new HashMap<>(); Map<String, Object> otherInfo = new HashMap<>();
List<IndicatorData> activePowerList = new ArrayList<>(); List<IndicatorData> activePowerList = new ArrayList<>();
List<IndicatorData> otherList = new ArrayList<>(); List<IndicatorData> otherList = new ArrayList<>();
String startTime = DateUtil.today() + " 00:00:00";
String endTime = DateUtil.today() + " 23:59:59";
Double installedCapacity = commonServiceImpl.getStationCapactityByStationWerks(stationBasic.getStationNumber()); Double installedCapacity = commonServiceImpl.getStationCapactityByStationWerks(stationBasic.getStationNumber());
if ("FDZ".equals(stationBasic.getStationType())) { if ("FDZ".equals(stationBasic.getStationType())) {
activePowerList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.xiazaoActivePowerPoint, startTime, endTime, stationBasic.getBoosterGatewayId()); activePowerList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.xiazaoActivePowerPoint, stationBasic.getBoosterGatewayId());
otherList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.xiazaoWindSpeedrPoint, startTime, endTime, stationBasic.getFanGatewayId()); otherList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.xiazaoWindSpeedrPoint, stationBasic.getFanGatewayId());
groupMap = otherList.stream().collect(Collectors.groupingBy(IndicatorData::getCreatedTime, Collectors.averagingDouble(IndicatorData::getValueF))); groupMap = otherList.stream().collect(Collectors.groupingBy(IndicatorData::getCreatedTime, Collectors.averagingDouble(IndicatorData::getValueF)));
} else { } else {
activePowerList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.taiheActivePowerPoint, startTime, endTime, stationBasic.getBoosterGatewayId()); activePowerList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.taiheActivePowerPoint, stationBasic.getBoosterGatewayId());
otherList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.taiheIrradiationPonit, startTime, endTime, stationBasic.getBoosterGatewayId()); otherList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime(CommonConstans.taiheIrradiationPonit, stationBasic.getBoosterGatewayId());
} }
for (int i = 0; i < activePowerList.size(); i++) { for (int i = 0; i < activePowerList.size(); i++) {
IndicatorData indicatorData = activePowerList.get(i); IndicatorData indicatorData = activePowerList.get(i);
...@@ -555,14 +553,11 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -555,14 +553,11 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
public Map<String, Object> getDetailsWindSpeed(String gatewayId, String name) { public Map<String, Object> getDetailsWindSpeed(String gatewayId, String name) {
Date currentDayStartTime = DateUtils.getCurrentDayStartTime(new Date());
Date currentDayEndTime = DateUtils.getCurrentDayEndTime(new Date());
String startTime = DateUtils.convertDateToString(currentDayStartTime, DateUtils.DATE_TIME_PATTERN);
String endTime = DateUtils.convertDateToString(currentDayEndTime, DateUtils.DATE_TIME_PATTERN);
List<IndicatorData> indicatorDataListWindSpeed = new ArrayList<>(); List<IndicatorData> indicatorDataListWindSpeed = new ArrayList<>();
List<IndicatorData> indicatorDataListActivePower = new ArrayList<>(); List<IndicatorData> indicatorDataListActivePower = new ArrayList<>();
indicatorDataListWindSpeed = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("瞬时风速", name, startTime, endTime, gatewayId); indicatorDataListWindSpeed = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("瞬时风速", name, gatewayId);
indicatorDataListActivePower = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("有功功率", name, startTime, endTime, gatewayId); indicatorDataListActivePower = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("有功功率", name, gatewayId);
List<String> windSpeeds = new ArrayList<>(); List<String> windSpeeds = new ArrayList<>();
List<String> activePowers = new ArrayList<>(); List<String> activePowers = new ArrayList<>();
List<String> axisData = new ArrayList<>(); List<String> axisData = new ArrayList<>();
...@@ -586,12 +581,8 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -586,12 +581,8 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
public Map<String, Object> getDetailsWindSpeeds(String gatewayId, String name) { public Map<String, Object> getDetailsWindSpeeds(String gatewayId, String name) {
Date currentDayStartTime = DateUtils.getCurrentDayStartTime(new Date());
Date currentDayEndTime = DateUtils.getCurrentDayEndTime(new Date());
String startTime = DateUtils.convertDateToString(currentDayStartTime, DateUtils.DATE_TIME_PATTERN);
String endTime = DateUtils.convertDateToString(currentDayEndTime, DateUtils.DATE_TIME_PATTERN);
List<IndicatorData> indicatorDataListActivePowers = new ArrayList<>(); List<IndicatorData> indicatorDataListActivePowers = new ArrayList<>();
indicatorDataListActivePowers = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("有功功率", name, startTime, endTime, gatewayId); indicatorDataListActivePowers = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumber("有功功率", name, gatewayId);
List<String> axisData = new ArrayList<>(); List<String> axisData = new ArrayList<>();
List<String> activePowers = new ArrayList<>(); List<String> activePowers = new ArrayList<>();
for (int i = 0; i < indicatorDataListActivePowers.size(); i++) { for (int i = 0; i < indicatorDataListActivePowers.size(); i++) {
...@@ -1372,11 +1363,13 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1372,11 +1363,13 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
queryCondition.put(CommonConstans.QueryStringGateWayId, Arrays.asList(gatewayId)); queryCondition.put(CommonConstans.QueryStringGateWayId, Arrays.asList(gatewayId));
queryCondition.put(CommonConstans.QueryStringSystemTypeKeyword, Arrays.asList("模拟量")); queryCondition.put(CommonConstans.QueryStringSystemTypeKeyword, Arrays.asList("模拟量"));
List<ESEquipments> esEquipmentsList = commonServiceImpl.getListDataByCondtions(queryCondition, null, ESEquipments.class); List<ESEquipments> esEquipmentsList = commonServiceImpl.getListDataByCondtions(queryCondition, null, ESEquipments.class);
List<String> displayName = Arrays.asList("Ua","Ub","Uc");
// 10kVⅡ段母线数据 // 10kVⅡ段母线数据
List<ESEquipments> xianData = esEquipmentsList.stream().filter(esEquipments -> esEquipments.getFrontModule().contains("35kVⅠ母PT")).collect(Collectors.toList()); List<ESEquipments> xianData = esEquipmentsList.stream().filter(esEquipments -> esEquipments.getFrontModule().contains("35kVⅠ母PT")&&!displayName.contains(esEquipments.getDisplayName())).collect(Collectors.toList());
HashMap<String, Object> resultMap = new HashMap<>(); HashMap<String, Object> resultMap = new HashMap<>();
xianData.forEach(item -> resultMap.put(item.getDisplayName(), keepTwoDecimalPlaces(item.getValueF().toString()))); xianData.forEach(item -> resultMap.put(item.getDisplayName(), keepTwoDecimalPlaces(item.getValueF().toString())));
List<ESEquipments> xianData1 = esEquipmentsList.stream().filter(esEquipments -> esEquipments.getEquipmentIndexName().contains("南瑞光差保护_313")&&displayName.contains(esEquipments.getDisplayName())).collect(Collectors.toList());
xianData1.forEach(item -> resultMap.put(item.getDisplayName(), keepTwoDecimalPlaces(item.getValueF().toString())));
List<String> xyxDisplayNameList = Arrays.asList("Ia", "P", "Q"); List<String> xyxDisplayNameList = Arrays.asList("Ia", "P", "Q");
List<ESEquipments> xyxSqlData = esEquipmentsList.stream().filter(esEquipments -> esEquipments.getFrontModule().equals("35kV前万线") && xyxDisplayNameList.contains(esEquipments.getDisplayName())).collect(Collectors.toList()); List<ESEquipments> xyxSqlData = esEquipmentsList.stream().filter(esEquipments -> esEquipments.getFrontModule().equals("35kV前万线") && xyxDisplayNameList.contains(esEquipments.getDisplayName())).collect(Collectors.toList());
xyxSqlData.forEach(item -> resultMap.put("35qwx" + item.getDisplayName(), keepTwoDecimalPlaces(item.getValueF().toString()))); xyxSqlData.forEach(item -> resultMap.put("35qwx" + item.getDisplayName(), keepTwoDecimalPlaces(item.getValueF().toString())));
...@@ -1863,11 +1856,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1863,11 +1856,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} }
public Map<String, Object> hlWindSpeeds(String gatewayId, String equipNum) { public Map<String, Object> hlWindSpeeds(String gatewayId, String equipNum) {
Date currentDayStartTime = DateUtils.getCurrentDayStartTime(new Date()); List<IndicatorData> originarPVs = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumberPv(equipNum, gatewayId);
Date currentDayEndTime = DateUtils.getCurrentDayEndTime(new Date());
String startTime = DateUtils.convertDateToString(currentDayStartTime, DateUtils.DATE_TIME_PATTERN);
String endTime = DateUtils.convertDateToString(currentDayEndTime, DateUtils.DATE_TIME_PATTERN);
List<IndicatorData> originarPVs = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeAndEquipmentNumberPv(equipNum, startTime, endTime, gatewayId);
originarPVs.size(); originarPVs.size();
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
Map<String, List<IndicatorData>> data = originarPVs.stream().collect(Collectors.groupingBy(IndicatorData::getEquipmentIndexName, TreeMap::new, Collectors.toList())); Map<String, List<IndicatorData>> data = originarPVs.stream().collect(Collectors.groupingBy(IndicatorData::getEquipmentIndexName, TreeMap::new, Collectors.toList()));
...@@ -1912,7 +1901,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1912,7 +1901,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} }
} }
List<Map<String, String>> maps = new ArrayList<>(); List<Map<String, String>> maps = new ArrayList<>();
List<String> nums = new ArrayList<>(); Set<String> nums = new HashSet<>();
//此处组装数据 每一个Map代表一个逆变器 //此处组装数据 每一个Map代表一个逆变器
for (ESEquipments esEquipments : listData1) { for (ESEquipments esEquipments : listData1) {
int num = Integer.parseInt(esEquipments.getEquipmentNumber().substring(0, 2)); int num = Integer.parseInt(esEquipments.getEquipmentNumber().substring(0, 2));
......
...@@ -706,7 +706,7 @@ public class MonitoringServiceImpl { ...@@ -706,7 +706,7 @@ public class MonitoringServiceImpl {
AtomicReference<Double> monthlyPower = new AtomicReference<>(0.0); AtomicReference<Double> monthlyPower = new AtomicReference<>(0.0);
//年发电量 //年发电量
AtomicReference<Double> annualPower = new AtomicReference<>(0.0); AtomicReference<Double> annualPower = new AtomicReference<>(0.0);
stationCacheInfoDtoList.forEach( stationCacheInfoDto->{ stationCacheInfoDtoList.forEach(stationCacheInfoDto -> {
if ("FDZ".equals(stationCacheInfoDto.getStationType())) { if ("FDZ".equals(stationCacheInfoDto.getStationType())) {
Map<String, List<String>> queryCondtion = new HashMap<>(); Map<String, List<String>> queryCondtion = new HashMap<>();
queryCondtion.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList("日发电量", "月发电量", "年发电量")); queryCondtion.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList("日发电量", "月发电量", "年发电量"));
...@@ -824,13 +824,13 @@ public class MonitoringServiceImpl { ...@@ -824,13 +824,13 @@ public class MonitoringServiceImpl {
List<ESEquipments> result = commonServiceImpl.getListDataByCondtions(queryCondtion, null, ESEquipments.class); List<ESEquipments> result = commonServiceImpl.getListDataByCondtions(queryCondtion, null, ESEquipments.class);
total.set(commonServiceImpl.getSumByEquipmentIndxName(result, finalIndicator)); total.set(commonServiceImpl.getSumByEquipmentIndxName(result, finalIndicator));
} }
stationCacheInfoDto.setAddress(String.format(CommonConstans.Twodecimalplaces, (total.get())*100/getPlanGenByStationIdAndMonth(stationCacheInfoDto.getStationId()))); stationCacheInfoDto.setAddress(String.format(CommonConstans.Twodecimalplaces, (total.get()) * 100 / getPlanGenByStationIdAndMonth(stationCacheInfoDto.getStationId())));
}); });
List<StationCacheInfoDto> sorted = stationCacheInfoDtoList.stream().sorted(Comparator.comparing(StationCacheInfoDto::getAddress, Comparator.comparingDouble(Double::parseDouble)).reversed()).collect(Collectors.toList()); List<StationCacheInfoDto> sorted = stationCacheInfoDtoList.stream().sorted(Comparator.comparing(StationCacheInfoDto::getAddress, Comparator.comparingDouble(Double::parseDouble)).reversed()).collect(Collectors.toList());
sorted.forEach(stationBasic -> { sorted.forEach(stationBasic -> {
HashMap<String, String> hashMap1 = new HashMap<>(); HashMap<String, String> hashMap1 = new HashMap<>();
hashMap1.put("stationName", stationBasic.getStationName()); hashMap1.put("stationName", stationBasic.getStationName());
hashMap1.put("value", stationBasic.getAddress()+"%"); hashMap1.put("value", stationBasic.getAddress() + "%");
hashMap1.put("value1", stationBasic.getAddress()); hashMap1.put("value1", stationBasic.getAddress());
mapList.add(hashMap1); mapList.add(hashMap1);
}); });
...@@ -1051,19 +1051,19 @@ public class MonitoringServiceImpl { ...@@ -1051,19 +1051,19 @@ public class MonitoringServiceImpl {
page2.setRecords(list2); page2.setRecords(list2);
Double totalAnnual = (powerOfAnnualFD + powerOfAnnualGF); Double totalAnnual = (powerOfAnnualFD + powerOfAnnualGF);
HashMap<String, String> stringHashMap13 = new HashMap<>(); HashMap<String, String> stringHashMap13 = new HashMap<>();
stringHashMap13.put("title1", String.format(CommonConstans.Twodecimalplaces, (totalAnnual * CommonConstans.carbonDioxide ))); stringHashMap13.put("title1", String.format(CommonConstans.Twodecimalplaces, (totalAnnual * CommonConstans.carbonDioxide)));
stringHashMap13.put("title2", "二氧化碳减排量(t)"); stringHashMap13.put("title2", "二氧化碳减排量(t)");
list3.add(stringHashMap13); list3.add(stringHashMap13);
HashMap<String, String> stringHashMap14 = new HashMap<>(); HashMap<String, String> stringHashMap14 = new HashMap<>();
stringHashMap14.put("title1", String.format(CommonConstans.Twodecimalplaces, (totalAnnual * CommonConstans.standardCoal ))); stringHashMap14.put("title1", String.format(CommonConstans.Twodecimalplaces, (totalAnnual * CommonConstans.standardCoal)));
stringHashMap14.put("title2", "节约标准煤(t)"); stringHashMap14.put("title2", "节约标准煤(t)");
list3.add(stringHashMap14); list3.add(stringHashMap14);
HashMap<String, String> stringHashMap15 = new HashMap<>(); HashMap<String, String> stringHashMap15 = new HashMap<>();
stringHashMap15.put("title1", String.format(CommonConstans.Twodecimalplaces, (totalAnnual * CommonConstans.toner ))); stringHashMap15.put("title1", String.format(CommonConstans.Twodecimalplaces, (totalAnnual * CommonConstans.toner)));
stringHashMap15.put("title2", "碳粉尘减排量(t)"); stringHashMap15.put("title2", "碳粉尘减排量(t)");
list3.add(stringHashMap15); list3.add(stringHashMap15);
HashMap<String, String> stringHashMap16 = new HashMap<>(); HashMap<String, String> stringHashMap16 = new HashMap<>();
stringHashMap16.put("title1", String.format(CommonConstans.Twodecimalplaces, (totalAnnual * CommonConstans.sulfurDioxide ))); stringHashMap16.put("title1", String.format(CommonConstans.Twodecimalplaces, (totalAnnual * CommonConstans.sulfurDioxide)));
stringHashMap16.put("title2", "二氧化硫减排量(t)"); stringHashMap16.put("title2", "二氧化硫减排量(t)");
list3.add(stringHashMap16); list3.add(stringHashMap16);
page3.setRecords(list3); page3.setRecords(list3);
...@@ -1162,10 +1162,11 @@ public class MonitoringServiceImpl { ...@@ -1162,10 +1162,11 @@ public class MonitoringServiceImpl {
HashMap<String, Object> result = new HashMap<>(); HashMap<String, Object> result = new HashMap<>();
List<HashMap<String, Object>> hashMapList = new ArrayList<>(); List<HashMap<String, Object>> hashMapList = new ArrayList<>();
List<IndicatorData> indicatorDataList = new ArrayList<>(); List<IndicatorData> indicatorDataList = new ArrayList<>();
Long day = DateUtil.between(DateUtil.parse(date), new Date(), DateUnit.DAY);
if (stationBasic.getStationType().equals("FDZ")) { if (stationBasic.getStationType().equals("FDZ")) {
indicatorDataList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime("220kV夏雩线212线路测控装置PCS-9705TA有功功率一次值", date + " 00:00:00", date + " 23:59:59", stationBasic.getBoosterGatewayId()); indicatorDataList = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeJp("220kV夏雩线212线路测控装置PCS-9705TA有功功率一次值", stationBasic.getBoosterGatewayId(), day);
} else { } else {
indicatorDataList = indicatorDataMapper.selectDataByequipmentIndexNameAndtime("南瑞光差保护_313P", date + " 00:00:00", date + " 23:59:59", stationBasic.getBoosterGatewayId()); indicatorDataList = indicatorDataMapper.selectDataByequipmentIndexNameAndtimeJp("南瑞光差保护_313P", stationBasic.getBoosterGatewayId(), day);
} }
//x轴数据 //x轴数据
List<String> xdata = new ArrayList<>(); List<String> xdata = new ArrayList<>();
...@@ -1314,7 +1315,7 @@ public class MonitoringServiceImpl { ...@@ -1314,7 +1315,7 @@ public class MonitoringServiceImpl {
queryCondtion1.put(CommonConstans.QueryStringGateWayId, Arrays.asList(stationBasic.getBoosterGatewayId())); queryCondtion1.put(CommonConstans.QueryStringGateWayId, Arrays.asList(stationBasic.getBoosterGatewayId()));
queryCondtion1.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList("南瑞光差保护_313P")); queryCondtion1.put(CommonConstans.QueryStringEquipmentIndexName, Arrays.asList("南瑞光差保护_313P"));
List<ESEquipments> esEquipmentsList = commonServiceImpl.getListDataByCondtions(queryCondtion1, null, ESEquipments.class); List<ESEquipments> esEquipmentsList = commonServiceImpl.getListDataByCondtions(queryCondtion1, null, ESEquipments.class);
total.updateAndGet(v -> v + commonServiceImpl.getSumByEquipmentIndxName(esEquipmentsList, "南瑞光差保护_313P")*CommonConstans.kwToMv); total.updateAndGet(v -> v + commonServiceImpl.getSumByEquipmentIndxName(esEquipmentsList, "南瑞光差保护_313P") * CommonConstans.kwToMv);
} }
}); });
//有功功率换算 //有功功率换算
...@@ -1325,8 +1326,9 @@ public class MonitoringServiceImpl { ...@@ -1325,8 +1326,9 @@ public class MonitoringServiceImpl {
public Double keepFourdecimalPlaces(Double param) { public Double keepFourdecimalPlaces(Double param) {
return Double.valueOf(String.format("%.4f", param)); return Double.valueOf(String.format("%.4f", param));
} }
public Double getPlanGenByStationIdAndMonth(String stationId){
String [] dates = DateUtil.today().split("-"); public Double getPlanGenByStationIdAndMonth(String stationId) {
return stationPlanMapper.getPlanGenByStationIdAndMonth(stationId,dates[0], String.valueOf(Integer.valueOf(dates[1]))); String[] dates = DateUtil.today().split("-");
return stationPlanMapper.getPlanGenByStationIdAndMonth(stationId, dates[0], String.valueOf(Integer.valueOf(dates[1])));
} }
} }
...@@ -11,17 +11,15 @@ import java.util.List; ...@@ -11,17 +11,15 @@ import java.util.List;
@Repository @Repository
public interface IndicatorDataMapper extends BaseMapper<IndicatorData> { public interface IndicatorDataMapper extends BaseMapper<IndicatorData> {
@Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and equipment_number = #{equipmentNumber} and created_time >= #{startTime} and created_time <= #{endTime} and gateway_id =#{gatewayId}") @Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and equipment_number = #{equipmentNumber} and ts >= TODAY()-8h and gateway_id =#{gatewayId}")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumber(@Param("equipmentIndexName") String equipmentIndexName, @Param("equipmentNumber") String equipmentNumber, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("gatewayId") String gatewayId); List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumber(@Param("equipmentIndexName") String equipmentIndexName, @Param("equipmentNumber") String equipmentNumber, @Param("gatewayId") String gatewayId);
@Select("select `value`, created_time, `value_f` as valueF, equipment_index_name from iot_data.indicator_data where equipment_index_name like '%路电流%' and equipment_number = #{equipmentNumber} and created_time >= #{startTime} and created_time <= #{endTime} and gateway_id =#{gatewayId}") @Select("select `value`, created_time, `value_f` as valueF, equipment_index_name from iot_data.indicator_data where equipment_index_name like '%路电流%' and equipment_number = #{equipmentNumber} and ts >= TODAY()-8h and gateway_id =#{gatewayId}")
List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumberPv(@Param("equipmentNumber") String equipmentNumber, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("gatewayId") String gatewayId); List<IndicatorData> selectDataByequipmentIndexNameAndtimeAndEquipmentNumberPv(@Param("equipmentNumber") String equipmentNumber, @Param("gatewayId") String gatewayId);
@Select("select last(`value_f`) as `value_f`,created_time from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and gateway_id=#{gatewayId} ") @Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and ts >=TODAY()-8h")
IndicatorData selectLastDataOfPower(@Param("equipmentIndexName") String equipmentIndexName, @Param("gatewayId") String gatewayId); List<IndicatorData> selectDataByequipmentIndexNameAndtime(@Param("equipmentIndexName") String equipmentIndexName, @Param("gatewayId") String gatewayId);
@Select("select last(`value_f`) as `value_f`,created_time from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and gateway_id=#{gatewayId} and created_time <= #{endTime} ") @Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and ts >=TODAY()-#{day}d-8h")
IndicatorData selectLastDataOfPower(@Param("equipmentIndexName") String equipmentIndexName, @Param("gatewayId") String gatewayId,@Param("endTime") String endTime); List<IndicatorData> selectDataByequipmentIndexNameAndtimeJp(@Param("equipmentIndexName") String equipmentIndexName, @Param("gatewayId") String gatewayId,@Param("day") Long day);
@Select("select `value`, created_time, `value_f` as valueF from iot_data.indicator_data where equipment_index_name =#{equipmentIndexName} and created_time >= #{startTime} and created_time <= #{endTime} and gateway_id =#{gatewayId}")
List<IndicatorData> selectDataByequipmentIndexNameAndtime(@Param("equipmentIndexName") String equipmentIndexName, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("gatewayId") String gatewayId);
} }
...@@ -23,7 +23,7 @@ public class AlarmKafkaConsumer { ...@@ -23,7 +23,7 @@ public class AlarmKafkaConsumer {
AlarmEventServiceImpl alarmEventServiceImpl; AlarmEventServiceImpl alarmEventServiceImpl;
// 消费者来处理消息 // 消费者来处理消息
@KafkaListener(id="user1" , topics ={"${kafka.alarm.topic}"},groupId = "messageConsumerGroup") @KafkaListener(id="user1" , topics ={"${kafka.alarm.topic}"},groupId = "messageConsumerGroupWarn")
public void message1(List<ConsumerRecord<String, String>> consumerRecords, Acknowledgment ack){ public void message1(List<ConsumerRecord<String, String>> consumerRecords, Acknowledgment ack){
// 异步触发预警 // 异步触发预警
alarmEventServiceImpl.handleMessage(consumerRecords); alarmEventServiceImpl.handleMessage(consumerRecords);
......
...@@ -6,6 +6,7 @@ import java.util.Arrays; ...@@ -6,6 +6,7 @@ import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -69,8 +70,8 @@ public class AlarmEventServiceImpl extends BaseService<AlarmEventDto, AlarmEvent ...@@ -69,8 +70,8 @@ public class AlarmEventServiceImpl extends BaseService<AlarmEventDto, AlarmEvent
for(Object o:arr) for(Object o:arr)
{ {
JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(o)); JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(o));
if (json.containsKey(value)) { if (json.containsKey("key")&&value.equals(json.get("key"))) {
String warn = json.getString(value); String warn = json.getString("label");
if (warn.indexOf("备留") == -1) { if (warn.indexOf("备留") == -1) {
equipAlarmEvent.setEquipName(objName); equipAlarmEvent.setEquipName(objName);
equipAlarmEvent.setEventDesc(indexName); equipAlarmEvent.setEventDesc(indexName);
...@@ -80,7 +81,6 @@ public class AlarmEventServiceImpl extends BaseService<AlarmEventDto, AlarmEvent ...@@ -80,7 +81,6 @@ public class AlarmEventServiceImpl extends BaseService<AlarmEventDto, AlarmEvent
} }
} }
} }
} else { } else {
// equipAlarmEvent.setEquipIndex(value); // equipAlarmEvent.setEquipIndex(value);
equipAlarmEvent.setEquipName(objName); equipAlarmEvent.setEquipName(objName);
...@@ -109,7 +109,8 @@ public class AlarmEventServiceImpl extends BaseService<AlarmEventDto, AlarmEvent ...@@ -109,7 +109,8 @@ public class AlarmEventServiceImpl extends BaseService<AlarmEventDto, AlarmEvent
calendar.add(Calendar.DAY_OF_MONTH, -2); calendar.add(Calendar.DAY_OF_MONTH, -2);
List<AlarmEvent> alarmEventList = this.baseMapper.getEventList(gatewayId, calendar.getTime()); List<AlarmEvent> alarmEventList = this.baseMapper.getEventList(gatewayId, calendar.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar car = Calendar.getInstance();
alarmEventList.forEach(i -> { alarmEventList.forEach(i -> {
if ("true".equals(i.getValue())) { if ("true".equals(i.getValue())) {
i.setValue("合"); i.setValue("合");
...@@ -117,7 +118,10 @@ public class AlarmEventServiceImpl extends BaseService<AlarmEventDto, AlarmEvent ...@@ -117,7 +118,10 @@ public class AlarmEventServiceImpl extends BaseService<AlarmEventDto, AlarmEvent
i.setValue("分"); i.setValue("分");
} }
i.setStationName("升压站"); i.setStationName("升压站");
i.setTime(sdf.format(new Date(i.getCreatedTime()))); long mills = i.getCreatedTime()/1000000;
car.setTimeInMillis(mills);
//System.out.println(sdf.format(car.getTime()));
i.setTime(sdf.format(car.getTime()));
}); });
PageInfo<EquipAlarmEvent> page = new PageInfo(alarmEventList); PageInfo<EquipAlarmEvent> page = new PageInfo(alarmEventList);
// 构建平台数据 // 构建平台数据
......
...@@ -5,6 +5,7 @@ import java.util.Arrays; ...@@ -5,6 +5,7 @@ import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -42,7 +43,7 @@ public class EquipAlarmEventServiceImpl ...@@ -42,7 +43,7 @@ public class EquipAlarmEventServiceImpl
equipName = s[0] + "子阵/逆变器" + s[1]; equipName = s[0] + "子阵/逆变器" + s[1];
} else if ("汇流箱".equals(frontModule)) { } else if ("汇流箱".equals(frontModule)) {
String[] s = equipIndex.split("-"); String[] s = equipIndex.split("-");
if ("0".equals(s[2].indexOf(0))) { if (s[2].indexOf("0")==0) {
s[2] = s[2].substring(1); s[2] = s[2].substring(1);
} }
equipName = s[0] + "子阵/逆变器" + s[1] + "/#" + s[2] + "汇流箱"; equipName = s[0] + "子阵/逆变器" + s[1] + "/#" + s[2] + "汇流箱";
...@@ -55,14 +56,20 @@ public class EquipAlarmEventServiceImpl ...@@ -55,14 +56,20 @@ public class EquipAlarmEventServiceImpl
List<EquipAlarmEvent> alarmEventList = this.baseMapper.getEventList(gatewayId, equipName, null, List<EquipAlarmEvent> alarmEventList = this.baseMapper.getEventList(gatewayId, equipName, null,
calendar.getTime()); calendar.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar car = Calendar.getInstance();
alarmEventList.forEach(i -> { alarmEventList.forEach(i -> {
if ("true".equals(i.getValue())) { if ("true".equals(i.getValue())) {
i.setValue("合"); i.setValue("合");
} else if ("false".equals(i.getValue())) { } else if ("false".equals(i.getValue())) {
i.setValue("分"); i.setValue("分");
} }
i.setTime(sdf.format(new Date(i.getCreatedTime()))); long mills = i.getCreatedTime()/1000000;
car.setTimeInMillis(mills);
//System.out.println(sdf.format(car.getTime()));
i.setTime(sdf.format(car.getTime()));
//car.add(Calendar.HOUR, 12);
//System.out.println(sdf.format(car.getTime()));
}); });
PageInfo<EquipAlarmEvent> page = new PageInfo(alarmEventList); PageInfo<EquipAlarmEvent> page = new PageInfo(alarmEventList);
......
...@@ -93,7 +93,7 @@ spring.elasticsearch.rest.read-timeout=30000 ...@@ -93,7 +93,7 @@ spring.elasticsearch.rest.read-timeout=30000
#消费者所在组的名称 #消费者所在组的名称
#消费者 的broker地址 #消费者 的broker地址
spring.kafka.consumer.group-id=messageConsumerGroup spring.kafka.consumer.group-id=messageConsumerGroupWarn
spring.kafka.consumer.bootstrap-servers=139.9.173.44:9092 spring.kafka.consumer.bootstrap-servers=139.9.173.44:9092
spring.kafka.consumer.enable-auto-commit=false spring.kafka.consumer.enable-auto-commit=false
spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.consumer.auto-offset-reset=earliest
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
equip_alarm_event(created_time,staion_name,staion_id,gateway_id,equip_index,event_desc,equip_name,front_module,value) equip_alarm_event(created_time,staion_name,staion_id,gateway_id,equip_index,event_desc,equip_name,front_module,value)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
(NOW(),#{item.stationName},#{item.stationId},#{item.gatewayId},#{item.equipIndex},'#{item.eventDesc}','#{item.equipName}',#{item.frontModule},#{item.value}) (NOW(),#{item.stationName},#{item.stationId},#{item.gatewayId},#{item.equipIndex},'#{item.eventDesc}','#{item.equipName}',#{item.frontModule},'#{item.value}')
</foreach> </foreach>
</insert> </insert>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="log" />
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/jpush.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<!--日志文件大小-->
<MaxFileSize>30mb</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-->
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="DEBUG"/>
<logger name="org.mybatis" level="DEBUG" />
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="org.springframework" level="DEBUG"/>
<!-- 日志输出级别 -->
<root level="ERROR">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
\ No newline at end of file
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