1.pqs9000-》区域-》终端状态统计,添加监测性质条件(电网侧||非电网侧)

2.pqs9000-》区域-》数据完整性统计,添加监测性质条件(电网侧||非电网侧)
3.pqs9000-》详细分析-》区域稳态超标分类,添加监测性质条件(电网侧||非电网侧)
4.电压偏差限制判断
This commit is contained in:
xy
2024-07-22 18:46:21 +08:00
parent 41fec04cb7
commit 500b6c66bb
24 changed files with 262 additions and 109 deletions

View File

@@ -103,11 +103,11 @@ public interface LineMapper extends Mapper<Line> {
List<Legder.Data> getMonitorData(@Param("list") List<Integer> list, @Param("appear") String appear, @Param("nature") Integer nature);
List<Integer> siftLineIndexs(@Param("list") List<Integer> list, @Param("scale") String scale, @Param("manc") String manc, @Param("loadtype") String loadtype);
List<Integer> siftLineIndexs(@Param("list") List<Integer> list, @Param("scale") String scale, @Param("manc") String manc, @Param("loadtype") String loadtype, @Param("monitorNature") Integer monitorNature);
List<Integer> siftLineIndexsByLineGrade(@Param("list") List<Integer> list, @Param("scale") String scale, @Param("manc") String manc, @Param("loadtype") String loadtype,@Param("lineGrade") Integer lineGrade);
List<IndexsCount> siftAllIndexs(@Param("list") List<Integer> list, @Param("scale") String scale, @Param("manc") String manc, @Param("loadtype") String loadtype);
List<IndexsCount> siftAllIndexs(@Param("list") List<Integer> list, @Param("scale") String scale, @Param("manc") String manc, @Param("loadtype") String loadtype, @Param("devLocation") String devLocation);
List<IndexsCount> siftAllIndexsByLineGrade(@Param("list") List<Integer> list, @Param("scale") String scale, @Param("manc") String manc, @Param("loadtype") String loadtype,@Param("lineGrade") Integer lineGrade);

View File

@@ -69,14 +69,14 @@ public interface DeviceService {
DeviceGeneral getDeviceData(String overview, String area, Date startTime, Date endTime);
//区域统计---》终端状态(筛)
DeviceGeneral getDeviceSiftData(String overview, String area, String scale, String manc, String loadtype, Date startTime, Date endTime);
DeviceGeneral getDeviceSiftData(String overview, String area, String scale, String manc, String loadtype, Integer monitorNature, Date startTime, Date endTime);
//区域统计---》在线率
DeviceGeneral getDeviceOnlineRate(Date startTime, Date endTime, String overview, String area);
//区域统计---》数据完整性
DeviceGeneral getDataIntegrality(Date startTime, Date endTime, String overview, String area,
String scale, String manc, String loadtype);
String scale, String manc, String loadtype, Integer monitorNature);
//运行管理---》终端在线率数据查询展示
List<OnlineRateData> getOnlineRate(Date startTime, Date endTime, String area);

View File

@@ -28,6 +28,7 @@ import com.njcn.utils.*;
import com.njcn.utils.redis.JedisManager;
import com.njcn.utils.redis.RedisCacheUtil;
import net.sf.json.JSONArray;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -201,8 +202,9 @@ public class DeviceServiceImpl implements DeviceService {
* @param area 区域
*/
@Override
public DeviceGeneral getDeviceSiftData(String overview, String area, String scale, String manc, String loadtype,
public DeviceGeneral getDeviceSiftData(String overview, String area, String scale, String manc, String loadtype, Integer monitorNature,
Date startTime, Date endTime) {
String devLocation = null;
DeviceGeneral deviceGeneral;
List<AreaGeneralData> areaGeneralDatasTemp;
if ("overview".equalsIgnoreCase(area)) {
@@ -210,7 +212,12 @@ public class DeviceServiceImpl implements DeviceService {
} else {
areaGeneralDatasTemp = userUtil.getAreaDataByInfo(area);
}
areaGeneralDatasTemp = userUtil.siftAreaGeneralData(areaGeneralDatasTemp, scale, manc, loadtype);
if (!Objects.isNull(monitorNature) && monitorNature == 0) {
devLocation = "电网侧";
} else if (!Objects.isNull(monitorNature) && monitorNature == 1) {
devLocation = "用户侧";
}
areaGeneralDatasTemp = userUtil.siftAreaGeneralData(areaGeneralDatasTemp, scale, manc, loadtype, devLocation);
if (CollectionUtils.isEmpty(areaGeneralDatasTemp)) {
return null;
}
@@ -611,41 +618,44 @@ public class DeviceServiceImpl implements DeviceService {
*/
@Override
public DeviceGeneral getDataIntegrality(Date startTime, Date endTime, String overview, String area,
String scale, String manc, String loadtype) {
String scale, String manc, String loadtype, Integer monitorNature) {
DeviceGeneral deviceGeneral;
List<AreaGeneralData> areaGeneralDatasTemp = userUtil.getAreaDataByInfoRun(area);
if (CollectionUtils.isEmpty(areaGeneralDatasTemp)) {
return null;
}
deviceGeneral = getDataIntegrality(startTime, endTime, overview, areaGeneralDatasTemp, scale, manc, loadtype);
deviceGeneral = getDataIntegrality(startTime, endTime, overview, areaGeneralDatasTemp, scale, manc, loadtype, monitorNature);
return deviceGeneral;
}
private DeviceGeneral getDataIntegrality(Date startTime, Date endTime, String overview, List<AreaGeneralData> areaGeneralDatas,
String scale, String manc, String loadtype) {
String scale, String manc, String loadtype, Integer monitorNature) {
DeviceGeneral deviceGeneral = new DeviceGeneral();
List<DeviceValue> area = new ArrayList<>();
List<Integer> deviceLindexs = new ArrayList<>();
if (CollectionUtils.isEmpty(areaGeneralDatas)) {
return null;
}
if (!Objects.isNull(monitorNature) && monitorNature == -1) {
monitorNature = null;
}
//区域
for (AreaGeneralData areaGeneralData : areaGeneralDatas) {
if (CollectionUtils.isEmpty(areaGeneralData.getLineIndexs())) {
continue;
}
area.add(getDataIntegralityArea(areaGeneralData, startTime, endTime, scale, manc, loadtype));
area.add(getDataIntegralityArea(areaGeneralData, startTime, endTime, scale, manc, loadtype, monitorNature));
deviceLindexs.addAll(areaGeneralData.getDeviceIndexs());
}
deviceGeneral.setArea(area);
if (StringUtils.isEmpty(overview)) {
//电压等级
deviceGeneral.setVol(getDataIntegralityVol(deviceLindexs, startTime, endTime, scale, manc, loadtype));
deviceGeneral.setVol(getDataIntegralityVol(deviceLindexs, startTime, endTime, scale, manc, loadtype, monitorNature));
//终端厂家
deviceGeneral.setInterval(getDataIntegralityCompany(deviceLindexs, startTime, endTime, scale, manc, loadtype));
deviceGeneral.setInterval(getDataIntegralityCompany(deviceLindexs, startTime, endTime, scale, manc, loadtype, monitorNature));
//干扰源类型终
deviceGeneral.setLoadtype(getDataIntegralityLoadType(deviceLindexs, startTime, endTime, scale, manc, loadtype));
deviceGeneral.setLoadtype(getDataIntegralityLoadType(deviceLindexs, startTime, endTime, scale, manc, loadtype, monitorNature));
}
return deviceGeneral;
}
@@ -848,7 +858,7 @@ public class DeviceServiceImpl implements DeviceService {
}
private List<DeviceValue> getDataIntegralityCompany(List<Integer> deviceLindexs, Date startTime, Date endTime,
String scale, String manc, String loadtype) {
String scale, String manc, String loadtype, Integer monitorNature) {
List<DeviceValue> deviceValues = new ArrayList<>();
List<CompanyValue> companyValues = userUtil.getCompanyData(deviceLindexs);
if (CollectionUtils.isEmpty(companyValues)) {
@@ -861,7 +871,7 @@ public class DeviceServiceImpl implements DeviceService {
if (CollectionUtils.isEmpty(lineIndexs)) {
continue;
}
lineIndexs = lineMapper.siftLineIndexs(lineIndexs, scale, manc, loadtype);
lineIndexs = lineMapper.siftLineIndexs(lineIndexs, scale, manc, loadtype, monitorNature);
if (CollectionUtils.isEmpty(lineIndexs)) {
deviceValue.setAmounts("0");
deviceValue.setDataIntegrity("3.1415");
@@ -917,7 +927,7 @@ public class DeviceServiceImpl implements DeviceService {
}
private List<DeviceValue> getDataIntegralityVol(List<Integer> deviceLindexs, Date startTime, Date endTime,
String scale, String manc, String loadtype) {
String scale, String manc, String loadtype, Integer monitorNature) {
List<DeviceValue> deviceValues = new ArrayList<>();
List<VoltageData> voltageDatas = userUtil.getVoltageData(deviceLindexs);
if (CollectionUtils.isEmpty(voltageDatas)) {
@@ -926,7 +936,7 @@ public class DeviceServiceImpl implements DeviceService {
for (VoltageData voltageData : voltageDatas) {
List<Integer> lines = voltageData.getLineIndexs();
if (!CollectionUtils.isEmpty(lines)) {
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype);
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype, monitorNature);
DeviceValue deviceValue = new DeviceValue();
deviceValue.setName(voltageData.getVol());
deviceValue.setAmounts(String.valueOf(lines.size()));
@@ -952,7 +962,7 @@ public class DeviceServiceImpl implements DeviceService {
* 根据用户当前的身份,获取按电压等级的数据完整性
*/
private List<DeviceValue> getDataIntegralityLoadType(List<Integer> deviceLindexs, Date startTime, Date endTime,
String scale, String manc, String loadtype) {
String scale, String manc, String loadtype, Integer monitorNature) {
List<DeviceValue> deviceValues = new ArrayList<>();
List<LoadTypeValue> loadtypes = userUtil.getLoadTypeValue(deviceLindexs);
if (CollectionUtils.isEmpty(loadtypes)) {
@@ -961,7 +971,7 @@ public class DeviceServiceImpl implements DeviceService {
for (LoadTypeValue type : loadtypes) {
List<Integer> lines = type.getLineIndexs();
if (!CollectionUtils.isEmpty(lines)) {
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype);
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype, monitorNature);
DeviceValue deviceValue = new DeviceValue();
deviceValue.setName(type.getType());
deviceValue.setAmounts(String.valueOf(lines.size()));
@@ -1008,10 +1018,10 @@ public class DeviceServiceImpl implements DeviceService {
}
private DeviceValue getDataIntegralityArea(AreaGeneralData areaGeneralData, Date startTime, Date endTime,
String scale, String manc, String loadtype) {
String scale, String manc, String loadtype, Integer monitorNature) {
DeviceValue deviceValue = new DeviceValue();
List<Integer> lines = areaGeneralData.getLineIndexs();
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype);
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype, monitorNature);
String name = areaGeneralData.getName();
deviceValue.setName(name);
deviceValue.setAmounts(lines.size() + "");

View File

@@ -50,36 +50,57 @@ public class COverlimitUtil {
return overlimit;
}
/**
* 电压偏差限值
*
* 电压偏差限值-冀北现场
* 220V 上偏差 +7% 下偏差 -10%
* 220V以上35kV以下 上偏差 +7% 下偏差 -7%
* 35kV及以上 上偏差 +7% 下偏差 -3%
*/
public static void voltageDeviation(OverLimit overlimit,Float voltageLevel) {
float voltageDev = 3.14159f,uvoltageDev = 3.14159f;
if(voltageLevel <= Float.parseFloat(DicDataEnum.V220.getCode())){
voltageDev = 7.0f;
uvoltageDev=-10.0f;
}else if(voltageLevel>Float.parseFloat(DicDataEnum.V220.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV20.getCode())){
}else if(voltageLevel>Float.parseFloat(DicDataEnum.V220.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV35.getCode())){
voltageDev = 7.0f;
uvoltageDev=-7.0f;
}else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV20.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV35.getCode())){
voltageDev = 7.0f;
uvoltageDev=-7.0f;
}else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV35.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV66.getCode())){
voltageDev = 10.0f;
uvoltageDev=-10.0f;
}else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV66.getCode())&&voltageLevel<=Float.parseFloat(DicDataEnum.KV110.getCode())){
}else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV35.getCode())){
voltageDev = 7.0f;
uvoltageDev=-3.0f;
}else if(voltageLevel>Float.parseFloat(DicDataEnum.KV110.getCode())){
voltageDev = 10.0f;
uvoltageDev=-10.0f;
}
overlimit.setVoltageDev(voltageDev);
overlimit.setUvoltageDev(uvoltageDev);
}
// /**
// * 电压偏差限值
// *
// */
// public static void voltageDeviation(OverLimit overlimit,Float voltageLevel) {
// float voltageDev = 3.14159f,uvoltageDev = 3.14159f;
// if(voltageLevel <= Float.parseFloat(DicDataEnum.V220.getCode())){
// voltageDev = 7.0f;
// uvoltageDev=-10.0f;
// }else if(voltageLevel>Float.parseFloat(DicDataEnum.V220.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV20.getCode())){
// voltageDev = 7.0f;
// uvoltageDev=-7.0f;
// }else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV20.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV35.getCode())){
// voltageDev = 7.0f;
// uvoltageDev=-7.0f;
// }else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV35.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV66.getCode())){
// voltageDev = 10.0f;
// uvoltageDev=-10.0f;
// }else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV66.getCode())&&voltageLevel<=Float.parseFloat(DicDataEnum.KV110.getCode())){
// voltageDev = 7.0f;
// uvoltageDev=-3.0f;
// }else if(voltageLevel>Float.parseFloat(DicDataEnum.KV110.getCode())){
// voltageDev = 10.0f;
// uvoltageDev=-10.0f;
// }
// overlimit.setVoltageDev(voltageDev);
// overlimit.setUvoltageDev(uvoltageDev);
// }
/**
* 频率偏差

View File

@@ -1961,7 +1961,7 @@ public class UserUtil {
/**
* 根据电压等级、干扰源类型、终端厂家筛选
*/
public List<AreaGeneralData> siftAreaGeneralData(List<AreaGeneralData> areaGeneralDatas, String scale, String manc, String loadType) {
public List<AreaGeneralData> siftAreaGeneralData(List<AreaGeneralData> areaGeneralDatas, String scale, String manc, String loadType, String devLocation) {
List<AreaGeneralData> result = new ArrayList<>();
for (AreaGeneralData areaGeneralData : areaGeneralDatas) {
@@ -1970,7 +1970,7 @@ public class UserUtil {
if (CollectionUtils.isEmpty(lineIndexs)) {
continue;
}
List<IndexsCount> indexs = lineMapper.siftAllIndexs(lineIndexs, scale, manc, loadType);
List<IndexsCount> indexs = lineMapper.siftAllIndexs(lineIndexs, scale, manc, loadType, devLocation);
if (CollectionUtils.isEmpty(indexs)) {
areaGeneralDataTmp.setMonitors(0);
} else {

View File

@@ -53,7 +53,7 @@ public class DeviceStatusController {
*/
@PostMapping("deviceStatus")
@ResponseBody
public HttpResult getDeviceStatus(String overview, String area,String scale,String manc,String loadtype,
public HttpResult getDeviceStatus(String overview, String area,String scale,String manc,String loadtype,Integer monitorNature,
HttpServletRequest request,String startTime,String endTime) {
HttpResult result=PubUtils.initResult(TokenManager.getToken().getLoginName(),request,LogTypeEnum.BUSSINESS.toString(),0);
DeviceGeneral data ;
@@ -64,7 +64,7 @@ public class DeviceStatusController {
return result;
}
try {
data=deviceService.getDeviceSiftData(overview,area,scale,manc,loadtype,datePojo.getStartTime(),datePojo.getEndTime());
data=deviceService.getDeviceSiftData(overview,area,scale,manc,loadtype,monitorNature,datePojo.getStartTime(),datePojo.getEndTime());
if(null==data){
result = PubUtils.assignmentResultLog(null, 500, "获取终端运行数据为空","查询稳态终端状态","成功",result);
}else{

View File

@@ -150,7 +150,7 @@ public class IntegralityController {
@PostMapping("dataIntegrality")
@ResponseBody
public HttpResult dataIntegrality(String startTime, String endTime, String overview, String area,
String scale, String manc, String loadtype, HttpServletRequest request) {
String scale, String manc, String loadtype, Integer monitorNature, HttpServletRequest request) {
HttpResult result = PubUtils.initResult(TokenManager.getToken().getLoginName(), request, LogTypeEnum.BUSSINESS.toString(), 0);
DatePojo datePojo;
datePojo = PubUtils.validateDate(startTime, endTime, "dataIntegrality");
@@ -160,7 +160,7 @@ public class IntegralityController {
}
DeviceGeneral data;
try {
data = deviceService.getDataIntegrality(datePojo.getStartTime(), datePojo.getEndTime(), overview, area, scale, manc, loadtype);
data = deviceService.getDataIntegrality(datePojo.getStartTime(), datePojo.getEndTime(), overview, area, scale, manc, loadtype, monitorNature);
if (null == data) {
result = PubUtils.assignmentResultLog(null, 500, "获取数据完整性数据为空", "查询数据完整性", "成功", result);
} else {

View File

@@ -1171,29 +1171,6 @@ public class DeviceController {
}
}
/**
* 根据监测点的电压等级获取电压偏差的下限因为目前oracle库中只有上限的值
*/
public Float getDevLowLimit(Integer line,Float upLimit) {
float low = 0.0f;
MachineAccount machineAccount = lineService.getLineName(line);
if (!Objects.isNull(machineAccount.getScale()) || !"".equals(machineAccount.getScale())) {
float nScale = Float.parseFloat(machineAccount.getScale().substring(0, machineAccount.getScale().length() - 2));
if (Objects.equals(nScale,220.0f) || nScale <= 20.0f) {
low = 0.0f;
} else if (nScale >= 66.0f && nScale <= 110.0f) {
low = -3.0f;
} else if (Objects.equals(nScale,35.0f)) {
if (upLimit >= 0.0f) {
low = -(10.0f - upLimit);
} else {
low = 10.0f - Math.abs(upLimit);
}
}
}
return low;
}
@PostMapping("getHistoryTableData")
@ResponseBody
public HttpResult getHistoryTableData(String startTime, String endTime, String lineId, String type, String index, String harmonicInHarms) {
@@ -1292,7 +1269,8 @@ public class DeviceController {
tempCondition.setPltCount(overLimitInfo.getPltCount());
tempCondition.setPstCount(overLimitInfo.getPstCount());
saveConditionData(tempCondition, key);
Float low = getDevLowLimit(lineIds[j],new Pass(overLimitInfo.getOverLimitRate().get(0).getVoltageDev(), EnumPass.MAX_AND_MIN.getCode()).getOverLimit());
//电压下偏差
Float low = overLimitInfo.getOverLimitRate().get(0).getUvoltageDev();
for (int i = 0; i < types.length; i++) {
HistoryTableData.data data;
List<ReportTarget> list1;

View File

@@ -54,7 +54,7 @@ public class ResponsibilityAreaOverNormalController {
@PostMapping("/overLimitData")
@ResponseBody
public HttpResult overLimit(String startTime, String endTime, String type, int statistic, boolean statFlag){
public HttpResult overLimit(String startTime, String endTime, String type, int statistic, boolean statFlag, Integer monitorNature){
HttpResult result;
DatePojo datePojo;
datePojo = PubUtils.validateDate(startTime, endTime, "overLimitData");
@@ -64,7 +64,7 @@ public class ResponsibilityAreaOverNormalController {
}
List<AreaOverNoraml> list;
try {
list = areaOverNoramlService.getOverLimitData(startTime,endTime,type,statistic,statFlag);
list = areaOverNoramlService.getOverLimitData(startTime,endTime,type,statistic,statFlag,monitorNature);
result = PubUtils.assignmentResult(list, 200, "获取区域稳态指标超标成功");
} catch (Exception e) {
result = PubUtils.assignmentResult(null, 500, "获取区域稳态指标超标异常");

View File

@@ -57,5 +57,5 @@ public interface AreaOverNormalMapper {
*/
AreaOverNoraml getAvg(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime);
List<Integer> getMonitorNature(@Param("list") List<Integer> list,@Param("powerId") Integer powerId);
}

View File

@@ -16,7 +16,12 @@ public interface OverLimitMonitorMapper {
List<String> getLineList(@Param("startTime") String startTime, @Param("endTime") String endTime);
/**
* 电压偏差、电压总谐波畸变率、三相电压不平衡度、频率偏差 幅值&&限值&&差值
* 电压偏差 幅值&&限值&&差值
*/
List<TargetDetailDto> getData0(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("list") List<String> lineList);
/**
* 电压总谐波畸变率、三相电压不平衡度、频率偏差 幅值&&限值&&差值
*/
List<TargetDetailDto> getData1(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("list") List<String> lineList);
@@ -26,7 +31,7 @@ public interface OverLimitMonitorMapper {
List<TargetDetailDto> getData2(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("list") List<String> lineList);
/**
* 负序电流 幅值&&限值&&差值
* 长时闪变 幅值&&限值&&差值
*/
List<TargetDetailDto> getData3(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("list") List<String> lineList);

View File

@@ -15,8 +15,14 @@ public class TargetDetailDto {
//电压偏差最大幅值
private Double maxVoltageDeviationData;
//电压偏差
private Double limitVoltageDeviationData;
//电压偏差最小幅
private Double minVoltageDeviationData;
//电压上偏差限值
private Double limitUpVoltageDeviationData;
//电压下偏差限值
private Double limitLowVoltageDeviationData;
//电压偏差差值
private Double diffVoltageDeviationData;
@@ -115,12 +121,28 @@ public class TargetDetailDto {
this.maxVoltageDeviationData = maxVoltageDeviationData;
}
public Double getLimitVoltageDeviationData() {
return limitVoltageDeviationData;
public Double getMinVoltageDeviationData() {
return minVoltageDeviationData;
}
public void setLimitVoltageDeviationData(Double limitVoltageDeviationData) {
this.limitVoltageDeviationData = limitVoltageDeviationData;
public void setMinVoltageDeviationData(Double minVoltageDeviationData) {
this.minVoltageDeviationData = minVoltageDeviationData;
}
public Double getLimitUpVoltageDeviationData() {
return limitUpVoltageDeviationData;
}
public void setLimitUpVoltageDeviationData(Double limitUpVoltageDeviationData) {
this.limitUpVoltageDeviationData = limitUpVoltageDeviationData;
}
public Double getLimitLowVoltageDeviationData() {
return limitLowVoltageDeviationData;
}
public void setLimitLowVoltageDeviationData(Double limitLowVoltageDeviationData) {
this.limitLowVoltageDeviationData = limitLowVoltageDeviationData;
}
public Double getDiffVoltageDeviationData() {
@@ -472,7 +494,9 @@ public class TargetDetailDto {
return "TargetDetailDto{" +
"monitorId=" + monitorId +
", maxVoltageDeviationData=" + maxVoltageDeviationData +
", limitVoltageDeviationData=" + limitVoltageDeviationData +
", minVoltageDeviationData=" + minVoltageDeviationData +
", limitUpVoltageDeviationData=" + limitUpVoltageDeviationData +
", limitLowVoltageDeviationData=" + limitLowVoltageDeviationData +
", diffVoltageDeviationData=" + diffVoltageDeviationData +
", maxVoltageDistortionData=" + maxVoltageDistortionData +
", limitVoltageDistortionData=" + limitVoltageDistortionData +

View File

@@ -8,5 +8,5 @@ import java.util.List;
public interface AreaOverNoramlService {
//获取区域稳态指标超标分类数据
List<AreaOverNoraml> getOverLimitData(String startTime, String endTime,String type,int statistic,boolean statFlag);
List<AreaOverNoraml> getOverLimitData(String startTime, String endTime,String type,int statistic,boolean statFlag, Integer monitorNature);
}

View File

@@ -14,6 +14,7 @@ import com.pqs9000.pojo.responsibility.OverLimitByDays;
import com.pqs9000.service.responsibility.AreaOverNoramlService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.awt.geom.Arc2D;
import java.math.BigDecimal;
@@ -45,7 +46,7 @@ public class AreaOverNormalServiceImpl implements AreaOverNoramlService {
@Override
public List<AreaOverNoraml> getOverLimitData(String startTime, String endTime,String type,int statistic,boolean statFlag) {
public List<AreaOverNoraml> getOverLimitData(String startTime, String endTime,String type,int statistic,boolean statFlag, Integer monitorNature) {
List<Integer> allMonitors = new ArrayList<>();
List<Integer> normalMonitors = new ArrayList<>();
List<Integer> monitor = new ArrayList<>();
@@ -64,6 +65,19 @@ public class AreaOverNormalServiceImpl implements AreaOverNoramlService {
//排除不需要计算的监测点
ag =userUtil.getAreaDataByStatFlagAll(deptsIndex);
}
//新增电网侧\用户侧判断
if (!Objects.isNull(monitorNature) && monitorNature != -1) {
ag.forEach(item->{
List<Integer> line = areaOverNormalMapper.getMonitorNature(item.getLineIndexs(),monitorNature);
if (CollectionUtils.isEmpty(line)) {
item.setMonitors(0);
item.setLineIndexs(line);
} else {
item.setMonitors(line.size());
item.setLineIndexs(line);
}
});
}
String typename ="";
Theme theme = new Theme();
theme.setState(1);

View File

@@ -147,6 +147,10 @@ public class OverLimitMonitorServiceImpl implements OverLimitMonitorService {
public void addHarmonicDetail(String startTime, String endTime, List<String> lineList) throws Exception {
List<DataHarmonicDetail> result = new ArrayList<>();
/**
* 获取电压偏差的最大幅值绝对值、限值、差值
*/
List<TargetDetailDto> list0 = overLimitMonitorMapper.getData0(startTime,endTime,lineList);
/**
* 获取电压偏差、电压总谐波畸变率、三相电压不平衡度、频率偏差 的 最大幅值、限值、差值
*/
@@ -257,17 +261,26 @@ public class OverLimitMonitorServiceImpl implements OverLimitMonitorService {
//组装数据
//type数据类型
//0:电压偏差 1:谐波电流 2:谐波电压 3:电压总谐波畸变率 4:谐波电压含有率 5:频率偏差 6:间谐波电压含有率 7:三相电压不平衡度 8:负序电流 9:闪变
if (CollUtil.isNotEmpty(list1)){
list1.forEach(item->{
if (CollUtil.isNotEmpty(list0)){
list0.forEach(item->{
DataHarmonicDetail pojo = new DataHarmonicDetail();
pojo.setTimeId(date);
pojo.setLineId(item.getMonitorId());
pojo.setTargetType(0);
pojo.setMaxData(item.getMaxVoltageDeviationData());
pojo.setLimitData(item.getLimitVoltageDeviationData());
pojo.setDiffData(item.getDiffVoltageDeviationData());
if (Math.abs(item.getMaxVoltageDeviationData()) >= Math.abs(item.getMinVoltageDeviationData())) {
pojo.setMaxData(item.getMaxVoltageDeviationData());
pojo.setLimitData(item.getLimitUpVoltageDeviationData());
pojo.setDiffData(item.getMaxVoltageDeviationData()-item.getLimitUpVoltageDeviationData());
} else {
pojo.setMaxData(item.getMinVoltageDeviationData());
pojo.setLimitData(item.getLimitLowVoltageDeviationData());
pojo.setDiffData(item.getMinVoltageDeviationData()-item.getLimitLowVoltageDeviationData());
}
result.add(pojo);
});
}
if (CollUtil.isNotEmpty(list1)){
list1.forEach(item->{
DataHarmonicDetail pojo2 = new DataHarmonicDetail();
pojo2.setTimeId(date);
pojo2.setLineId(item.getMonitorId());

View File

@@ -776,6 +776,9 @@
and b.loadtype = #{loadtype}
</if>
</if>
<if test="monitorNature != null">
and b.POWERID = #{monitorNature}
</if>
and a.line_index in
<foreach collection="list" item="item" separator="," open="("
close=")">
@@ -807,6 +810,9 @@
and b.loadtype = #{loadtype}
</if>
</if>
<if test="devLocation != null and devLocation != ''">
and d.DEV_LOCATION = #{devLocation}
</if>
and a.line_index in
<foreach collection="list" item="item" separator="," open="("
close=")">

View File

@@ -655,5 +655,11 @@
ON A.TIMEID = I.TIMEID
</select>
<select id="getMonitorNature" resultType="int">
SELECT LINE_INDEX FROM PQ_LINEDETAIL WHERE POWERID = #{powerId} AND LINE_INDEX IN
<foreach collection="list" item="totalList" open="(" close=")" separator=",">
#{totalList}
</foreach>
</select>
</mapper>

View File

@@ -343,7 +343,8 @@
LEFT JOIN
(
SELECT
MYINDEX,SUM(uharm_2_overtime + uharm_4_overtime + uharm_6_overtime + uharm_8_overtime + uharm_9_overtime + uharm_10_overtime + uharm_12_overtime + uharm_14_overtime + uharm_15_overtime + uharm_16_overtime + uharm_17_overtime + uharm_18_overtime + uharm_19_overtime + uharm_20_overtime + uharm_21_overtime + uharm_22_overtime + uharm_24_overtime) overTimes
MYINDEX,
SUM(CASE WHEN uharm_2_overtime + uharm_4_overtime + uharm_6_overtime + uharm_8_overtime + uharm_9_overtime + uharm_10_overtime + uharm_12_overtime + uharm_14_overtime + uharm_15_overtime + uharm_16_overtime + uharm_17_overtime + uharm_18_overtime + uharm_19_overtime + uharm_20_overtime + uharm_21_overtime + uharm_22_overtime + uharm_24_overtime > 0 THEN 1 else 0 END ) overTimes
FROM
limit_target
WHERE
@@ -463,7 +464,8 @@
LEFT JOIN
(
SELECT
MYINDEX,SUM(iharm_2_overtime + iharm_4_overtime + iharm_6_overtime + iharm_8_overtime + iharm_9_overtime + iharm_10_overtime + iharm_12_overtime + iharm_14_overtime + iharm_15_overtime + iharm_16_overtime + iharm_17_overtime + iharm_18_overtime + iharm_19_overtime + iharm_20_overtime + iharm_21_overtime + iharm_22_overtime + iharm_24_overtime) overTimes
MYINDEX,
SUM(CASE WHEN iharm_2_overtime + iharm_4_overtime + iharm_6_overtime + iharm_8_overtime + iharm_9_overtime + iharm_10_overtime + iharm_12_overtime + iharm_14_overtime + iharm_15_overtime + iharm_16_overtime + iharm_17_overtime + iharm_18_overtime + iharm_19_overtime + iharm_20_overtime + iharm_21_overtime + iharm_22_overtime + iharm_24_overtime > 0 THEN 1 ELSE 0 END) overTimes
FROM
limit_target
WHERE
@@ -562,18 +564,39 @@
AND TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
</select>
<select id="getData0" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
LINEID monitorId,
GREATEST(MAX(VU_DEV_MAX), MIN(VU_DEV_MAX), MAX(VU_DEV_MIN), MIN(VU_DEV_MIN)) maxVoltageDeviationData,
LEAST(MAX(VU_DEV_MAX), MIN(VU_DEV_MAX), MAX(VU_DEV_MIN), MIN(VU_DEV_MIN)) minVoltageDeviationData,
B.VOLTAGE_DEV limitUpVoltageDeviationData,
B.UVOLTAGE_DEV limitLowVoltageDeviationData
FROM
DATA_V A
LEFT JOIN
OVERLIMIT B ON A.LINEID = B.MYINDEX
WHERE
TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND B.MYINDEX IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY
LINEID,VOLTAGE_DEV,UVOLTAGE_DEV
</select>
<select id="getData1" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.LINEID monitorId,
max(abs(A.VU_DEV_MAX)) maxVoltageDeviationData,
B.VOLTAGE_DEV limitVoltageDeviationData,
max(abs(A.VU_DEV_MAX))-B.VOLTAGE_DEV diffVoltageDeviationData,
-- 电压总谐波畸变率
max(A.V_THD_CP95) maxVoltageDistortionData,
B.UBALANCE limitVoltageDistortionData,
max(A.V_THD_CP95)-B.UBALANCE diffVoltageDistortionData,
-- 三相电压不平衡度
max(A.V_UNBALANCE_CP95) maxThreeVoltageUnbalanceData,
B.UABERRANCE limitThreeVoltageUnbalanceData,
max(A.V_UNBALANCE_CP95)-B.UABERRANCE diffThreeVoltageUnbalanceData,
-- 频率偏差
max(abs(A.FREQ_DEV_MAX)) maxFrequencyDeviationData,
B.FREQ_DEV limitFrequencyDeviationData,
max(abs(A.FREQ_DEV_MAX))-B.FREQ_DEV diffFrequencyDeviationData

View File

@@ -81,6 +81,14 @@
<label >干扰源类型:</label>
<select class="width3 form-control" id="loadtype"></select>
</div>
<div class="form-group has-feedback mr10" >
<label >监测性质:</label>
<select class="width3 form-control" id="monitorNature">
<option selected value="-1">全部</option>
<option value="0">电网侧</option>
<option value="1">非电网侧</option>
</select>
</div>
</div>
<div class="row">

View File

@@ -94,6 +94,14 @@
<label >干扰源类型:</label>
<select class="width3 form-control" id="loadtype"></select>
</div>
<div class="form-group has-feedback mr10" >
<label >监测性质:</label>
<select class="width3 form-control" id="monitorNature">
<option selected value="-1">全部</option>
<option value="0">电网侧</option>
<option value="1">非电网侧</option>
</select>
</div>
</div>
<div class="row mt5">
<%--区域模块--%>
@@ -227,52 +235,59 @@
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
showtype = 0;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype)
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature)
}else if($("option:selected",this).val() == 1){
loadselect("电压等级","scale");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",true);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
showtype = 1;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype);
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}else if($("option:selected",this).val() == 2){
loadselect("制造厂商","manc");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",true);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
showtype = 2;
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype);
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}else if($("option:selected",this).val() == 3){
loadselect("干扰源类型","loadtype");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",true);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
showtype = 3;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype);
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}
})
@@ -343,11 +358,12 @@
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
//初始化页面内容
var area = $area.eq(0).attr("index");
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
refresh(startTime, endTime, area);
refresh(startTime,endTime,area);
}
})
})
@@ -359,10 +375,11 @@
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype);
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
});
function refresh(startTime, endTime,area,scale,manc,loadtype) {
function refresh(startTime, endTime,area,scale,manc,loadtype,monitorNature) {
var i;
$.ajax({
url: '/pqs9000/area/deviceStatus',
@@ -373,7 +390,8 @@
area: area,
scale:scale,
manc:manc,
loadtype:loadtype
loadtype:loadtype,
monitorNature: monitorNature
},
dataType: 'json',
beforeSend: function () {

View File

@@ -78,6 +78,14 @@
<label>监测点:</label>
<input type="checkbox" checked class="checkbox"/>
</div>
<div class="form-group has-feedback mr10" >
<label >监测性质:</label>
<select class="width3 form-control" id="monitorNature">
<option selected value="-1">全部</option>
<option value="0">电网侧</option>
<option value="1">非电网侧</option>
</select>
</div>
<div class="form-group has-feedback ml10">
<label style="margin-top: 3px">全部监测点:</label>
<input type="checkbox" id="allLineCheck"/>

View File

@@ -150,7 +150,7 @@
</tr>
<tr>
<th colspan="4">电压偏差</th>
<th colspan="4">谐波电流</th>+
<th colspan="4">谐波电流</th>
<th colspan="4">谐波电压</th>
<th colspan="4">电压总谐波畸变率</th>
<th colspan="4">谐波电压含有率</th>
@@ -165,7 +165,7 @@
</tr>
<tr>
<th>超标天数</th>
<th>最大幅值(绝对值)</th>
<th>最大幅值</th>
<th>限值</th>
<th>差值</th>

View File

@@ -1,6 +1,7 @@
var $startTime=$("#startTime");
var $endTime=$("#endTime");
var $statistic=$("#statistic");
var $monitorNature = $("#monitorNature")
var tiggleValue;
var buttonname;
var companyname;
@@ -11,6 +12,7 @@ $(function () {
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
var statistic = $statistic.eq(0).val();
var monitorNature = $monitorNature.eq(0).val();
$.ajax({
type: "POST",
data:{
@@ -71,6 +73,9 @@ function refresh(tiggleValue) {
var endTime = $endTime.eq(0).val();
var statistic = $statistic.eq(0).val();
let statFlag = $('#allLineCheck').is(":checked")
var monitorNature = $monitorNature.eq(0).val();
console.log(statistic)
console.log(monitorNature)
$.ajax({
type: "POST",
url: "/pqs9000/responsibility/overLimitData",
@@ -80,7 +85,8 @@ function refresh(tiggleValue) {
endTime : endTime,
type: tiggleValue,
statistic: statistic,
statFlag:statFlag
statFlag:statFlag,
monitorNature: monitorNature
},
beforeSend: function () {
i = ityzl_SHOW_LOAD_LAYER();

View File

@@ -34,51 +34,59 @@ $("#datatype").on("change",function() {
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
type = 0;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype)
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature)
}else if($("option:selected",this).val() == 1){
loadselect("电压等级","scale");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",true);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
type = 1;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype);
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}else if($("option:selected",this).val() == 2){
loadselect("制造厂商","manc");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",true);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
type = 2;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype);
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}else if($("option:selected",this).val() == 3){
loadselect("干扰源类型","loadtype");
$("#area").attr("disabled",false);
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",true);
$("#monitorNature").attr("disabled",false);
$("#area").css("background-color","#fff");
type = 3;
var area = $area.eq(0).attr("index");
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype);
var monitorNature = $("#monitorNature").val();
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
}
})
@@ -150,6 +158,7 @@ $(function () {
$("#scale").attr("disabled",false);
$("#manc").attr("disabled",false);
$("#loadtype").attr("disabled",false);
$("#monitorNature").attr("disabled",false);
//初始化页面内容
var area = $area.eq(0).attr("index");
var startTime = $startTime.eq(0).val();
@@ -167,11 +176,14 @@ $("#query").click(function () {
var scale = $("#scale").val();
var manc = $("#manc").val();
var loadtype = $("#loadtype").val();
refresh(startTime, endTime, area,scale,manc,loadtype);
var monitorNature = $("#monitorNature").val();
console.log(loadtype)
console.log(monitorNature)
refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature);
});
//请求后台刷新页面数据
function refresh(startTime, endTime, area,scale,manc,loadtype) {
function refresh(startTime, endTime, area,scale,manc,loadtype,monitorNature) {
var i;
$.ajax({
url: '/pqs9000/area/dataIntegrality',
@@ -181,7 +193,8 @@ function refresh(startTime, endTime, area,scale,manc,loadtype) {
area: area,
scale:scale,
manc:manc,
loadtype:loadtype
loadtype:loadtype,
monitorNature: monitorNature
},
type: 'post',
dataType: 'json',