14 Commits

Author SHA1 Message Date
xy
cb555696c6 越限数据源调整 2025-02-26 18:57:21 +08:00
xy
53142531dd 越限数据源调整 2025-02-26 14:30:51 +08:00
wr
dafa4be195 Merge remote-tracking branch 'origin/master' 2024-11-25 12:12:20 +08:00
wr
94c789b8b2 1.微调 2024-11-25 12:11:31 +08:00
xy
f383877ffc 报表数据调整 2024-10-23 14:52:09 +08:00
xy
e52db859a3 监测点稳态超标添加字段 2024-10-17 14:34:39 +08:00
xy
119e26728f 代码调整 2024-09-25 15:09:26 +08:00
xy
a3329be788 代码调整 2024-08-19 14:15:17 +08:00
xy
0ecb8e1585 1.数据完整性列表筛选条件调整
2.管理员新增装置自动生成装置名称
2024-08-01 15:52:52 +08:00
xy
cc1dd4f470 暂态事件弹窗蒙版关闭 2024-07-31 15:24:46 +08:00
xy
2caeb0c264 监测点按运行状态、前置机统计数据 2024-07-26 14:18:47 +08:00
xy
500b6c66bb 1.pqs9000-》区域-》终端状态统计,添加监测性质条件(电网侧||非电网侧)
2.pqs9000-》区域-》数据完整性统计,添加监测性质条件(电网侧||非电网侧)
3.pqs9000-》详细分析-》区域稳态超标分类,添加监测性质条件(电网侧||非电网侧)
4.电压偏差限制判断
2024-07-22 18:46:21 +08:00
xy
41fec04cb7 前端正则调整 2024-07-01 09:58:51 +08:00
xy
cb6a8f8e91 合格率算法调整 2024-06-20 10:22:43 +08:00
56 changed files with 2369 additions and 594 deletions

View File

@@ -70,4 +70,6 @@ public interface DeviceMapper extends Mapper<Device>{
List<Integer> getDevIndex(@Param("list") List<Integer> dataType); List<Integer> getDevIndex(@Param("list") List<Integer> dataType);
DeviceDetail getDevAndParent(@Param("devIndex")String devIndex); DeviceDetail getDevAndParent(@Param("devIndex")String devIndex);
String findMaxDeviceName(@Param("gdIndex")Long gdIndex);
} }

View File

@@ -14,6 +14,6 @@ public interface LineDetailMapper extends Mapper<LineDetail> {
List<LineDetailExcelBody> selectAllExcelData(); List<LineDetailExcelBody> selectAllExcelData();
} }

View File

@@ -53,6 +53,8 @@ public interface LineMapper extends Mapper<Line> {
//根据现有的监测点筛选出国网监测点 //根据现有的监测点筛选出国网监测点
List<Integer> getGWLines(@Param("list") List<Integer> subList); List<Integer> getGWLines(@Param("list") List<Integer> subList);
List<Integer> getAllGWLines(@Param("list") List<Integer> subList);
String selectLineName(String name); String selectLineName(String name);
//获取该表所有数据提供excel导出 //获取该表所有数据提供excel导出
@@ -103,11 +105,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<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<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); 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

@@ -1,6 +1,7 @@
package com.njcn.mapper.data; package com.njcn.mapper.data;
import com.njcn.pojo.commons.SimpleValue; import com.njcn.pojo.commons.SimpleValue;
import com.njcn.pojo.commons.device.LineInfo;
import com.njcn.pojo.commons.runmanage.IntergralityTable; import com.njcn.pojo.commons.runmanage.IntergralityTable;
import com.njcn.pojo.data.Integrity; import com.njcn.pojo.data.Integrity;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -27,4 +28,6 @@ public interface IntegrityMapper extends Mapper<Integrity> {
List<IntergralityTable> selectIntegrityData(@Param("list") List<Integer> tempIndexs,@Param("startTime")Date startTime,@Param("endTime") Date endTime); List<IntergralityTable> selectIntegrityData(@Param("list") List<Integer> tempIndexs,@Param("startTime")Date startTime,@Param("endTime") Date endTime);
List<IntergralityTable> selectGWIntegrityData(@Param("list") List<Integer> tempIndexs,@Param("startTime")Date startTime,@Param("endTime") Date endTime); List<IntergralityTable> selectGWIntegrityData(@Param("list") List<Integer> tempIndexs,@Param("startTime")Date startTime,@Param("endTime") Date endTime);
List<LineInfo> getLineInfo(@Param("list") List<Integer> tempIndexs,@Param("postType") Integer postType, @Param("powerId") Integer powerId);
} }

View File

@@ -16,8 +16,6 @@ public class SteadyData implements Serializable {
private float allTime; private float allTime;
private float tAllTime;
private float frequency=3.1415f; private float frequency=3.1415f;
private float uBalance=3.1415f; private float uBalance=3.1415f;
@@ -190,14 +188,6 @@ public class SteadyData implements Serializable {
this.inUharm = inUharm; this.inUharm = inUharm;
} }
public float gettAllTime() {
return tAllTime;
}
public void settAllTime(float tAllTime) {
this.tAllTime = tAllTime;
}
@Override @Override
public String toString() { public String toString() {
return "SteadyData{" + return "SteadyData{" +
@@ -205,7 +195,6 @@ public class SteadyData implements Serializable {
", monitors=" + monitors + ", monitors=" + monitors +
", areaIndex='" + areaIndex + '\'' + ", areaIndex='" + areaIndex + '\'' +
", allTime=" + allTime + ", allTime=" + allTime +
", tAllTime=" + tAllTime +
", frequency=" + frequency + ", frequency=" + frequency +
", uBalance=" + uBalance + ", uBalance=" + uBalance +
", uAberrance=" + uAberrance + ", uAberrance=" + uAberrance +

View File

@@ -0,0 +1,141 @@
package com.njcn.pojo.commons.runmanage;
import java.io.Serializable;
import java.util.List;
/**
* @author hongawen
* @date: 2024/07/25
*/
public class IntegrityAnalysisData implements Serializable {
private String deptIndex;
private String deptName;
private List<TypeList> typeLists;
private Integer sort;
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public static class TypeList {
private String name;
List<DataList> dataLists;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<DataList> getDataLists() {
return dataLists;
}
public void setDataLists(List<DataList> dataLists) {
this.dataLists = dataLists;
}
}
public static class DataList {
//分类型名称
private String name;
//总监测点个数
private Integer allLineCount;
//投运监测点个数
private Integer runLineCount;
//检修监测点个数
private Integer checkLineCount;
//退运监测点个数
private Integer backLineCount;
public Integer getAllLineCount() {
return allLineCount;
}
public void setAllLineCount(Integer allLineCount) {
this.allLineCount = allLineCount;
}
public Integer getRunLineCount() {
return runLineCount;
}
public void setRunLineCount(Integer runLineCount) {
this.runLineCount = runLineCount;
}
public Integer getCheckLineCount() {
return checkLineCount;
}
public void setCheckLineCount(Integer checkLineCount) {
this.checkLineCount = checkLineCount;
}
public Integer getBackLineCount() {
return backLineCount;
}
public void setBackLineCount(Integer backLineCount) {
this.backLineCount = backLineCount;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public String getDeptIndex() {
return deptIndex;
}
public void setDeptIndex(String deptIndex) {
this.deptIndex = deptIndex;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public List<TypeList> getTypeLists() {
return typeLists;
}
public void setTypeLists(List<TypeList> typeLists) {
this.typeLists = typeLists;
}
@Override
public String toString() {
return "IntegrityAnalysisData{" +
"deptIndex='" + deptIndex + '\'' +
", deptName='" + deptName + '\'' +
", typeLists=" + typeLists +
'}';
}
}

View File

@@ -10,6 +10,14 @@ import java.util.List;
*/ */
public class IntergralityData implements Serializable { public class IntergralityData implements Serializable {
private Integer allOnlineNum;
private Integer allOfflineNum;
private Integer countryOnlineNum;
private Integer countryOfflineNum;
//全网数据完整性数据 //全网数据完整性数据
private List<IntergralityTable> allNets= new ArrayList<>(); private List<IntergralityTable> allNets= new ArrayList<>();
@@ -32,10 +40,46 @@ public class IntergralityData implements Serializable {
this.countryNets = countryNets; this.countryNets = countryNets;
} }
public Integer getAllOnlineNum() {
return allOnlineNum;
}
public void setAllOnlineNum(Integer allOnlineNum) {
this.allOnlineNum = allOnlineNum;
}
public Integer getAllOfflineNum() {
return allOfflineNum;
}
public void setAllOfflineNum(Integer allOfflineNum) {
this.allOfflineNum = allOfflineNum;
}
public Integer getCountryOnlineNum() {
return countryOnlineNum;
}
public void setCountryOnlineNum(Integer countryOnlineNum) {
this.countryOnlineNum = countryOnlineNum;
}
public Integer getCountryOfflineNum() {
return countryOfflineNum;
}
public void setCountryOfflineNum(Integer countryOfflineNum) {
this.countryOfflineNum = countryOfflineNum;
}
@Override @Override
public String toString() { public String toString() {
return "IntergralityData{" + return "IntergralityData{" +
"allNets=" + allNets + "allOnlineNum=" + allOnlineNum +
", allOfflineNum=" + allOfflineNum +
", countryOnlineNum=" + countryOnlineNum +
", countryOfflineNum=" + countryOfflineNum +
", allNets=" + allNets +
", countryNets=" + countryNets + ", countryNets=" + countryNets +
'}'; '}';
} }

View File

@@ -24,6 +24,9 @@ public class IntergralityTable extends OnlineRateData{
private Integer devId; private Integer devId;
//所属前置机
private String frontDev;
public Integer getDevId() { public Integer getDevId() {
return devId; return devId;
} }
@@ -96,6 +99,14 @@ public class IntergralityTable extends OnlineRateData{
this.lineId = lineId; this.lineId = lineId;
} }
public String getFrontDev() {
return frontDev;
}
public void setFrontDev(String frontDev) {
this.frontDev = frontDev;
}
@Override @Override
public String toString() { public String toString() {
return "IntergralityTable{" + return "IntergralityTable{" +
@@ -106,6 +117,9 @@ public class IntergralityTable extends OnlineRateData{
", devFlag='" + devFlag + '\'' + ", devFlag='" + devFlag + '\'' +
", status='" + status + '\'' + ", status='" + status + '\'' +
", updateTime='" + updateTime + '\'' + ", updateTime='" + updateTime + '\'' +
", devType='" + devType + '\'' +
", devId=" + devId +
", frontDev='" + frontDev + '\'' +
'}'; '}';
} }
} }

View File

@@ -29,6 +29,7 @@ import com.njcn.pojo.commons.device.LineInfo;
import com.njcn.pojo.commons.device.SubInfo; import com.njcn.pojo.commons.device.SubInfo;
import com.njcn.pojo.commons.device.Tree; import com.njcn.pojo.commons.device.Tree;
import com.njcn.pojo.commons.device.ValueOfTargetanaly; import com.njcn.pojo.commons.device.ValueOfTargetanaly;
import com.njcn.pojo.commons.runmanage.IntegrityAnalysisData;
import com.njcn.pojo.commons.runmanage.IntergralityData; import com.njcn.pojo.commons.runmanage.IntergralityData;
import com.njcn.pojo.commons.runmanage.IntergralityTable; import com.njcn.pojo.commons.runmanage.IntergralityTable;
import com.njcn.pojo.commons.runmanage.OnlineRateData; import com.njcn.pojo.commons.runmanage.OnlineRateData;
@@ -69,20 +70,20 @@ public interface DeviceService {
DeviceGeneral getDeviceData(String overview, String area, Date startTime, Date endTime); 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 getDeviceOnlineRate(Date startTime, Date endTime, String overview, String area);
//区域统计---》数据完整性 //区域统计---》数据完整性
DeviceGeneral getDataIntegrality(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); List<OnlineRateData> getOnlineRate(Date startTime, Date endTime, String area);
//运行管理--》监测点数据完整性 //运行管理--》监测点数据完整性
IntergralityData getDataIntegralityTable(Date startTime, Date endTime, String area,Integer devflag,Integer powerId); IntergralityData getDataIntegralityTable(Date startTime, Date endTime, String area,Integer devflag,Integer powerId,Integer runFlag);
String getDeviceOnline(Date startTime, Date endTime, Long lineIndex); String getDeviceOnline(Date startTime, Date endTime, Long lineIndex);
@@ -279,5 +280,5 @@ public interface DeviceService {
int updatEventPushLog(String eventDetailIndex,Integer lineId); int updatEventPushLog(String eventDetailIndex,Integer lineId);
List<IntegrityAnalysisData> getStatisticalAnalysis(String startTime, String endTime, String area, Integer postType, Integer powerId);
} }

View File

@@ -1,15 +1,18 @@
package com.njcn.serviceimpl.configuration; package com.njcn.serviceimpl.configuration;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.njcn.enums.TerminalLogsEnum; import com.njcn.enums.TerminalLogsEnum;
import com.njcn.mapper.configuration.*; import com.njcn.mapper.configuration.*;
import com.njcn.mapper.data.*; import com.njcn.mapper.data.*;
import com.njcn.mapper.user.DeptsGdMapper; import com.njcn.mapper.user.DeptsGdMapper;
import com.njcn.mapper.user.DeptsMapper;
import com.njcn.mapper.user.TransFormerMapper; import com.njcn.mapper.user.TransFormerMapper;
import com.njcn.mapper.user.UserMapper; import com.njcn.mapper.user.UserMapper;
import com.njcn.pojo.commons.*; import com.njcn.pojo.commons.*;
import com.njcn.pojo.commons.area.*; import com.njcn.pojo.commons.area.*;
import com.njcn.pojo.commons.device.*; import com.njcn.pojo.commons.device.*;
import com.njcn.pojo.commons.runmanage.IntegrityAnalysisData;
import com.njcn.pojo.commons.runmanage.IntergralityData; import com.njcn.pojo.commons.runmanage.IntergralityData;
import com.njcn.pojo.commons.runmanage.IntergralityTable; import com.njcn.pojo.commons.runmanage.IntergralityTable;
import com.njcn.pojo.commons.runmanage.OnlineRateData; import com.njcn.pojo.commons.runmanage.OnlineRateData;
@@ -45,7 +48,6 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
@@ -155,7 +157,6 @@ public class DeviceServiceImpl implements DeviceService {
@Resource @Resource
private EventPushLogsDetailMapper eventPushLogsDetailMapper; private EventPushLogsDetailMapper eventPushLogsDetailMapper;
/** /**
* 概览--》终端运行状态 * 概览--》终端运行状态
*/ */
@@ -201,8 +202,9 @@ public class DeviceServiceImpl implements DeviceService {
* @param area 区域 * @param area 区域
*/ */
@Override @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) { Date startTime, Date endTime) {
String devLocation = null;
DeviceGeneral deviceGeneral; DeviceGeneral deviceGeneral;
List<AreaGeneralData> areaGeneralDatasTemp; List<AreaGeneralData> areaGeneralDatasTemp;
if ("overview".equalsIgnoreCase(area)) { if ("overview".equalsIgnoreCase(area)) {
@@ -210,7 +212,12 @@ public class DeviceServiceImpl implements DeviceService {
} else { } else {
areaGeneralDatasTemp = userUtil.getAreaDataByInfo(area); 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)) { if (CollectionUtils.isEmpty(areaGeneralDatasTemp)) {
return null; return null;
} }
@@ -312,7 +319,7 @@ public class DeviceServiceImpl implements DeviceService {
* @param area 区域 * @param area 区域
*/ */
@Override @Override
public IntergralityData getDataIntegralityTable(Date startTime, Date endTime, String area,Integer devflag,Integer powerId) { public IntergralityData getDataIntegralityTable(Date startTime, Date endTime, String area,Integer devflag,Integer powerId,Integer runFlag) {
IntergralityData intergralityData = new IntergralityData(); IntergralityData intergralityData = new IntergralityData();
List<AreaGeneralData> areaGeneralDataList = userUtil.getAreaGeneralRun(devflag,area,powerId); List<AreaGeneralData> areaGeneralDataList = userUtil.getAreaGeneralRun(devflag,area,powerId);
@@ -321,11 +328,31 @@ public class DeviceServiceImpl implements DeviceService {
return null; return null;
} }
//全网监测点的数据完整性 //全网监测点的数据完整性
intergralityData.setAllNets(getIntegralityTable(startTime, endTime, lineIndexs)); List<IntergralityTable> list1 = getIntegralityTable(startTime, endTime, lineIndexs);
if (CollUtil.isNotEmpty(list1)){
List<IntergralityTable> offline = list1.stream().filter(item->Objects.equals(Integer.parseInt(item.getStatus()),0)).collect(Collectors.toList());
List<IntergralityTable> online = list1.stream().filter(item->Objects.equals(Integer.parseInt(item.getStatus()),1)).collect(Collectors.toList());
intergralityData.setAllOfflineNum(CollUtil.isNotEmpty(offline)?offline.size():0);
intergralityData.setAllOnlineNum(CollUtil.isNotEmpty(online)?online.size():0);
if (!Objects.isNull(runFlag)){
list1 = Objects.equals(runFlag,0) ? offline : online;
}
}
intergralityData.setAllNets(list1);
//国网监测点 //国网监测点
List<Integer> countryLineIndexs = getGwLine(lineIndexs); List<Integer> countryLineIndexs = getAllGwLine(lineIndexs);
if (!CollectionUtils.isEmpty(countryLineIndexs)) { if (!CollectionUtils.isEmpty(countryLineIndexs)) {
intergralityData.setCountryNets(getGWIntegralityTable(startTime, endTime, countryLineIndexs)); List<IntergralityTable> list2 = getGWIntegralityTable(startTime, endTime, countryLineIndexs);
if (CollUtil.isNotEmpty(list2)){
List<IntergralityTable> offline = list2.stream().filter(item->Objects.equals(Integer.parseInt(item.getStatus()),0)).collect(Collectors.toList());
List<IntergralityTable> online = list2.stream().filter(item->Objects.equals(Integer.parseInt(item.getStatus()),1)).collect(Collectors.toList());
intergralityData.setCountryOfflineNum(CollUtil.isNotEmpty(offline)?offline.size():0);
intergralityData.setCountryOnlineNum(CollUtil.isNotEmpty(online)?online.size():0);
if (!Objects.isNull(runFlag)){
list2 = Objects.equals(runFlag,0) ? offline : online;
}
}
intergralityData.setCountryNets(list2);
} }
return intergralityData; return intergralityData;
} }
@@ -611,41 +638,44 @@ public class DeviceServiceImpl implements DeviceService {
*/ */
@Override @Override
public DeviceGeneral getDataIntegrality(Date startTime, Date endTime, String overview, String area, 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; DeviceGeneral deviceGeneral;
List<AreaGeneralData> areaGeneralDatasTemp = userUtil.getAreaDataByInfoRun(area); List<AreaGeneralData> areaGeneralDatasTemp = userUtil.getAreaDataByInfoRun(area);
if (CollectionUtils.isEmpty(areaGeneralDatasTemp)) { if (CollectionUtils.isEmpty(areaGeneralDatasTemp)) {
return null; return null;
} }
deviceGeneral = getDataIntegrality(startTime, endTime, overview, areaGeneralDatasTemp, scale, manc, loadtype); deviceGeneral = getDataIntegrality(startTime, endTime, overview, areaGeneralDatasTemp, scale, manc, loadtype, monitorNature);
return deviceGeneral; return deviceGeneral;
} }
private DeviceGeneral getDataIntegrality(Date startTime, Date endTime, String overview, List<AreaGeneralData> areaGeneralDatas, 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(); DeviceGeneral deviceGeneral = new DeviceGeneral();
List<DeviceValue> area = new ArrayList<>(); List<DeviceValue> area = new ArrayList<>();
List<Integer> deviceLindexs = new ArrayList<>(); List<Integer> deviceLindexs = new ArrayList<>();
if (CollectionUtils.isEmpty(areaGeneralDatas)) { if (CollectionUtils.isEmpty(areaGeneralDatas)) {
return null; return null;
} }
if (!Objects.isNull(monitorNature) && monitorNature == -1) {
monitorNature = null;
}
//区域 //区域
for (AreaGeneralData areaGeneralData : areaGeneralDatas) { for (AreaGeneralData areaGeneralData : areaGeneralDatas) {
if (CollectionUtils.isEmpty(areaGeneralData.getLineIndexs())) { if (CollectionUtils.isEmpty(areaGeneralData.getLineIndexs())) {
continue; continue;
} }
area.add(getDataIntegralityArea(areaGeneralData, startTime, endTime, scale, manc, loadtype)); area.add(getDataIntegralityArea(areaGeneralData, startTime, endTime, scale, manc, loadtype, monitorNature));
deviceLindexs.addAll(areaGeneralData.getDeviceIndexs()); deviceLindexs.addAll(areaGeneralData.getDeviceIndexs());
} }
deviceGeneral.setArea(area); deviceGeneral.setArea(area);
if (StringUtils.isEmpty(overview)) { 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; return deviceGeneral;
} }
@@ -848,7 +878,7 @@ public class DeviceServiceImpl implements DeviceService {
} }
private List<DeviceValue> getDataIntegralityCompany(List<Integer> deviceLindexs, Date startTime, Date endTime, 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<DeviceValue> deviceValues = new ArrayList<>();
List<CompanyValue> companyValues = userUtil.getCompanyData(deviceLindexs); List<CompanyValue> companyValues = userUtil.getCompanyData(deviceLindexs);
if (CollectionUtils.isEmpty(companyValues)) { if (CollectionUtils.isEmpty(companyValues)) {
@@ -861,7 +891,7 @@ public class DeviceServiceImpl implements DeviceService {
if (CollectionUtils.isEmpty(lineIndexs)) { if (CollectionUtils.isEmpty(lineIndexs)) {
continue; continue;
} }
lineIndexs = lineMapper.siftLineIndexs(lineIndexs, scale, manc, loadtype); lineIndexs = lineMapper.siftLineIndexs(lineIndexs, scale, manc, loadtype, monitorNature);
if (CollectionUtils.isEmpty(lineIndexs)) { if (CollectionUtils.isEmpty(lineIndexs)) {
deviceValue.setAmounts("0"); deviceValue.setAmounts("0");
deviceValue.setDataIntegrity("3.1415"); deviceValue.setDataIntegrity("3.1415");
@@ -917,7 +947,7 @@ public class DeviceServiceImpl implements DeviceService {
} }
private List<DeviceValue> getDataIntegralityVol(List<Integer> deviceLindexs, Date startTime, Date endTime, 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<DeviceValue> deviceValues = new ArrayList<>();
List<VoltageData> voltageDatas = userUtil.getVoltageData(deviceLindexs); List<VoltageData> voltageDatas = userUtil.getVoltageData(deviceLindexs);
if (CollectionUtils.isEmpty(voltageDatas)) { if (CollectionUtils.isEmpty(voltageDatas)) {
@@ -926,7 +956,7 @@ public class DeviceServiceImpl implements DeviceService {
for (VoltageData voltageData : voltageDatas) { for (VoltageData voltageData : voltageDatas) {
List<Integer> lines = voltageData.getLineIndexs(); List<Integer> lines = voltageData.getLineIndexs();
if (!CollectionUtils.isEmpty(lines)) { if (!CollectionUtils.isEmpty(lines)) {
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype); lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype, monitorNature);
DeviceValue deviceValue = new DeviceValue(); DeviceValue deviceValue = new DeviceValue();
deviceValue.setName(voltageData.getVol()); deviceValue.setName(voltageData.getVol());
deviceValue.setAmounts(String.valueOf(lines.size())); deviceValue.setAmounts(String.valueOf(lines.size()));
@@ -952,7 +982,7 @@ public class DeviceServiceImpl implements DeviceService {
* 根据用户当前的身份,获取按电压等级的数据完整性 * 根据用户当前的身份,获取按电压等级的数据完整性
*/ */
private List<DeviceValue> getDataIntegralityLoadType(List<Integer> deviceLindexs, Date startTime, Date endTime, 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<DeviceValue> deviceValues = new ArrayList<>();
List<LoadTypeValue> loadtypes = userUtil.getLoadTypeValue(deviceLindexs); List<LoadTypeValue> loadtypes = userUtil.getLoadTypeValue(deviceLindexs);
if (CollectionUtils.isEmpty(loadtypes)) { if (CollectionUtils.isEmpty(loadtypes)) {
@@ -961,7 +991,7 @@ public class DeviceServiceImpl implements DeviceService {
for (LoadTypeValue type : loadtypes) { for (LoadTypeValue type : loadtypes) {
List<Integer> lines = type.getLineIndexs(); List<Integer> lines = type.getLineIndexs();
if (!CollectionUtils.isEmpty(lines)) { if (!CollectionUtils.isEmpty(lines)) {
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype); lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype, monitorNature);
DeviceValue deviceValue = new DeviceValue(); DeviceValue deviceValue = new DeviceValue();
deviceValue.setName(type.getType()); deviceValue.setName(type.getType());
deviceValue.setAmounts(String.valueOf(lines.size())); deviceValue.setAmounts(String.valueOf(lines.size()));
@@ -1008,10 +1038,10 @@ public class DeviceServiceImpl implements DeviceService {
} }
private DeviceValue getDataIntegralityArea(AreaGeneralData areaGeneralData, Date startTime, Date endTime, 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(); DeviceValue deviceValue = new DeviceValue();
List<Integer> lines = areaGeneralData.getLineIndexs(); List<Integer> lines = areaGeneralData.getLineIndexs();
lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype); lines = lineMapper.siftLineIndexs(lines, scale, manc, loadtype, monitorNature);
String name = areaGeneralData.getName(); String name = areaGeneralData.getName();
deviceValue.setName(name); deviceValue.setName(name);
deviceValue.setAmounts(lines.size() + ""); deviceValue.setAmounts(lines.size() + "");
@@ -1055,6 +1085,30 @@ public class DeviceServiceImpl implements DeviceService {
return tempLine; return tempLine;
} }
private List<Integer> getAllGwLine(List<Integer> lines) {
if (CollectionUtils.isEmpty(lines)) {
return new ArrayList<>();
}
List<Integer> lineTemp = new ArrayList<>(lines);
List<Integer> tempLine = new ArrayList<>();
if (lineTemp.size() > 1000) {
int times = lineTemp.size() / 1000 + 1;
for (int i = 0; i < times; i++) {
if (lineTemp.size() > 1000) {
List<Integer> subList = lineTemp.subList(0, 1000);
List<Integer> temp = lineMapper.getAllGWLines(subList);
subList.clear();
tempLine.addAll(temp);
} else {
tempLine.addAll(lineMapper.getAllGWLines(lineTemp));
}
}
} else {
tempLine.addAll(lineMapper.getAllGWLines(lineTemp));
}
return tempLine;
}
/** /**
* 根据监测点索引获取当前的数据完整性 * 根据监测点索引获取当前的数据完整性
* *
@@ -7025,6 +7079,96 @@ public class DeviceServiceImpl implements DeviceService {
return eventPushLogsDetailMapper.updatEventPushLog(eventDetailIndex, lineId, new Date()); return eventPushLogsDetailMapper.updatEventPushLog(eventDetailIndex, lineId, new Date());
} }
@Override
public List<IntegrityAnalysisData> getStatisticalAnalysis(String startTime, String endTime, String area, Integer postType, Integer powerId) {
List<IntegrityAnalysisData> list = new ArrayList<>();
List<LineInfo> allArea = new ArrayList<>();
List<AreaGeneralData> ag = userUtil.getAreaDataByInfo(area);
for (AreaGeneralData item : ag) {
IntegrityAnalysisData data = new IntegrityAnalysisData();
data.setDeptName(item.getName());
data.setDeptIndex(item.getDeptIndex());
data.setSort(1);
if (CollUtil.isNotEmpty(item.getLineIndexs())) {
List<LineInfo> lineInfos = integrityMapper.getLineInfo(item.getLineIndexs(),postType,powerId);
allArea.addAll(lineInfos);
List<IntegrityAnalysisData.TypeList> typeList = new ArrayList<>();
IntegrityAnalysisData.TypeList type = new IntegrityAnalysisData.TypeList();
type.setName("所属前置机");
type.setDataLists(getFrontList(lineInfos));
IntegrityAnalysisData.TypeList type2 = new IntegrityAnalysisData.TypeList();
type2.setName("监测点状态");
type2.setDataLists(getLineStatusList(lineInfos));
typeList.add(type);
typeList.add(type2);
data.setTypeLists(typeList);
}
list.add(data);
}
//新增冀北省
Depts depts = userUtil.getDeptsByIndex(area);
if (Objects.equals(depts.getParentNodeId(),"10001")) {
IntegrityAnalysisData data = new IntegrityAnalysisData();
data.setDeptName("冀北省");
data.setDeptIndex(area);
List<IntegrityAnalysisData.TypeList> typeList = new ArrayList<>();
IntegrityAnalysisData.TypeList type = new IntegrityAnalysisData.TypeList();
type.setName("所属前置机");
type.setDataLists(getFrontList(allArea));
IntegrityAnalysisData.TypeList type2 = new IntegrityAnalysisData.TypeList();
type2.setName("监测点状态");
type2.setDataLists(getLineStatusList(allArea));
typeList.add(type);
typeList.add(type2);
data.setTypeLists(typeList);
data.setSort(0);
list.add(data);
}
return list.stream().sorted(Comparator.comparing(IntegrityAnalysisData::getSort)).collect(Collectors.toList());
}
public List<IntegrityAnalysisData.DataList> getFrontList(List<LineInfo> lineInfos) {
List<IntegrityAnalysisData.DataList> result = new ArrayList<>();
Map<String,List<LineInfo>> frontMap = lineInfos.stream().collect(Collectors.groupingBy(LineInfo::getDevName));
if (CollectionUtils.isEmpty(frontMap)) {
IntegrityAnalysisData.DataList dataList = new IntegrityAnalysisData.DataList();
dataList.setName("/");
dataList.setAllLineCount(0);
dataList.setRunLineCount(0);
dataList.setCheckLineCount(0);
dataList.setBackLineCount(0);
result.add(dataList);
} else {
frontMap.forEach((k,v)->{
IntegrityAnalysisData.DataList dataList = new IntegrityAnalysisData.DataList();
dataList.setName(k);
Map<Long,List<LineInfo>> statusMap = v.stream().collect(Collectors.groupingBy(LineInfo::getStatus));
dataList.setAllLineCount(v.size());
dataList.setRunLineCount(CollUtil.isNotEmpty(statusMap.get(0L))?statusMap.get(0L).size():0);
dataList.setCheckLineCount(CollUtil.isNotEmpty(statusMap.get(1L))?statusMap.get(1L).size():0);
dataList.setBackLineCount(CollUtil.isNotEmpty(statusMap.get(2L))?statusMap.get(2L).size():0);
result.add(dataList);
});
}
return result;
}
public List<IntegrityAnalysisData.DataList> getLineStatusList(List<LineInfo> lineInfos) {
List<IntegrityAnalysisData.DataList> result = new ArrayList<>();
Map<Long,List<LineInfo>> statusMap = lineInfos.stream().collect(Collectors.groupingBy(LineInfo::getStatus));
IntegrityAnalysisData.DataList dataList = new IntegrityAnalysisData.DataList();
dataList.setName("/");
dataList.setAllLineCount(lineInfos.size());
dataList.setRunLineCount(CollUtil.isNotEmpty(statusMap.get(0L))?statusMap.get(0L).size():0);
dataList.setCheckLineCount(CollUtil.isNotEmpty(statusMap.get(1L))?statusMap.get(1L).size():0);
dataList.setBackLineCount(CollUtil.isNotEmpty(statusMap.get(2L))?statusMap.get(2L).size():0);
result.add(dataList);
return result;
}
/** /**
* 根据电压等级返回基准容量 * 根据电压等级返回基准容量
* *

View File

@@ -12,7 +12,6 @@ import com.njcn.pojo.commons.runmanage.SteadyResult;
import com.njcn.pojo.commons.runmanage.SteadyTable; import com.njcn.pojo.commons.runmanage.SteadyTable;
import com.njcn.pojo.configuration.*; import com.njcn.pojo.configuration.*;
import com.njcn.pojo.data.Legder; import com.njcn.pojo.data.Legder;
import com.njcn.pojo.data.LegderExcel;
import com.njcn.pojo.jibei.Dnzljczz; import com.njcn.pojo.jibei.Dnzljczz;
import com.njcn.pojo.jibei.Znycdz; import com.njcn.pojo.jibei.Znycdz;
import com.njcn.pojo.system.Theme; import com.njcn.pojo.system.Theme;
@@ -23,10 +22,6 @@ import com.njcn.shiro.token.TokenManager;
import com.njcn.utils.AppConfig; import com.njcn.utils.AppConfig;
import com.njcn.utils.PubUtils; import com.njcn.utils.PubUtils;
import com.njcn.utils.UserUtil; import com.njcn.utils.UserUtil;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -37,11 +32,13 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.imageio.stream.FileImageInputStream; import javax.imageio.stream.FileImageInputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.sql.*; import java.sql.*;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.*;
import java.util.Date; import java.util.Date;
import java.util.*;
/** /**
* @author hongawen * @author hongawen
@@ -240,11 +237,6 @@ public class LineServiceImpls implements LineService {
} else { } else {
steadyData.setAllTime(steadyData.getAllTime() + tempT.getAllTime()); steadyData.setAllTime(steadyData.getAllTime() + tempT.getAllTime());
} }
if (steadyData.gettAllTime() == 0) {
steadyData.settAllTime(tempT.gettAllTime());
} else {
steadyData.settAllTime(steadyData.gettAllTime() + tempT.gettAllTime());
}
if (steadyData.getFrequency() == 3.1415f) { if (steadyData.getFrequency() == 3.1415f) {
steadyData.setFrequency(tempT.getFrequency()); steadyData.setFrequency(tempT.getFrequency());
} else { } else {
@@ -327,15 +319,14 @@ public class LineServiceImpls implements LineService {
return steadyData; return steadyData;
} else { } else {
float allTime = steadyData.getAllTime(); float allTime = steadyData.getAllTime();
float tAllTime = steadyData.gettAllTime();
//冀北二期 谐波电流 谐波电压 负序电流 间谐波电压含有率 start //冀北二期 谐波电流 谐波电压 负序电流 间谐波电压含有率 start
steadyData.setHarmVoltage(getAcceptlityByData(allTime, steadyData.getHarmVoltage())); steadyData.setHarmVoltage(getAcceptlityByData(allTime, steadyData.getHarmVoltage()));
steadyData.setHarmElec(getAcceptlityByData(allTime, steadyData.getHarmElec())); steadyData.setHarmElec(getAcceptlityByData(allTime, steadyData.getHarmElec()));
steadyData.setiNeg(getAcceptlityByData(tAllTime, steadyData.getiNeg())); steadyData.setiNeg(getAcceptlityByData(allTime, steadyData.getiNeg()));
steadyData.setInUharm(getAcceptlityByData(allTime, steadyData.getInUharm())); steadyData.setInUharm(getAcceptlityByData(allTime, steadyData.getInUharm()));
//冀北二期 谐波电流 谐波电压 负序电流 间谐波电压含有率 end //冀北二期 谐波电流 谐波电压 负序电流 间谐波电压含有率 end
steadyData.setVoltageDeviation(getAcceptlityByData(allTime, steadyData.getVoltageDeviation())); steadyData.setVoltageDeviation(getAcceptlityByData(allTime, steadyData.getVoltageDeviation()));
steadyData.setuBalance(getAcceptlityByData(tAllTime, steadyData.getuBalance())); steadyData.setuBalance(getAcceptlityByData(allTime, steadyData.getuBalance()));
steadyData.setFlicker(getAcceptlityByData(steadyData.getAllFlicker(), steadyData.getFlicker())); steadyData.setFlicker(getAcceptlityByData(steadyData.getAllFlicker(), steadyData.getFlicker()));
steadyData.setOddVoltage(getAcceptlityByData(allTime, steadyData.getOddVoltage())); steadyData.setOddVoltage(getAcceptlityByData(allTime, steadyData.getOddVoltage()));
steadyData.setEvenVoltage(getAcceptlityByData(allTime, steadyData.getEvenVoltage())); steadyData.setEvenVoltage(getAcceptlityByData(allTime, steadyData.getEvenVoltage()));

View File

@@ -50,36 +50,57 @@ public class COverlimitUtil {
return overlimit; return overlimit;
} }
/** /**
* 电压偏差限值 * 电压偏差限值-冀北现场
* * 220V 上偏差 +7% 下偏差 -10%
* 220V以上35kV以下 上偏差 +7% 下偏差 -7%
* 35kV及以上 上偏差 +7% 下偏差 -3%
*/ */
public static void voltageDeviation(OverLimit overlimit,Float voltageLevel) { public static void voltageDeviation(OverLimit overlimit,Float voltageLevel) {
float voltageDev = 3.14159f,uvoltageDev = 3.14159f; float voltageDev = 3.14159f,uvoltageDev = 3.14159f;
if(voltageLevel <= Float.parseFloat(DicDataEnum.V220.getCode())){ if(voltageLevel <= Float.parseFloat(DicDataEnum.V220.getCode())){
voltageDev = 7.0f; voltageDev = 7.0f;
uvoltageDev=-10.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; voltageDev = 7.0f;
uvoltageDev=-7.0f; uvoltageDev=-7.0f;
}else if(voltageLevel>=Float.parseFloat(DicDataEnum.KV20.getCode())&&voltageLevel<Float.parseFloat(DicDataEnum.KV35.getCode())){ }else if(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; voltageDev = 7.0f;
uvoltageDev=-3.0f; uvoltageDev=-3.0f;
}else if(voltageLevel>Float.parseFloat(DicDataEnum.KV110.getCode())){
voltageDev = 10.0f;
uvoltageDev=-10.0f;
} }
overlimit.setVoltageDev(voltageDev); overlimit.setVoltageDev(voltageDev);
overlimit.setUvoltageDev(uvoltageDev); 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<>(); List<AreaGeneralData> result = new ArrayList<>();
for (AreaGeneralData areaGeneralData : areaGeneralDatas) { for (AreaGeneralData areaGeneralData : areaGeneralDatas) {
@@ -1970,7 +1970,7 @@ public class UserUtil {
if (CollectionUtils.isEmpty(lineIndexs)) { if (CollectionUtils.isEmpty(lineIndexs)) {
continue; continue;
} }
List<IndexsCount> indexs = lineMapper.siftAllIndexs(lineIndexs, scale, manc, loadType); List<IndexsCount> indexs = lineMapper.siftAllIndexs(lineIndexs, scale, manc, loadType, devLocation);
if (CollectionUtils.isEmpty(indexs)) { if (CollectionUtils.isEmpty(indexs)) {
areaGeneralDataTmp.setMonitors(0); areaGeneralDataTmp.setMonitors(0);
} else { } else {

View File

@@ -53,7 +53,7 @@ public class DeviceStatusController {
*/ */
@PostMapping("deviceStatus") @PostMapping("deviceStatus")
@ResponseBody @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) { HttpServletRequest request,String startTime,String endTime) {
HttpResult result=PubUtils.initResult(TokenManager.getToken().getLoginName(),request,LogTypeEnum.BUSSINESS.toString(),0); HttpResult result=PubUtils.initResult(TokenManager.getToken().getLoginName(),request,LogTypeEnum.BUSSINESS.toString(),0);
DeviceGeneral data ; DeviceGeneral data ;
@@ -64,7 +64,7 @@ public class DeviceStatusController {
return result; return result;
} }
try { 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){ if(null==data){
result = PubUtils.assignmentResultLog(null, 500, "获取终端运行数据为空","查询稳态终端状态","成功",result); result = PubUtils.assignmentResultLog(null, 500, "获取终端运行数据为空","查询稳态终端状态","成功",result);
}else{ }else{

View File

@@ -9,6 +9,7 @@ import com.njcn.pojo.commons.DatePojo;
import com.njcn.pojo.commons.HttpResult; import com.njcn.pojo.commons.HttpResult;
import com.njcn.pojo.commons.device.DeviceGeneral; import com.njcn.pojo.commons.device.DeviceGeneral;
import com.njcn.pojo.commons.device.LineDetailInfo; import com.njcn.pojo.commons.device.LineDetailInfo;
import com.njcn.pojo.commons.runmanage.IntegrityAnalysisData;
import com.njcn.pojo.commons.runmanage.IntergralityData; import com.njcn.pojo.commons.runmanage.IntergralityData;
import com.njcn.pojo.configuration.*; import com.njcn.pojo.configuration.*;
import com.njcn.service.configuration.DeviceService; import com.njcn.service.configuration.DeviceService;
@@ -37,6 +38,7 @@ import java.io.InputStreamReader;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -115,7 +117,7 @@ public class IntegralityController {
*/ */
@PostMapping("getIntegrityData") @PostMapping("getIntegrityData")
@ResponseBody @ResponseBody
public HttpResult getIntegrityData(String startTime, String endTime, String area,Integer devflag,Integer powerId, HttpServletRequest request) { public HttpResult getIntegrityData(String startTime, String endTime, String area,Integer devflag,Integer powerId, Integer runFlag, HttpServletRequest request) {
HttpResult result = PubUtils.initResult(TokenManager.getToken().getLoginName(), request, LogTypeEnum.BUSSINESS.toString(), 0); HttpResult result = PubUtils.initResult(TokenManager.getToken().getLoginName(), request, LogTypeEnum.BUSSINESS.toString(), 0);
DatePojo datePojo; DatePojo datePojo;
datePojo = PubUtils.validateDate(startTime, endTime, "getIntegrityData"); datePojo = PubUtils.validateDate(startTime, endTime, "getIntegrityData");
@@ -125,7 +127,7 @@ public class IntegralityController {
} }
IntergralityData intergralityData; IntergralityData intergralityData;
try { try {
intergralityData = deviceService.getDataIntegralityTable(datePojo.getStartTime(), datePojo.getEndTime(), area,devflag,powerId); intergralityData = deviceService.getDataIntegralityTable(datePojo.getStartTime(), datePojo.getEndTime(), area,devflag,powerId,runFlag);
if (null == intergralityData) { if (null == intergralityData) {
result = PubUtils.assignmentResultLog(null, 500, "获取监测点数据完整性数据为空", "查询完整性列表", "成功", result); result = PubUtils.assignmentResultLog(null, 500, "获取监测点数据完整性数据为空", "查询完整性列表", "成功", result);
} else { } else {
@@ -150,7 +152,7 @@ public class IntegralityController {
@PostMapping("dataIntegrality") @PostMapping("dataIntegrality")
@ResponseBody @ResponseBody
public HttpResult dataIntegrality(String startTime, String endTime, String overview, String area, 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); HttpResult result = PubUtils.initResult(TokenManager.getToken().getLoginName(), request, LogTypeEnum.BUSSINESS.toString(), 0);
DatePojo datePojo; DatePojo datePojo;
datePojo = PubUtils.validateDate(startTime, endTime, "dataIntegrality"); datePojo = PubUtils.validateDate(startTime, endTime, "dataIntegrality");
@@ -160,7 +162,7 @@ public class IntegralityController {
} }
DeviceGeneral data; DeviceGeneral data;
try { 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) { if (null == data) {
result = PubUtils.assignmentResultLog(null, 500, "获取数据完整性数据为空", "查询数据完整性", "成功", result); result = PubUtils.assignmentResultLog(null, 500, "获取数据完整性数据为空", "查询数据完整性", "成功", result);
} else { } else {
@@ -327,4 +329,35 @@ public class IntegralityController {
} }
return result; return result;
} }
/**
* 数据完整性列表-》统计分析
*/
@PostMapping("statisticalAnalysis")
@ResponseBody
public HttpResult statisticalAnalysis(String startTime, String endTime, String area,Integer postType, Integer powerId, HttpServletRequest request) {
HttpResult result = PubUtils.initResult(TokenManager.getToken().getLoginName(), request, LogTypeEnum.BUSSINESS.toString(), 0);
DatePojo datePojo;
datePojo = PubUtils.validateDate(startTime, endTime, "statisticalAnalysis");
if (!StringUtils.isEmpty(datePojo.getMsg())) {
result = PubUtils.assignmentResult(null, 500, datePojo.getMsg());
return result;
}
try {
List<IntegrityAnalysisData> data = deviceService.getStatisticalAnalysis(startTime,endTime,area,powerId,postType);
if (null == data) {
result = PubUtils.assignmentResultLog(null, 500, "获取统计分析数据为空", "查看统计分析", "成功", result);
} else {
result = PubUtils.assignmentResultLog(data, 200, "获取统计分析数据成功", "查看统计分析", "成功", result);
}
} catch (Exception e) {
logger.error("查看统计分析数据异常,异常为:" + e.toString());
userLog.getLog("查看统计分析数据异常", "失败", PubUtils.getIpAddr(request), LogTypeEnum.BUSSINESS.toString(), 0);
result = PubUtils.assignmentResultLog(null, 500, "查看统计分析数据异常", "查看统计分析", "失败", result);
}
return result;
}
} }

View File

@@ -458,4 +458,12 @@ public class BusinessController {
return modelAndView; return modelAndView;
} }
/**
* 跳转按地市统计监测点运行状态、前置机统计
*/
@RequestMapping("statisticalAnalysis")
public String statisticalAnalysis() {
return "business/manage/statisticalAnalysis";
}
} }

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") @PostMapping("getHistoryTableData")
@ResponseBody @ResponseBody
public HttpResult getHistoryTableData(String startTime, String endTime, String lineId, String type, String index, String harmonicInHarms) { 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.setPltCount(overLimitInfo.getPltCount());
tempCondition.setPstCount(overLimitInfo.getPstCount()); tempCondition.setPstCount(overLimitInfo.getPstCount());
saveConditionData(tempCondition, key); 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++) { for (int i = 0; i < types.length; i++) {
HistoryTableData.data data; HistoryTableData.data data;
List<ReportTarget> list1; List<ReportTarget> list1;

View File

@@ -1,6 +1,5 @@
package com.pqs9000.controller.responsibility; package com.pqs9000.controller.responsibility;
import cn.hutool.json.JSONArray;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.njcn.pojo.commons.DatePojo; import com.njcn.pojo.commons.DatePojo;
import com.njcn.pojo.commons.HttpResult; import com.njcn.pojo.commons.HttpResult;
@@ -8,10 +7,8 @@ import com.njcn.pojo.commons.RedisDB;
import com.njcn.utils.PubUtils; import com.njcn.utils.PubUtils;
import com.njcn.utils.redis.JedisManager; import com.njcn.utils.redis.JedisManager;
import com.pqs9000.pojo.responsibility.AreaOverNoraml; import com.pqs9000.pojo.responsibility.AreaOverNoraml;
import com.pqs9000.pojo.responsibility.OverLimitMonitor;
import com.pqs9000.service.responsibility.AreaOverNoramlService; import com.pqs9000.service.responsibility.AreaOverNoramlService;
import com.pqs9000.util.ComplexHeadExcel; import com.pqs9000.util.ComplexHeadExcel;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +20,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@@ -54,7 +50,7 @@ public class ResponsibilityAreaOverNormalController {
@PostMapping("/overLimitData") @PostMapping("/overLimitData")
@ResponseBody @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; HttpResult result;
DatePojo datePojo; DatePojo datePojo;
datePojo = PubUtils.validateDate(startTime, endTime, "overLimitData"); datePojo = PubUtils.validateDate(startTime, endTime, "overLimitData");
@@ -64,7 +60,7 @@ public class ResponsibilityAreaOverNormalController {
} }
List<AreaOverNoraml> list; List<AreaOverNoraml> list;
try { try {
list = areaOverNoramlService.getOverLimitData(startTime,endTime,type,statistic,statFlag); list = areaOverNoramlService.getOverLimitData(startTime,endTime,type,statistic,statFlag,monitorNature);
result = PubUtils.assignmentResult(list, 200, "获取区域稳态指标超标成功"); result = PubUtils.assignmentResult(list, 200, "获取区域稳态指标超标成功");
} catch (Exception e) { } catch (Exception e) {
result = PubUtils.assignmentResult(null, 500, "获取区域稳态指标超标异常"); result = PubUtils.assignmentResult(null, 500, "获取区域稳态指标超标异常");

View File

@@ -11,6 +11,8 @@ import com.pqs9000.pojo.report.ReportValue;
public interface GetICurrentMapper { public interface GetICurrentMapper {
List<Map<String, Object>> getICurrent(@Param("condition") Condition condition, @Param("listValue") List<Integer> list); List<Map<String, Object>> getICurrent(@Param("condition") Condition condition, @Param("listValue") List<Integer> list);
List<Map<String, Object>> getICurrentNew(@Param("condition") Condition condition);
List<Map<String, Object>> getHICurrent(@Param("condition") Condition condition); List<Map<String, Object>> getHICurrent(@Param("condition") Condition condition);
ReportValue VsideValue(@Param("condition") Condition condition); ReportValue VsideValue(@Param("condition") Condition condition);

View File

@@ -57,5 +57,5 @@ public interface AreaOverNormalMapper {
*/ */
AreaOverNoraml getAvg(@Param("list") List<Integer> list, @Param("startTime") String startTime, @Param("endTime") String endTime); 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<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); 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> 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); List<TargetDetailDto> getData3(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("list") List<String> lineList);

View File

@@ -46,6 +46,9 @@ public class OverLimitMonitor {
//协议容量 //协议容量
private Float xycMp; private Float xycMp;
//监测装置安装位置
private String devLocation;
//超标天数 //超标天数
private int overLimitDay; private int overLimitDay;
@@ -750,6 +753,14 @@ public class OverLimitMonitor {
this.diffFlickerData = diffFlickerData; this.diffFlickerData = diffFlickerData;
} }
public String getDevLocation() {
return devLocation;
}
public void setDevLocation(String devLocation) {
this.devLocation = devLocation;
}
@Override @Override
public String toString() { public String toString() {
return "OverLimitMonitor{" + return "OverLimitMonitor{" +
@@ -766,6 +777,7 @@ public class OverLimitMonitor {
", dlcMp=" + dlcMp + ", dlcMp=" + dlcMp +
", devcMp=" + devcMp + ", devcMp=" + devcMp +
", xycMp=" + xycMp + ", xycMp=" + xycMp +
", devLocation='" + devLocation + '\'' +
", overLimitDay=" + overLimitDay + ", overLimitDay=" + overLimitDay +
", overVoltageDeviationDay=" + overVoltageDeviationDay + ", overVoltageDeviationDay=" + overVoltageDeviationDay +
", maxVoltageDeviationData=" + maxVoltageDeviationData + ", maxVoltageDeviationData=" + maxVoltageDeviationData +

View File

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

View File

@@ -8,5 +8,5 @@ import java.util.List;
public interface AreaOverNoramlService { 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

@@ -32,7 +32,8 @@ public class GetICurrentServiceImpl implements GetICurrentService {
} }
//获取电流幅值,包含基波 //获取电流幅值,包含基波
List<Map<String, Object>> listResult = getICurrentMapper.getICurrent(condition, listValue); // List<Map<String, Object>> listResult = getICurrentMapper.getICurrent(condition, listValue);
List<Map<String, Object>> listResult = getICurrentMapper.getICurrentNew(condition);
if (0 == listResult.size() || null == listResult.get(0)) { if (0 == listResult.size() || null == listResult.get(0)) {
for (int i = 0; i < 50; i++) { for (int i = 0; i < 50; i++) {

View File

@@ -14,6 +14,7 @@ import com.pqs9000.pojo.responsibility.OverLimitByDays;
import com.pqs9000.service.responsibility.AreaOverNoramlService; import com.pqs9000.service.responsibility.AreaOverNoramlService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.awt.geom.Arc2D; import java.awt.geom.Arc2D;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -45,7 +46,7 @@ public class AreaOverNormalServiceImpl implements AreaOverNoramlService {
@Override @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> allMonitors = new ArrayList<>();
List<Integer> normalMonitors = new ArrayList<>(); List<Integer> normalMonitors = new ArrayList<>();
List<Integer> monitor = new ArrayList<>(); List<Integer> monitor = new ArrayList<>();
@@ -64,6 +65,19 @@ public class AreaOverNormalServiceImpl implements AreaOverNoramlService {
//排除不需要计算的监测点 //排除不需要计算的监测点
ag =userUtil.getAreaDataByStatFlagAll(deptsIndex); 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 =""; String typename ="";
Theme theme = new Theme(); Theme theme = new Theme();
theme.setState(1); 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 { public void addHarmonicDetail(String startTime, String endTime, List<String> lineList) throws Exception {
List<DataHarmonicDetail> result = new ArrayList<>(); List<DataHarmonicDetail> result = new ArrayList<>();
/**
* 获取电压偏差的最大幅值绝对值、限值、差值
*/
List<TargetDetailDto> list0 = overLimitMonitorMapper.getData0(startTime,endTime,lineList);
/** /**
* 获取电压偏差、电压总谐波畸变率、三相电压不平衡度、频率偏差 的 最大幅值、限值、差值 * 获取电压偏差、电压总谐波畸变率、三相电压不平衡度、频率偏差 的 最大幅值、限值、差值
*/ */
@@ -257,17 +261,26 @@ public class OverLimitMonitorServiceImpl implements OverLimitMonitorService {
//组装数据 //组装数据
//type数据类型 //type数据类型
//0:电压偏差 1:谐波电流 2:谐波电压 3:电压总谐波畸变率 4:谐波电压含有率 5:频率偏差 6:间谐波电压含有率 7:三相电压不平衡度 8:负序电流 9:闪变 //0:电压偏差 1:谐波电流 2:谐波电压 3:电压总谐波畸变率 4:谐波电压含有率 5:频率偏差 6:间谐波电压含有率 7:三相电压不平衡度 8:负序电流 9:闪变
if (CollUtil.isNotEmpty(list1)){ if (CollUtil.isNotEmpty(list0)){
list1.forEach(item->{ list0.forEach(item->{
DataHarmonicDetail pojo = new DataHarmonicDetail(); DataHarmonicDetail pojo = new DataHarmonicDetail();
pojo.setTimeId(date); pojo.setTimeId(date);
pojo.setLineId(item.getMonitorId()); pojo.setLineId(item.getMonitorId());
pojo.setTargetType(0); pojo.setTargetType(0);
pojo.setMaxData(item.getMaxVoltageDeviationData()); if (Math.abs(item.getMaxVoltageDeviationData()) >= Math.abs(item.getMinVoltageDeviationData())) {
pojo.setLimitData(item.getLimitVoltageDeviationData()); pojo.setMaxData(item.getMaxVoltageDeviationData());
pojo.setDiffData(item.getDiffVoltageDeviationData()); 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); result.add(pojo);
});
}
if (CollUtil.isNotEmpty(list1)){
list1.forEach(item->{
DataHarmonicDetail pojo2 = new DataHarmonicDetail(); DataHarmonicDetail pojo2 = new DataHarmonicDetail();
pojo2.setTimeId(date); pojo2.setTimeId(date);
pojo2.setLineId(item.getMonitorId()); pojo2.setLineId(item.getMonitorId());
@@ -363,7 +376,7 @@ public class OverLimitMonitorServiceImpl implements OverLimitMonitorService {
} }
if (CollUtil.isNotEmpty(list11)){ if (CollUtil.isNotEmpty(list11)){
list9.forEach(item->{ list11.forEach(item->{
DataHarmonicDetail pojo = new DataHarmonicDetail(); DataHarmonicDetail pojo = new DataHarmonicDetail();
pojo.setTimeId(date); pojo.setTimeId(date);
pojo.setTargetType(6); pojo.setTargetType(6);

View File

@@ -709,7 +709,7 @@ public class ComplexHeadExcel{
xssfSheet.addMergedRegion(region12); xssfSheet.addMergedRegion(region12);
CellRangeAddress region13 = new CellRangeAddress(0, 2, 13, 13); CellRangeAddress region13 = new CellRangeAddress(0, 2, 13, 13);
xssfSheet.addMergedRegion(region13); xssfSheet.addMergedRegion(region13);
CellRangeAddress region14 = new CellRangeAddress(0, 0, 14, 70); CellRangeAddress region14 = new CellRangeAddress(0, 0, 14, 69);
xssfSheet.addMergedRegion(region14); xssfSheet.addMergedRegion(region14);
//电压变差 //电压变差
CellRangeAddress region15 = new CellRangeAddress(1, 1, 14, 17); CellRangeAddress region15 = new CellRangeAddress(1, 1, 14, 17);
@@ -748,8 +748,11 @@ public class ComplexHeadExcel{
CellRangeAddress region26 = new CellRangeAddress(1, 1, 62, 69); CellRangeAddress region26 = new CellRangeAddress(1, 1, 62, 69);
xssfSheet.addMergedRegion(region26); xssfSheet.addMergedRegion(region26);
//监测点编号 //监测点编号
CellRangeAddress region27 = new CellRangeAddress(1, 2, 70, 70); CellRangeAddress region27 = new CellRangeAddress(0, 2, 70, 70);
xssfSheet.addMergedRegion(region27); xssfSheet.addMergedRegion(region27);
//监测装置安装位置
CellRangeAddress region28 = new CellRangeAddress(0, 2, 71, 71);
xssfSheet.addMergedRegion(region28);
//设置单元格大小 //设置单元格大小
xssfSheet.setColumnWidth(0, 2000); xssfSheet.setColumnWidth(0, 2000);
@@ -823,6 +826,7 @@ public class ComplexHeadExcel{
xssfSheet.setColumnWidth(68, 2500); xssfSheet.setColumnWidth(68, 2500);
xssfSheet.setColumnWidth(69, 2500); xssfSheet.setColumnWidth(69, 2500);
xssfSheet.setColumnWidth(70, 2500); xssfSheet.setColumnWidth(70, 2500);
xssfSheet.setColumnWidth(71, 2500);
//一级表头 //一级表头
cell = row.createCell(0); cell = row.createCell(0);
@@ -885,6 +889,14 @@ public class ComplexHeadExcel{
cell.setCellValue("各项指标超标明细"); cell.setCellValue("各项指标超标明细");
cell.setCellStyle(getStyle(1)); cell.setCellStyle(getStyle(1));
cell = row.createCell(70);
cell.setCellValue("监测点编号");
cell.setCellStyle(getStyle(1));
cell = row.createCell(71);
cell.setCellValue("监测装置安装位置");
cell.setCellStyle(getStyle(1));
//二级表头 //二级表头
cell = row2.createCell(14); cell = row2.createCell(14);
cell.setCellValue("电压偏差"); cell.setCellValue("电压偏差");
@@ -934,10 +946,6 @@ public class ComplexHeadExcel{
cell.setCellValue("各次谐波电流幅值"); cell.setCellValue("各次谐波电流幅值");
cell.setCellStyle(getStyle(1)); cell.setCellStyle(getStyle(1));
cell = row2.createCell(70);
cell.setCellValue("监测点编号");
cell.setCellStyle(getStyle(1));
//三级表头 //三级表头
cell = row3.createCell(14); cell = row3.createCell(14);
cell.setCellValue("超标天数"); cell.setCellValue("超标天数");
@@ -1292,6 +1300,10 @@ public class ComplexHeadExcel{
cell = row.createCell(70); cell = row.createCell(70);
cell.setCellValue(list.get(i).getMonitorNumber()); cell.setCellValue(list.get(i).getMonitorNumber());
cell = row.createCell(71);
cell.setCellValue(list.get(i).getDevLocation());
xssfWorkbook.write(os); xssfWorkbook.write(os);
} }

View File

@@ -181,6 +181,24 @@
AND T2.MONITOR_ID IS NOT NULL AND T2.MONITOR_ID IS NOT NULL
</select> </select>
<select id="getAllGWLines" resultType="Integer">
SELECT
T2.LINE_INDEX
FROM
PQ_LINE t1,
PQ_LINEDETAIL t2,
PQ_DEVICE t3
WHERE
T1.LINE_INDEX = T2.LINE_INDEX
AND T1.DEV_INDEX=T3.DEV_INDEX
AND T1.LINE_INDEX IN
<foreach collection="list" item="item" open="(" close=")"
separator=",">
#{item}
</foreach>
AND T2.MONITOR_ID IS NOT NULL
</select>
<select id="getLineByEventDetailIndex" resultType="line"> <select id="getLineByEventDetailIndex" resultType="line">
select t1.* select t1.*
from PQ_LINE t1, from PQ_LINE t1,
@@ -776,6 +794,9 @@
and b.loadtype = #{loadtype} and b.loadtype = #{loadtype}
</if> </if>
</if> </if>
<if test="monitorNature != null">
and b.POWERID = #{monitorNature}
</if>
and a.line_index in and a.line_index in
<foreach collection="list" item="item" separator="," open="(" <foreach collection="list" item="item" separator="," open="("
close=")"> close=")">
@@ -807,6 +828,9 @@
and b.loadtype = #{loadtype} and b.loadtype = #{loadtype}
</if> </if>
</if> </if>
<if test="devLocation != null and devLocation != ''">
and d.DEV_LOCATION = #{devLocation}
</if>
and a.line_index in and a.line_index in
<foreach collection="list" item="item" separator="," open="(" <foreach collection="list" item="item" separator="," open="("
close=")"> close=")">

View File

@@ -83,7 +83,8 @@
T2.NAME lineName, T2.NAME lineName,
T2.line_index lineId, T2.line_index lineId,
T1.integrity integrity, T1.integrity integrity,
T9.dic_name devType T9.dic_name devType,
T10.NODE_NAME frontDev
FROM FROM
( (
SELECT SELECT
@@ -109,7 +110,8 @@
PQ_GDINFORMATION T6, PQ_GDINFORMATION T6,
PQ_SUBSTATION T7, PQ_SUBSTATION T7,
PQS_DICDATA T8, PQS_DICDATA T8,
PQS_DICDATA T9 PQS_DICDATA T9,
NODEINFORMATION T10
WHERE WHERE
T1.LINE_INDEX = T2.LINE_INDEX T1.LINE_INDEX = T2.LINE_INDEX
AND T2.DEV_INDEX = T3.DEV_INDEX AND T2.DEV_INDEX = T3.DEV_INDEX
@@ -119,6 +121,7 @@
AND T2.SUB_INDEX=T7.SUB_INDEX AND T2.SUB_INDEX=T7.SUB_INDEX
AND T2.SCALE=T8.DIC_INDEX AND T2.SCALE=T8.DIC_INDEX
AND T9.DIC_INDEX = T3.DEVTYPE AND T9.DIC_INDEX = T3.DEVTYPE
AND T3.NODE_INDEX = T10.NODE_INDEX
</select> </select>
<select id="selectGWIntegrityData" resultType="intergralityTable" > <select id="selectGWIntegrityData" resultType="intergralityTable" >
@@ -136,7 +139,8 @@
T2.NAME lineName, T2.NAME lineName,
T2.line_index lineId, T2.line_index lineId,
T1.integrity integrity, T1.integrity integrity,
T9.dic_name devType T9.dic_name devType,
T10.NODE_NAME frontDev
FROM FROM
( (
SELECT SELECT
@@ -162,7 +166,8 @@
PQ_GDINFORMATION T6, PQ_GDINFORMATION T6,
PQ_SUBSTATION T7, PQ_SUBSTATION T7,
PQS_DICDATA T8, PQS_DICDATA T8,
PQS_DICDATA T9 PQS_DICDATA T9,
NODEINFORMATION T10
WHERE WHERE
T1.LINE_INDEX = T2.LINE_INDEX T1.LINE_INDEX = T2.LINE_INDEX
AND T2.DEV_INDEX = T3.DEV_INDEX AND T2.DEV_INDEX = T3.DEV_INDEX
@@ -172,6 +177,33 @@
AND T2.SUB_INDEX=T7.SUB_INDEX AND T2.SUB_INDEX=T7.SUB_INDEX
AND T2.SCALE=T8.DIC_INDEX AND T2.SCALE=T8.DIC_INDEX
AND T9.DIC_INDEX = T3.DEVTYPE AND T9.DIC_INDEX = T3.DEVTYPE
AND T3.NODE_INDEX = T10.NODE_INDEX
</select> </select>
<select id="getLineInfo" resultType="com.njcn.pojo.commons.device.LineInfo">
SELECT
PL.LINE_INDEX AS line_index,
PL.NAME AS lineName,
n.NODE_NAME AS devName,
PL.STATUS AS status
FROM
PQ_LINE PL
JOIN PQ_DEVICE pd ON PL.DEV_INDEX = pd.DEV_INDEX
JOIN NODEINFORMATION n ON pd.NODE_INDEX = n.NODE_INDEX
JOIN PQ_LINEDETAIL pl2 ON PL.LINE_INDEX = pl2.LINE_INDEX
<where>
PL.LINE_INDEX IN <foreach collection="list" item="item" open="(" close=")" separator=",">#{item}</foreach>
<if test="postType != null and postType != ' '">
<if test="postType == 0">
AND pl2.MONITOR_ID IS NOT NULL
</if>
<if test="postType == 1">
AND pl2.MONITOR_ID IS NULL
</if>
</if>
<if test="powerId != null and powerId != ' '">
AND pl2.POWERID = #{powerId}
</if>
</where>
</select>
</mapper> </mapper>

View File

@@ -412,32 +412,35 @@
LEFT JOIN LEFT JOIN
( (
SELECT SELECT
MYINDEX line_index, B.MYINDEX,
ROUND((SUM(ALLTIME * TInterval) - SUM(UBalance_OverTime * TInterval) ) / SUM(ALLTIME * TInterval), 4 ) * 100 uBalance, CASE WHEN SUM(B.allTime) = 0 THEN 0 else ROUND((SUM(B.allTime) - SUM(B.UBALANCE)) / SUM(B.allTime), 4) * 100 end uBalance,
ROUND( CASE WHEN SUM(B.allTime) = 0 THEN 0 else ROUND((SUM(B.allTime) - SUM(B.iNeg))/ SUM(B.allTime), 4) * 100 end iNeg
(
CASE
WHEN SUM(I_NEG_OVERTIME * TInterval) IS NULL THEN
1 ELSE ( SUM(ALLTIME * TInterval) - SUM(I_NEG_OVERTIME * TInterval) ) / SUM(ALLTIME * TInterval)
END
),
4
) * 100 iNeg
FROM FROM
LIMIT_RATE (
LEFT JOIN SELECT
PQ_LINEDETAIL ON MYINDEX = LINE_INDEX lr.MYINDEX,
WHERE lr.TIMEID,
timeid between #{startTime} and #{endTime} MAX(lr.allTime * pl.TINTERVAL) allTime,
and myindex in MAX(lr.UBALANCE_OVERTIME * pl.TINTERVAL) UBALANCE,
<foreach collection="list" item="item" open="(" close=")" separator=","> MAX(lr.I_NEG_OVERTIME * pl.TINTERVAL) iNeg
#{item} FROM
</foreach> LIMIT_RATE lr
AND PHASIC_TYPE IN ('A', 'B', 'C') LEFT JOIN
GROUP BY MYINDEX PQ_LINEDETAIL pl ON
lr.MYINDEX = pl.LINE_INDEX
WHERE
timeid between #{startTime} and #{endTime}
and myindex in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and lr.PHASIC_TYPE IN ('A', 'B', 'C')
GROUP BY lr.MYINDEX, lr.TIMEID
) B
GROUP BY B.MYINDEX
)B )B
ON ON A.line_index = B.MYINDEX
A.line_index = B.line_index
) T1, ) T1,
PQ_LINE T2, PQ_LINE T2,
PQ_DEVICE T3, PQ_DEVICE T3,
@@ -581,7 +584,6 @@
left join left join
( (
SELECT SELECT
SUM(B.tAllTime) tAllTime,
SUM(B.UBALANCE) UBALANCE, SUM(B.UBALANCE) UBALANCE,
DECODE( SUM(B.iNeg), NULL, 0, SUM(B.iNeg) ) iNeg DECODE( SUM(B.iNeg), NULL, 0, SUM(B.iNeg) ) iNeg
FROM FROM
@@ -589,9 +591,8 @@
SELECT SELECT
lr.MYINDEX, lr.MYINDEX,
lr.TIMEID, lr.TIMEID,
SUM(lr.ALLTIME * pl.TINTERVAL) tAllTime, MAX(lr.UBALANCE_OVERTIME * pl.TINTERVAL) UBALANCE,
SUM(lr.UBALANCE_OVERTIME * pl.TINTERVAL) UBALANCE, MAX(lr.I_NEG_OVERTIME * pl.TINTERVAL) iNeg
SUM(lr.I_NEG_OVERTIME * pl.TINTERVAL) iNeg
FROM FROM
LIMIT_RATE lr LIMIT_RATE lr
LEFT JOIN LEFT JOIN

View File

@@ -3,107 +3,107 @@
<mapper namespace="com.pqs9000.mapper.report.GetICurrentMapper"> <mapper namespace="com.pqs9000.mapper.report.GetICurrentMapper">
<select id="getICurrent" resultType="java.util.HashMap"> <select id="getICurrent" resultType="java.util.HashMap">
select phasic_type PHASETYPE, select phasic_type PHASETYPE,
max(I_1_MAX) I_1_MAX,min(I_1_MIN) I_1_MIN,round(avg(I_1) ,2) I_1,max(case when I1CP95 =#{condition.count} then I_1 else null end) I_1_CP95, max(I_1_MAX) I_1_MAX,min(I_1_MIN) I_1_MIN,round(avg(I_1) ,2) I_1,max(case when I1CP95 =#{condition.count} then I_1_CP95 else null end) I_1_CP95,
max(I_2_MAX) I_2_MAX,min(I_2_MIN) I_2_MIN,round(avg(I_2) ,2) I_2,max(case when I2CP95 =#{condition.count} then I_2 else null end) I_2_CP95, max(I_2_MAX) I_2_MAX,min(I_2_MIN) I_2_MIN,round(avg(I_2) ,2) I_2,max(case when I2CP95 =#{condition.count} then I_2_CP95 else null end) I_2_CP95,
max(I_3_MAX) I_3_MAX,min(I_3_MIN) I_3_MIN,round(avg(I_3) ,2) I_3,max(case when I3CP95 =#{condition.count} then I_3 else null end) I_3_CP95, max(I_3_MAX) I_3_MAX,min(I_3_MIN) I_3_MIN,round(avg(I_3) ,2) I_3,max(case when I3CP95 =#{condition.count} then I_3_CP95 else null end) I_3_CP95,
max(I_4_MAX) I_4_MAX,min(I_4_MIN) I_4_MIN,round(avg(I_4) ,2) I_4,max(case when I4CP95 =#{condition.count} then I_4 else null end) I_4_CP95, max(I_4_MAX) I_4_MAX,min(I_4_MIN) I_4_MIN,round(avg(I_4) ,2) I_4,max(case when I4CP95 =#{condition.count} then I_4_CP95 else null end) I_4_CP95,
max(I_5_MAX) I_5_MAX,min(I_5_MIN) I_5_MIN,round(avg(I_5) ,2) I_5,max(case when I5CP95 =#{condition.count} then I_5 else null end) I_5_CP95, max(I_5_MAX) I_5_MAX,min(I_5_MIN) I_5_MIN,round(avg(I_5) ,2) I_5,max(case when I5CP95 =#{condition.count} then I_5_CP95 else null end) I_5_CP95,
max(I_6_MAX) I_6_MAX,min(I_6_MIN) I_6_MIN,round(avg(I_6) ,2) I_6,max(case when I6CP95 =#{condition.count} then I_6 else null end) I_6_CP95, max(I_6_MAX) I_6_MAX,min(I_6_MIN) I_6_MIN,round(avg(I_6) ,2) I_6,max(case when I6CP95 =#{condition.count} then I_6_CP95 else null end) I_6_CP95,
max(I_7_MAX) I_7_MAX,min(I_7_MIN) I_7_MIN,round(avg(I_7) ,2) I_7,max(case when I7CP95 =#{condition.count} then I_7 else null end) I_7_CP95, max(I_7_MAX) I_7_MAX,min(I_7_MIN) I_7_MIN,round(avg(I_7) ,2) I_7,max(case when I7CP95 =#{condition.count} then I_7_CP95 else null end) I_7_CP95,
max(I_8_MAX) I_8_MAX,min(I_8_MIN) I_8_MIN,round(avg(I_8) ,2) I_8,max(case when I8CP95 =#{condition.count} then I_8 else null end) I_8_CP95, max(I_8_MAX) I_8_MAX,min(I_8_MIN) I_8_MIN,round(avg(I_8) ,2) I_8,max(case when I8CP95 =#{condition.count} then I_8_CP95 else null end) I_8_CP95,
max(I_9_MAX) I_9_MAX,min(I_9_MIN) I_9_MIN,round(avg(I_9) ,2) I_9,max(case when I9CP95 =#{condition.count} then I_9 else null end) I_9_CP95, max(I_9_MAX) I_9_MAX,min(I_9_MIN) I_9_MIN,round(avg(I_9) ,2) I_9,max(case when I9CP95 =#{condition.count} then I_9_CP95 else null end) I_9_CP95,
max(I_10_MAX) I_10_MAX,min(I_10_MIN) I_10_MIN,round(avg(I_10) ,2) I_10,max(case when I10CP95 =#{condition.count} then I_10 else null end) I_10_CP95, max(I_10_MAX) I_10_MAX,min(I_10_MIN) I_10_MIN,round(avg(I_10) ,2) I_10,max(case when I10CP95 =#{condition.count} then I_10_CP95 else null end) I_10_CP95,
max(I_11_MAX) I_11_MAX,min(I_11_MIN) I_11_MIN,round(avg(I_11) ,2) I_11,max(case when I11CP95 =#{condition.count} then I_11 else null end) I_11_CP95, max(I_11_MAX) I_11_MAX,min(I_11_MIN) I_11_MIN,round(avg(I_11) ,2) I_11,max(case when I11CP95 =#{condition.count} then I_11_CP95 else null end) I_11_CP95,
max(I_12_MAX) I_12_MAX,min(I_12_MIN) I_12_MIN,round(avg(I_12) ,2) I_12,max(case when I12CP95 =#{condition.count} then I_12 else null end) I_12_CP95, max(I_12_MAX) I_12_MAX,min(I_12_MIN) I_12_MIN,round(avg(I_12) ,2) I_12,max(case when I12CP95 =#{condition.count} then I_12_CP95 else null end) I_12_CP95,
max(I_13_MAX) I_13_MAX,min(I_13_MIN) I_13_MIN,round(avg(I_13) ,2) I_13,max(case when I13CP95 =#{condition.count} then I_13 else null end) I_13_CP95, max(I_13_MAX) I_13_MAX,min(I_13_MIN) I_13_MIN,round(avg(I_13) ,2) I_13,max(case when I13CP95 =#{condition.count} then I_13_CP95 else null end) I_13_CP95,
max(I_14_MAX) I_14_MAX,min(I_14_MIN) I_14_MIN,round(avg(I_14) ,2) I_14,max(case when I14CP95 =#{condition.count} then I_14 else null end) I_14_CP95, max(I_14_MAX) I_14_MAX,min(I_14_MIN) I_14_MIN,round(avg(I_14) ,2) I_14,max(case when I14CP95 =#{condition.count} then I_14_CP95 else null end) I_14_CP95,
max(I_15_MAX) I_15_MAX,min(I_15_MIN) I_15_MIN,round(avg(I_15) ,2) I_15,max(case when I15CP95 =#{condition.count} then I_15 else null end) I_15_CP95, max(I_15_MAX) I_15_MAX,min(I_15_MIN) I_15_MIN,round(avg(I_15) ,2) I_15,max(case when I15CP95 =#{condition.count} then I_15_CP95 else null end) I_15_CP95,
max(I_16_MAX) I_16_MAX,min(I_16_MIN) I_16_MIN,round(avg(I_16) ,2) I_16,max(case when I16CP95 =#{condition.count} then I_16 else null end) I_16_CP95, max(I_16_MAX) I_16_MAX,min(I_16_MIN) I_16_MIN,round(avg(I_16) ,2) I_16,max(case when I16CP95 =#{condition.count} then I_16_CP95 else null end) I_16_CP95,
max(I_17_MAX) I_17_MAX,min(I_17_MIN) I_17_MIN,round(avg(I_17) ,2) I_17,max(case when I17CP95 =#{condition.count} then I_17 else null end) I_17_CP95, max(I_17_MAX) I_17_MAX,min(I_17_MIN) I_17_MIN,round(avg(I_17) ,2) I_17,max(case when I17CP95 =#{condition.count} then I_17_CP95 else null end) I_17_CP95,
max(I_18_MAX) I_18_MAX,min(I_18_MIN) I_18_MIN,round(avg(I_18) ,2) I_18,max(case when I18CP95 =#{condition.count} then I_18 else null end) I_18_CP95, max(I_18_MAX) I_18_MAX,min(I_18_MIN) I_18_MIN,round(avg(I_18) ,2) I_18,max(case when I18CP95 =#{condition.count} then I_18_CP95 else null end) I_18_CP95,
max(I_19_MAX) I_19_MAX,min(I_19_MIN) I_19_MIN,round(avg(I_19) ,2) I_19,max(case when I19CP95 =#{condition.count} then I_19 else null end) I_19_CP95, max(I_19_MAX) I_19_MAX,min(I_19_MIN) I_19_MIN,round(avg(I_19) ,2) I_19,max(case when I19CP95 =#{condition.count} then I_19_CP95 else null end) I_19_CP95,
max(I_20_MAX) I_20_MAX,min(I_20_MIN) I_20_MIN,round(avg(I_20) ,2) I_20,max(case when I20CP95 =#{condition.count} then I_20 else null end) I_20_CP95, max(I_20_MAX) I_20_MAX,min(I_20_MIN) I_20_MIN,round(avg(I_20) ,2) I_20,max(case when I20CP95 =#{condition.count} then I_20_CP95 else null end) I_20_CP95,
max(I_21_MAX) I_21_MAX,min(I_21_MIN) I_21_MIN,round(avg(I_21) ,2) I_21,max(case when I21CP95 =#{condition.count} then I_21 else null end) I_21_CP95, max(I_21_MAX) I_21_MAX,min(I_21_MIN) I_21_MIN,round(avg(I_21) ,2) I_21,max(case when I21CP95 =#{condition.count} then I_21_CP95 else null end) I_21_CP95,
max(I_22_MAX) I_22_MAX,min(I_22_MIN) I_22_MIN,round(avg(I_22) ,2) I_22,max(case when I22CP95 =#{condition.count} then I_22 else null end) I_22_CP95, max(I_22_MAX) I_22_MAX,min(I_22_MIN) I_22_MIN,round(avg(I_22) ,2) I_22,max(case when I22CP95 =#{condition.count} then I_22_CP95 else null end) I_22_CP95,
max(I_23_MAX) I_23_MAX,min(I_23_MIN) I_23_MIN,round(avg(I_23) ,2) I_23,max(case when I23CP95 =#{condition.count} then I_23 else null end) I_23_CP95, max(I_23_MAX) I_23_MAX,min(I_23_MIN) I_23_MIN,round(avg(I_23) ,2) I_23,max(case when I23CP95 =#{condition.count} then I_23_CP95 else null end) I_23_CP95,
max(I_24_MAX) I_24_MAX,min(I_24_MIN) I_24_MIN,round(avg(I_24) ,2) I_24,max(case when I24CP95 =#{condition.count} then I_24 else null end) I_24_CP95, max(I_24_MAX) I_24_MAX,min(I_24_MIN) I_24_MIN,round(avg(I_24) ,2) I_24,max(case when I24CP95 =#{condition.count} then I_24_CP95 else null end) I_24_CP95,
max(I_25_MAX) I_25_MAX,min(I_25_MIN) I_25_MIN,round(avg(I_25) ,2) I_25,max(case when I25CP95 =#{condition.count} then I_25 else null end) I_25_CP95, max(I_25_MAX) I_25_MAX,min(I_25_MIN) I_25_MIN,round(avg(I_25) ,2) I_25,max(case when I25CP95 =#{condition.count} then I_25_CP95 else null end) I_25_CP95,
max(I_26_MAX) I_26_MAX,min(I_26_MIN) I_26_MIN,round(avg(I_26) ,2) I_26,max(case when I26CP95 =#{condition.count} then I_26 else null end) I_26_CP95, max(I_26_MAX) I_26_MAX,min(I_26_MIN) I_26_MIN,round(avg(I_26) ,2) I_26,max(case when I26CP95 =#{condition.count} then I_26_CP95 else null end) I_26_CP95,
max(I_27_MAX) I_27_MAX,min(I_27_MIN) I_27_MIN,round(avg(I_27) ,2) I_27,max(case when I27CP95 =#{condition.count} then I_27 else null end) I_27_CP95, max(I_27_MAX) I_27_MAX,min(I_27_MIN) I_27_MIN,round(avg(I_27) ,2) I_27,max(case when I27CP95 =#{condition.count} then I_27_CP95 else null end) I_27_CP95,
max(I_28_MAX) I_28_MAX,min(I_28_MIN) I_28_MIN,round(avg(I_28) ,2) I_28,max(case when I28CP95 =#{condition.count} then I_28 else null end) I_28_CP95, max(I_28_MAX) I_28_MAX,min(I_28_MIN) I_28_MIN,round(avg(I_28) ,2) I_28,max(case when I28CP95 =#{condition.count} then I_28_CP95 else null end) I_28_CP95,
max(I_29_MAX) I_29_MAX,min(I_29_MIN) I_29_MIN,round(avg(I_29) ,2) I_29,max(case when I29CP95 =#{condition.count} then I_29 else null end) I_29_CP95, max(I_29_MAX) I_29_MAX,min(I_29_MIN) I_29_MIN,round(avg(I_29) ,2) I_29,max(case when I29CP95 =#{condition.count} then I_29_CP95 else null end) I_29_CP95,
max(I_30_MAX) I_30_MAX,min(I_30_MIN) I_30_MIN,round(avg(I_30) ,2) I_30,max(case when I30CP95 =#{condition.count} then I_30 else null end) I_30_CP95, max(I_30_MAX) I_30_MAX,min(I_30_MIN) I_30_MIN,round(avg(I_30) ,2) I_30,max(case when I30CP95 =#{condition.count} then I_30_CP95 else null end) I_30_CP95,
max(I_31_MAX) I_31_MAX,min(I_31_MIN) I_31_MIN,round(avg(I_31) ,2) I_31,max(case when I31CP95 =#{condition.count} then I_31 else null end) I_31_CP95, max(I_31_MAX) I_31_MAX,min(I_31_MIN) I_31_MIN,round(avg(I_31) ,2) I_31,max(case when I31CP95 =#{condition.count} then I_31_CP95 else null end) I_31_CP95,
max(I_32_MAX) I_32_MAX,min(I_32_MIN) I_32_MIN,round(avg(I_32) ,2) I_32,max(case when I32CP95 =#{condition.count} then I_32 else null end) I_32_CP95, max(I_32_MAX) I_32_MAX,min(I_32_MIN) I_32_MIN,round(avg(I_32) ,2) I_32,max(case when I32CP95 =#{condition.count} then I_32_CP95 else null end) I_32_CP95,
max(I_33_MAX) I_33_MAX,min(I_33_MIN) I_33_MIN,round(avg(I_33) ,2) I_33,max(case when I33CP95 =#{condition.count} then I_33 else null end) I_33_CP95, max(I_33_MAX) I_33_MAX,min(I_33_MIN) I_33_MIN,round(avg(I_33) ,2) I_33,max(case when I33CP95 =#{condition.count} then I_33_CP95 else null end) I_33_CP95,
max(I_34_MAX) I_34_MAX,min(I_34_MIN) I_34_MIN,round(avg(I_34) ,2) I_34,max(case when I34CP95 =#{condition.count} then I_34 else null end) I_34_CP95, max(I_34_MAX) I_34_MAX,min(I_34_MIN) I_34_MIN,round(avg(I_34) ,2) I_34,max(case when I34CP95 =#{condition.count} then I_34_CP95 else null end) I_34_CP95,
max(I_35_MAX) I_35_MAX,min(I_35_MIN) I_35_MIN,round(avg(I_35) ,2) I_35,max(case when I35CP95 =#{condition.count} then I_35 else null end) I_35_CP95, max(I_35_MAX) I_35_MAX,min(I_35_MIN) I_35_MIN,round(avg(I_35) ,2) I_35,max(case when I35CP95 =#{condition.count} then I_35_CP95 else null end) I_35_CP95,
max(I_36_MAX) I_36_MAX,min(I_36_MIN) I_36_MIN,round(avg(I_36) ,2) I_36,max(case when I36CP95 =#{condition.count} then I_36 else null end) I_36_CP95, max(I_36_MAX) I_36_MAX,min(I_36_MIN) I_36_MIN,round(avg(I_36) ,2) I_36,max(case when I36CP95 =#{condition.count} then I_36_CP95 else null end) I_36_CP95,
max(I_37_MAX) I_37_MAX,min(I_37_MIN) I_37_MIN,round(avg(I_37) ,2) I_37,max(case when I37CP95 =#{condition.count} then I_37 else null end) I_37_CP95, max(I_37_MAX) I_37_MAX,min(I_37_MIN) I_37_MIN,round(avg(I_37) ,2) I_37,max(case when I37CP95 =#{condition.count} then I_37_CP95 else null end) I_37_CP95,
max(I_38_MAX) I_38_MAX,min(I_38_MIN) I_38_MIN,round(avg(I_38) ,2) I_38,max(case when I38CP95 =#{condition.count} then I_38 else null end) I_38_CP95, max(I_38_MAX) I_38_MAX,min(I_38_MIN) I_38_MIN,round(avg(I_38) ,2) I_38,max(case when I38CP95 =#{condition.count} then I_38_CP95 else null end) I_38_CP95,
max(I_39_MAX) I_39_MAX,min(I_39_MIN) I_39_MIN,round(avg(I_39) ,2) I_39,max(case when I39CP95 =#{condition.count} then I_39 else null end) I_39_CP95, max(I_39_MAX) I_39_MAX,min(I_39_MIN) I_39_MIN,round(avg(I_39) ,2) I_39,max(case when I39CP95 =#{condition.count} then I_39_CP95 else null end) I_39_CP95,
max(I_40_MAX) I_40_MAX,min(I_40_MIN) I_40_MIN,round(avg(I_40) ,2) I_40,max(case when I40CP95 =#{condition.count} then I_40 else null end) I_40_CP95, max(I_40_MAX) I_40_MAX,min(I_40_MIN) I_40_MIN,round(avg(I_40) ,2) I_40,max(case when I40CP95 =#{condition.count} then I_40_CP95 else null end) I_40_CP95,
max(I_41_MAX) I_41_MAX,min(I_41_MIN) I_41_MIN,round(avg(I_41) ,2) I_41,max(case when I41CP95 =#{condition.count} then I_41 else null end) I_41_CP95, max(I_41_MAX) I_41_MAX,min(I_41_MIN) I_41_MIN,round(avg(I_41) ,2) I_41,max(case when I41CP95 =#{condition.count} then I_41_CP95 else null end) I_41_CP95,
max(I_42_MAX) I_42_MAX,min(I_42_MIN) I_42_MIN,round(avg(I_42) ,2) I_42,max(case when I42CP95 =#{condition.count} then I_42 else null end) I_42_CP95, max(I_42_MAX) I_42_MAX,min(I_42_MIN) I_42_MIN,round(avg(I_42) ,2) I_42,max(case when I42CP95 =#{condition.count} then I_42_CP95 else null end) I_42_CP95,
max(I_43_MAX) I_43_MAX,min(I_43_MIN) I_43_MIN,round(avg(I_43) ,2) I_43,max(case when I43CP95 =#{condition.count} then I_43 else null end) I_43_CP95, max(I_43_MAX) I_43_MAX,min(I_43_MIN) I_43_MIN,round(avg(I_43) ,2) I_43,max(case when I43CP95 =#{condition.count} then I_43_CP95 else null end) I_43_CP95,
max(I_44_MAX) I_44_MAX,min(I_44_MIN) I_44_MIN,round(avg(I_44) ,2) I_44,max(case when I44CP95 =#{condition.count} then I_44 else null end) I_44_CP95, max(I_44_MAX) I_44_MAX,min(I_44_MIN) I_44_MIN,round(avg(I_44) ,2) I_44,max(case when I44CP95 =#{condition.count} then I_44_CP95 else null end) I_44_CP95,
max(I_45_MAX) I_45_MAX,min(I_45_MIN) I_45_MIN,round(avg(I_45) ,2) I_45,max(case when I45CP95 =#{condition.count} then I_45 else null end) I_45_CP95, max(I_45_MAX) I_45_MAX,min(I_45_MIN) I_45_MIN,round(avg(I_45) ,2) I_45,max(case when I45CP95 =#{condition.count} then I_45_CP95 else null end) I_45_CP95,
max(I_46_MAX) I_46_MAX,min(I_46_MIN) I_46_MIN,round(avg(I_46) ,2) I_46,max(case when I46CP95 =#{condition.count} then I_46 else null end) I_46_CP95, max(I_46_MAX) I_46_MAX,min(I_46_MIN) I_46_MIN,round(avg(I_46) ,2) I_46,max(case when I46CP95 =#{condition.count} then I_46_CP95 else null end) I_46_CP95,
max(I_47_MAX) I_47_MAX,min(I_47_MIN) I_47_MIN,round(avg(I_47) ,2) I_47,max(case when I47CP95 =#{condition.count} then I_47 else null end) I_47_CP95, max(I_47_MAX) I_47_MAX,min(I_47_MIN) I_47_MIN,round(avg(I_47) ,2) I_47,max(case when I47CP95 =#{condition.count} then I_47_CP95 else null end) I_47_CP95,
max(I_48_MAX) I_48_MAX,min(I_48_MIN) I_48_MIN,round(avg(I_48) ,2) I_48,max(case when I48CP95 =#{condition.count} then I_48 else null end) I_48_CP95, max(I_48_MAX) I_48_MAX,min(I_48_MIN) I_48_MIN,round(avg(I_48) ,2) I_48,max(case when I48CP95 =#{condition.count} then I_48_CP95 else null end) I_48_CP95,
max(I_49_MAX) I_49_MAX,min(I_49_MIN) I_49_MIN,round(avg(I_49) ,2) I_49,max(case when I49CP95 =#{condition.count} then I_49 else null end) I_49_CP95, max(I_49_MAX) I_49_MAX,min(I_49_MIN) I_49_MIN,round(avg(I_49) ,2) I_49,max(case when I49CP95 =#{condition.count} then I_49_CP95 else null end) I_49_CP95,
max(I_50_MAX) I_50_MAX,min(I_50_MIN) I_50_MIN,round(avg(I_50) ,2) I_50,max(case when I50CP95 =#{condition.count} then I_50 else null end) I_50_CP95 max(I_50_MAX) I_50_MAX,min(I_50_MIN) I_50_MIN,round(avg(I_50) ,2) I_50,max(case when I50CP95 =#{condition.count} then I_50_CP95 else null end) I_50_CP95
from ( select t.*, from ( select t.*,
row_number() over (partition by phasic_type order by I_1 desc) I1CP95, row_number() over (partition by phasic_type order by I_1_CP95 desc) I1CP95,
row_number() over (partition by phasic_type order by I_2 desc) I2CP95, row_number() over (partition by phasic_type order by I_2_CP95 desc) I2CP95,
row_number() over (partition by phasic_type order by I_3 desc) I3CP95, row_number() over (partition by phasic_type order by I_3_CP95 desc) I3CP95,
row_number() over (partition by phasic_type order by I_4 desc) I4CP95, row_number() over (partition by phasic_type order by I_4_CP95 desc) I4CP95,
row_number() over (partition by phasic_type order by I_5 desc) I5CP95, row_number() over (partition by phasic_type order by I_5_CP95 desc) I5CP95,
row_number() over (partition by phasic_type order by I_6 desc) I6CP95, row_number() over (partition by phasic_type order by I_6_CP95 desc) I6CP95,
row_number() over (partition by phasic_type order by I_7 desc) I7CP95, row_number() over (partition by phasic_type order by I_7_CP95 desc) I7CP95,
row_number() over (partition by phasic_type order by I_8 desc) I8CP95, row_number() over (partition by phasic_type order by I_8_CP95 desc) I8CP95,
row_number() over (partition by phasic_type order by I_9 desc) I9CP95, row_number() over (partition by phasic_type order by I_9_CP95 desc) I9CP95,
row_number() over (partition by phasic_type order by I_10 desc) I10CP95, row_number() over (partition by phasic_type order by I_10_CP95 desc) I10CP95,
row_number() over (partition by phasic_type order by I_11 desc) I11CP95, row_number() over (partition by phasic_type order by I_11_CP95 desc) I11CP95,
row_number() over (partition by phasic_type order by I_12 desc) I12CP95, row_number() over (partition by phasic_type order by I_12_CP95 desc) I12CP95,
row_number() over (partition by phasic_type order by I_13 desc) I13CP95, row_number() over (partition by phasic_type order by I_13_CP95 desc) I13CP95,
row_number() over (partition by phasic_type order by I_14 desc) I14CP95, row_number() over (partition by phasic_type order by I_14_CP95 desc) I14CP95,
row_number() over (partition by phasic_type order by I_15 desc) I15CP95, row_number() over (partition by phasic_type order by I_15_CP95 desc) I15CP95,
row_number() over (partition by phasic_type order by I_16 desc) I16CP95, row_number() over (partition by phasic_type order by I_16_CP95 desc) I16CP95,
row_number() over (partition by phasic_type order by I_17 desc) I17CP95, row_number() over (partition by phasic_type order by I_17_CP95 desc) I17CP95,
row_number() over (partition by phasic_type order by I_18 desc) I18CP95, row_number() over (partition by phasic_type order by I_18_CP95 desc) I18CP95,
row_number() over (partition by phasic_type order by I_19 desc) I19CP95, row_number() over (partition by phasic_type order by I_19_CP95 desc) I19CP95,
row_number() over (partition by phasic_type order by I_20 desc) I20CP95, row_number() over (partition by phasic_type order by I_20_CP95 desc) I20CP95,
row_number() over (partition by phasic_type order by I_21 desc) I21CP95, row_number() over (partition by phasic_type order by I_21_CP95 desc) I21CP95,
row_number() over (partition by phasic_type order by I_22 desc) I22CP95, row_number() over (partition by phasic_type order by I_22_CP95 desc) I22CP95,
row_number() over (partition by phasic_type order by I_23 desc) I23CP95, row_number() over (partition by phasic_type order by I_23_CP95 desc) I23CP95,
row_number() over (partition by phasic_type order by I_24 desc) I24CP95, row_number() over (partition by phasic_type order by I_24_CP95 desc) I24CP95,
row_number() over (partition by phasic_type order by I_25 desc) I25CP95, row_number() over (partition by phasic_type order by I_25_CP95 desc) I25CP95,
row_number() over (partition by phasic_type order by I_26 desc) I26CP95, row_number() over (partition by phasic_type order by I_26_CP95 desc) I26CP95,
row_number() over (partition by phasic_type order by I_27 desc) I27CP95, row_number() over (partition by phasic_type order by I_27_CP95 desc) I27CP95,
row_number() over (partition by phasic_type order by I_28 desc) I28CP95, row_number() over (partition by phasic_type order by I_28_CP95 desc) I28CP95,
row_number() over (partition by phasic_type order by I_29 desc) I29CP95, row_number() over (partition by phasic_type order by I_29_CP95 desc) I29CP95,
row_number() over (partition by phasic_type order by I_30 desc) I30CP95, row_number() over (partition by phasic_type order by I_30_CP95 desc) I30CP95,
row_number() over (partition by phasic_type order by I_31 desc) I31CP95, row_number() over (partition by phasic_type order by I_31_CP95 desc) I31CP95,
row_number() over (partition by phasic_type order by I_32 desc) I32CP95, row_number() over (partition by phasic_type order by I_32_CP95 desc) I32CP95,
row_number() over (partition by phasic_type order by I_33 desc) I33CP95, row_number() over (partition by phasic_type order by I_33_CP95 desc) I33CP95,
row_number() over (partition by phasic_type order by I_34 desc) I34CP95, row_number() over (partition by phasic_type order by I_34_CP95 desc) I34CP95,
row_number() over (partition by phasic_type order by I_35 desc) I35CP95, row_number() over (partition by phasic_type order by I_35_CP95 desc) I35CP95,
row_number() over (partition by phasic_type order by I_36 desc) I36CP95, row_number() over (partition by phasic_type order by I_36_CP95 desc) I36CP95,
row_number() over (partition by phasic_type order by I_37 desc) I37CP95, row_number() over (partition by phasic_type order by I_37_CP95 desc) I37CP95,
row_number() over (partition by phasic_type order by I_38 desc) I38CP95, row_number() over (partition by phasic_type order by I_38_CP95 desc) I38CP95,
row_number() over (partition by phasic_type order by I_39 desc) I39CP95, row_number() over (partition by phasic_type order by I_39_CP95 desc) I39CP95,
row_number() over (partition by phasic_type order by I_40 desc) I40CP95, row_number() over (partition by phasic_type order by I_40_CP95 desc) I40CP95,
row_number() over (partition by phasic_type order by I_41 desc) I41CP95, row_number() over (partition by phasic_type order by I_41_CP95 desc) I41CP95,
row_number() over (partition by phasic_type order by I_42 desc) I42CP95, row_number() over (partition by phasic_type order by I_42_CP95 desc) I42CP95,
row_number() over (partition by phasic_type order by I_43 desc) I43CP95, row_number() over (partition by phasic_type order by I_43_CP95 desc) I43CP95,
row_number() over (partition by phasic_type order by I_44 desc) I44CP95, row_number() over (partition by phasic_type order by I_44_CP95 desc) I44CP95,
row_number() over (partition by phasic_type order by I_45 desc) I45CP95, row_number() over (partition by phasic_type order by I_45_CP95 desc) I45CP95,
row_number() over (partition by phasic_type order by I_46 desc) I46CP95, row_number() over (partition by phasic_type order by I_46_CP95 desc) I46CP95,
row_number() over (partition by phasic_type order by I_47 desc) I47CP95, row_number() over (partition by phasic_type order by I_47_CP95 desc) I47CP95,
row_number() over (partition by phasic_type order by I_48 desc) I48CP95, row_number() over (partition by phasic_type order by I_48_CP95 desc) I48CP95,
row_number() over (partition by phasic_type order by I_49 desc) I49CP95, row_number() over (partition by phasic_type order by I_49_CP95 desc) I49CP95,
row_number() over (partition by phasic_type order by I_50 desc) I50CP95 row_number() over (partition by phasic_type order by I_50_CP95 desc) I50CP95
from from
<choose> <choose>
<when test="condition.b == true"> <when test="condition.b == true">
@@ -125,6 +125,232 @@
group by phasic_type group by phasic_type
</select> </select>
<select id="getICurrentNew" resultType="java.util.HashMap">
SELECT
phasic_type PHASETYPE,
max( I_1_MAX ) I_1_MAX,
min( I_1_MIN ) I_1_MIN,
round( avg( I_1 ), 2 ) I_1,
max(I_1_CP95) I_1_CP95,
max( I_2_MAX ) I_2_MAX,
min( I_2_MIN ) I_2_MIN,
round( avg( I_2 ), 2 ) I_2,
max(I_2_CP95) I_2_CP95,
max( I_3_MAX ) I_3_MAX,
min( I_3_MIN ) I_3_MIN,
round(avg( I_3 ), 2 ) I_3,
max(I_3_CP95) I_3_CP95,
max( I_4_MAX ) I_4_MAX,
min( I_4_MIN ) I_4_MIN,
round( avg( I_4 ), 2 ) I_4,
max(I_4_CP95) I_4_CP95,
max( I_5_MAX ) I_5_MAX,
min( I_5_MIN ) I_5_MIN,
round( avg( I_5 ), 2 ) I_5,
max(I_5_CP95) I_5_CP95,
max( I_6_MAX ) I_6_MAX,
min( I_6_MIN ) I_6_MIN,
round( avg( I_6 ), 2 ) I_6,
max(I_6_CP95) I_6_CP95,
max( I_7_MAX ) I_7_MAX,
min( I_7_MIN ) I_7_MIN,
round( avg( I_7 ), 2 ) I_7,
max(I_7_CP95) I_7_CP95,
max( I_8_MAX ) I_8_MAX,
min( I_8_MIN ) I_8_MIN,
round( avg( I_8 ), 2 ) I_8,
max(I_8_CP95) I_8_CP95,
max( I_9_MAX ) I_9_MAX,
min( I_9_MIN ) I_9_MIN,
round( avg( I_9 ), 2 ) I_9,
max(I_9_CP95) I_9_CP95,
max( I_10_MAX ) I_10_MAX,
min( I_10_MIN ) I_10_MIN,
round( avg( I_10 ), 2 ) I_10,
max(I_10_CP95) I_10_CP95,
max( I_11_MAX ) I_11_MAX,
min( I_11_MIN ) I_11_MIN,
round( avg( I_11 ), 2 ) I_11,
max(I_11_CP95) I_11_CP95,
max( I_12_MAX ) I_12_MAX,
min( I_12_MIN ) I_12_MIN,
round( avg( I_12 ), 2 ) I_12,
max(I_12_CP95) I_12_CP95,
max( I_13_MAX ) I_13_MAX,
min( I_13_MIN ) I_13_MIN,
round( avg( I_13 ), 2 ) I_13,
max(I_13_CP95) I_13_CP95,
max( I_14_MAX ) I_14_MAX,
min( I_14_MIN ) I_14_MIN,
round( avg( I_14 ), 2 ) I_14,
max(I_14_CP95) I_14_CP95,
max( I_15_MAX ) I_15_MAX,
min( I_15_MIN ) I_15_MIN,
round( avg( I_15 ), 2 ) I_15,
max(I_15_CP95) I_15_CP95,
max( I_16_MAX ) I_16_MAX,
min( I_16_MIN ) I_16_MIN,
round( avg( I_16 ), 2 ) I_16,
max(I_16_CP95) I_16_CP95,
max( I_17_MAX ) I_17_MAX,
min( I_17_MIN ) I_17_MIN,
round( avg( I_17 ), 2 ) I_17,
max(I_17_CP95) I_17_CP95,
max( I_18_MAX ) I_18_MAX,
min( I_18_MIN ) I_18_MIN,
round( avg( I_18 ), 2 ) I_18,
max(I_18_CP95) I_18_CP95,
max( I_19_MAX ) I_19_MAX,
min( I_19_MIN ) I_19_MIN,
round( avg( I_19 ), 2 ) I_19,
max(I_19_CP95) I_19_CP95,
max( I_20_MAX ) I_20_MAX,
min( I_20_MIN ) I_20_MIN,
round( avg( I_20 ), 2 ) I_20,
max(I_20_CP95) I_20_CP95,
max( I_21_MAX ) I_21_MAX,
min( I_21_MIN ) I_21_MIN,
round( avg( I_21 ), 2 ) I_21,
max(I_21_CP95) I_21_CP95,
max( I_22_MAX ) I_22_MAX,
min( I_22_MIN ) I_22_MIN,
round( avg( I_22 ), 2 ) I_22,
max(I_22_CP95) I_22_CP95,
max( I_23_MAX ) I_23_MAX,
min( I_23_MIN ) I_23_MIN,
round( avg( I_23 ), 2 ) I_23,
max(I_23_CP95) I_23_CP95,
max( I_24_MAX ) I_24_MAX,
min( I_24_MIN ) I_24_MIN,
round( avg( I_24 ), 2 ) I_24,
max(I_24_CP95) I_24_CP95,
max( I_25_MAX ) I_25_MAX,
min( I_25_MIN ) I_25_MIN,
round( avg( I_25 ), 2 ) I_25,
max(I_25_CP95) I_25_CP95,
max( I_26_MAX ) I_26_MAX,
min( I_26_MIN ) I_26_MIN,
round( avg( I_26 ), 2 ) I_26,
max(I_26_CP95) I_26_CP95,
max( I_27_MAX ) I_27_MAX,
min( I_27_MIN ) I_27_MIN,
round( avg( I_27 ), 2 ) I_27,
max(I_27_CP95) I_27_CP95,
max( I_28_MAX ) I_28_MAX,
min( I_28_MIN ) I_28_MIN,
round( avg( I_28 ), 2 ) I_28,
max(I_28_CP95) I_28_CP95,
max( I_29_MAX ) I_29_MAX,
min( I_29_MIN ) I_29_MIN,
round( avg( I_29 ), 2 ) I_29,
max(I_29_CP95) I_29_CP95,
max( I_30_MAX ) I_30_MAX,
min( I_30_MIN ) I_30_MIN,
round( avg( I_30 ), 2 ) I_30,
max(I_30_CP95) I_30_CP95,
max( I_31_MAX ) I_31_MAX,
min( I_31_MIN ) I_31_MIN,
round( avg( I_31 ), 2 ) I_31,
max(I_31_CP95) I_31_CP95,
max( I_32_MAX ) I_32_MAX,
min( I_32_MIN ) I_32_MIN,
round( avg( I_32 ), 2 ) I_32,
max(I_32_CP95) I_32_CP95,
max( I_33_MAX ) I_33_MAX,
min( I_33_MIN ) I_33_MIN,
round( avg( I_33 ), 2 ) I_33,
max(I_33_CP95) I_33_CP95,
max( I_34_MAX ) I_34_MAX,
min( I_34_MIN ) I_34_MIN,
round( avg( I_34 ), 2 ) I_34,
max(I_34_CP95) I_34_CP95,
max( I_35_MAX ) I_35_MAX,
min( I_35_MIN ) I_35_MIN,
round( avg( I_35 ), 2 ) I_35,
max(I_35_CP95) I_35_CP95,
max( I_36_MAX ) I_36_MAX,
min( I_36_MIN ) I_36_MIN,
round( avg( I_36 ), 2 ) I_36,
max(I_36_CP95) I_36_CP95,
max( I_37_MAX ) I_37_MAX,
min( I_37_MIN ) I_37_MIN,
round( avg( I_37 ), 2 ) I_37,
max(I_37_CP95) I_37_CP95,
max( I_38_MAX ) I_38_MAX,
min( I_38_MIN ) I_38_MIN,
round( avg( I_38 ), 2 ) I_38,
max(I_38_CP95) I_38_CP95,
max( I_39_MAX ) I_39_MAX,
min( I_39_MIN ) I_39_MIN,
round( avg( I_39 ), 2 ) I_39,
max(I_39_CP95) I_39_CP95,
max( I_40_MAX ) I_40_MAX,
min( I_40_MIN ) I_40_MIN,
round( avg( I_40 ), 2 ) I_40,
max(I_40_CP95) I_40_CP95,
max( I_41_MAX ) I_41_MAX,
min( I_41_MIN ) I_41_MIN,
round( avg( I_41 ), 2 ) I_41,
max(I_41_CP95) I_41_CP95,
max( I_42_MAX ) I_42_MAX,
min( I_42_MIN ) I_42_MIN,
round( avg( I_42 ), 2 ) I_42,
max(I_42_CP95) I_42_CP95,
max( I_43_MAX ) I_43_MAX,
min( I_43_MIN ) I_43_MIN,
round( avg( I_43 ), 2 ) I_43,
max(I_43_CP95) I_43_CP95,
max( I_44_MAX ) I_44_MAX,
min( I_44_MIN ) I_44_MIN,
round( avg( I_44 ), 2 ) I_44,
max(I_44_CP95) I_44_CP95,
max( I_45_MAX ) I_45_MAX,
min( I_45_MIN ) I_45_MIN,
round( avg( I_45 ), 2 ) I_45,
max(I_45_CP95) I_45_CP95,
max( I_46_MAX ) I_46_MAX,
min( I_46_MIN ) I_46_MIN,
round( avg( I_46 ), 2 ) I_46,
max(I_46_CP95) I_46_CP95,
max( I_47_MAX ) I_47_MAX,
min( I_47_MIN ) I_47_MIN,
round( avg( I_47 ), 2 ) I_47,
max(I_47_CP95) I_47_CP95,
max( I_48_MAX ) I_48_MAX,
min( I_48_MIN ) I_48_MIN,
round( avg( I_48 ), 2 ) I_48,
max(I_48_CP95) I_48_CP95,
max( I_49_MAX ) I_49_MAX,
min( I_49_MIN ) I_49_MIN,
round( avg( I_49 ), 2 ) I_49,
max(I_49_CP95) I_49_CP95,
max( I_50_MAX ) I_50_MAX,
min( I_50_MIN ) I_50_MIN,
round( avg( I_50 ), 2 ) I_50,
max(I_50_CP95) I_50_CP95
FROM
<choose>
<when test="condition.b == true">
Data_i
</when>
<otherwise>
Day_i
</otherwise>
</choose>
WHERE
lineid = #{condition.pointIndex}
and phasic_type in ('A','B','C')
and timeid between #{condition.start} and #{condition.end}
<if test="condition.b == true">
and QualityFlag = 0
</if>
<foreach collection="condition.exceptTime" index="index" item="item" open=" " separator=" " close="">
and timeid not between #{item.start} and #{item.end}
</foreach>
GROUP BY
phasic_type
</select>
<select id="getHICurrent" resultType="java.util.HashMap"> <select id="getHICurrent" resultType="java.util.HashMap">
SELECT SELECT
PHASIC_TYPE PHASETYPE, PHASIC_TYPE PHASETYPE,

View File

@@ -3,105 +3,105 @@
<mapper namespace="com.pqs9000.mapper.report.GetVoltageRateMapper"> <mapper namespace="com.pqs9000.mapper.report.GetVoltageRateMapper">
<select id="getVoltageRate" resultType="java.util.HashMap"> <select id="getVoltageRate" resultType="java.util.HashMap">
select phasic_type PHASETYPE, select phasic_type PHASETYPE,
max(V_2_MAX) V_2_MAX,min(V_2_MIN) V_2_MIN,round(avg(V_2) ,2) V_2,max(case when V2CP95 =#{condition.count} then V_2 else null end) V_2_CP95, max(V_2_MAX) V_2_MAX,min(V_2_MIN) V_2_MIN,round(avg(V_2) ,2) V_2,max(case when V2CP95 =#{condition.count} then V_2_CP95 else null end) V_2_CP95,
max(V_3_MAX) V_3_MAX,min(V_3_MIN) V_3_MIN,round(avg(V_3) ,2) V_3,max(case when V3CP95 =#{condition.count} then V_3 else null end) V_3_CP95, max(V_3_MAX) V_3_MAX,min(V_3_MIN) V_3_MIN,round(avg(V_3) ,2) V_3,max(case when V3CP95 =#{condition.count} then V_3_CP95 else null end) V_3_CP95,
max(V_4_MAX) V_4_MAX,min(V_4_MIN) V_4_MIN,round(avg(V_4) ,2) V_4,max(case when V4CP95 =#{condition.count} then V_4 else null end) V_4_CP95, max(V_4_MAX) V_4_MAX,min(V_4_MIN) V_4_MIN,round(avg(V_4) ,2) V_4,max(case when V4CP95 =#{condition.count} then V_4_CP95 else null end) V_4_CP95,
max(V_5_MAX) V_5_MAX,min(V_5_MIN) V_5_MIN,round(avg(V_5) ,2) V_5,max(case when V5CP95 =#{condition.count} then V_5 else null end) V_5_CP95, max(V_5_MAX) V_5_MAX,min(V_5_MIN) V_5_MIN,round(avg(V_5) ,2) V_5,max(case when V5CP95 =#{condition.count} then V_5_CP95 else null end) V_5_CP95,
max(V_6_MAX) V_6_MAX,min(V_6_MIN) V_6_MIN,round(avg(V_6) ,2) V_6,max(case when V6CP95 =#{condition.count} then V_6 else null end) V_6_CP95, max(V_6_MAX) V_6_MAX,min(V_6_MIN) V_6_MIN,round(avg(V_6) ,2) V_6,max(case when V6CP95 =#{condition.count} then V_6_CP95 else null end) V_6_CP95,
max(V_7_MAX) V_7_MAX,min(V_7_MIN) V_7_MIN,round(avg(V_7) ,2) V_7,max(case when V7CP95 =#{condition.count} then V_7 else null end) V_7_CP95, max(V_7_MAX) V_7_MAX,min(V_7_MIN) V_7_MIN,round(avg(V_7) ,2) V_7,max(case when V7CP95 =#{condition.count} then V_7_CP95 else null end) V_7_CP95,
max(V_8_MAX) V_8_MAX,min(V_8_MIN) V_8_MIN,round(avg(V_8) ,2) V_8,max(case when V8CP95 =#{condition.count} then V_8 else null end) V_8_CP95, max(V_8_MAX) V_8_MAX,min(V_8_MIN) V_8_MIN,round(avg(V_8) ,2) V_8,max(case when V8CP95 =#{condition.count} then V_8_CP95 else null end) V_8_CP95,
max(V_9_MAX) V_9_MAX,min(V_9_MIN) V_9_MIN,round(avg(V_9) ,2) V_9,max(case when V9CP95 =#{condition.count} then V_9 else null end) V_9_CP95, max(V_9_MAX) V_9_MAX,min(V_9_MIN) V_9_MIN,round(avg(V_9) ,2) V_9,max(case when V9CP95 =#{condition.count} then V_9_CP95 else null end) V_9_CP95,
max(V_10_MAX) V_10_MAX,min(V_10_MIN) V_10_MIN,round(avg(V_10) ,2) V_10,max(case when V10CP95 =#{condition.count} then V_10 else null end) V_10_CP95, max(V_10_MAX) V_10_MAX,min(V_10_MIN) V_10_MIN,round(avg(V_10) ,2) V_10,max(case when V10CP95 =#{condition.count} then V_10_CP95 else null end) V_10_CP95,
max(V_11_MAX) V_11_MAX,min(V_11_MIN) V_11_MIN,round(avg(V_11) ,2) V_11,max(case when V11CP95 =#{condition.count} then V_11 else null end) V_11_CP95, max(V_11_MAX) V_11_MAX,min(V_11_MIN) V_11_MIN,round(avg(V_11) ,2) V_11,max(case when V11CP95 =#{condition.count} then V_11_CP95 else null end) V_11_CP95,
max(V_12_MAX) V_12_MAX,min(V_12_MIN) V_12_MIN,round(avg(V_12) ,2) V_12,max(case when V12CP95 =#{condition.count} then V_12 else null end) V_12_CP95, max(V_12_MAX) V_12_MAX,min(V_12_MIN) V_12_MIN,round(avg(V_12) ,2) V_12,max(case when V12CP95 =#{condition.count} then V_12_CP95 else null end) V_12_CP95,
max(V_13_MAX) V_13_MAX,min(V_13_MIN) V_13_MIN,round(avg(V_13) ,2) V_13,max(case when V13CP95 =#{condition.count} then V_13 else null end) V_13_CP95, max(V_13_MAX) V_13_MAX,min(V_13_MIN) V_13_MIN,round(avg(V_13) ,2) V_13,max(case when V13CP95 =#{condition.count} then V_13_CP95 else null end) V_13_CP95,
max(V_14_MAX) V_14_MAX,min(V_14_MIN) V_14_MIN,round(avg(V_14) ,2) V_14,max(case when V14CP95 =#{condition.count} then V_14 else null end) V_14_CP95, max(V_14_MAX) V_14_MAX,min(V_14_MIN) V_14_MIN,round(avg(V_14) ,2) V_14,max(case when V14CP95 =#{condition.count} then V_14_CP95 else null end) V_14_CP95,
max(V_15_MAX) V_15_MAX,min(V_15_MIN) V_15_MIN,round(avg(V_15) ,2) V_15,max(case when V15CP95 =#{condition.count} then V_15 else null end) V_15_CP95, max(V_15_MAX) V_15_MAX,min(V_15_MIN) V_15_MIN,round(avg(V_15) ,2) V_15,max(case when V15CP95 =#{condition.count} then V_15_CP95 else null end) V_15_CP95,
max(V_16_MAX) V_16_MAX,min(V_16_MIN) V_16_MIN,round(avg(V_16) ,2) V_16,max(case when V16CP95 =#{condition.count} then V_16 else null end) V_16_CP95, max(V_16_MAX) V_16_MAX,min(V_16_MIN) V_16_MIN,round(avg(V_16) ,2) V_16,max(case when V16CP95 =#{condition.count} then V_16_CP95 else null end) V_16_CP95,
max(V_17_MAX) V_17_MAX,min(V_17_MIN) V_17_MIN,round(avg(V_17) ,2) V_17,max(case when V17CP95 =#{condition.count} then V_17 else null end) V_17_CP95, max(V_17_MAX) V_17_MAX,min(V_17_MIN) V_17_MIN,round(avg(V_17) ,2) V_17,max(case when V17CP95 =#{condition.count} then V_17_CP95 else null end) V_17_CP95,
max(V_18_MAX) V_18_MAX,min(V_18_MIN) V_18_MIN,round(avg(V_18) ,2) V_18,max(case when V18CP95 =#{condition.count} then V_18 else null end) V_18_CP95, max(V_18_MAX) V_18_MAX,min(V_18_MIN) V_18_MIN,round(avg(V_18) ,2) V_18,max(case when V18CP95 =#{condition.count} then V_18_CP95 else null end) V_18_CP95,
max(V_19_MAX) V_19_MAX,min(V_19_MIN) V_19_MIN,round(avg(V_19) ,2) V_19,max(case when V19CP95 =#{condition.count} then V_19 else null end) V_19_CP95, max(V_19_MAX) V_19_MAX,min(V_19_MIN) V_19_MIN,round(avg(V_19) ,2) V_19,max(case when V19CP95 =#{condition.count} then V_19_CP95 else null end) V_19_CP95,
max(V_20_MAX) V_20_MAX,min(V_20_MIN) V_20_MIN,round(avg(V_20) ,2) V_20,max(case when V20CP95 =#{condition.count} then V_20 else null end) V_20_CP95, max(V_20_MAX) V_20_MAX,min(V_20_MIN) V_20_MIN,round(avg(V_20) ,2) V_20,max(case when V20CP95 =#{condition.count} then V_20_CP95 else null end) V_20_CP95,
max(V_21_MAX) V_21_MAX,min(V_21_MIN) V_21_MIN,round(avg(V_21) ,2) V_21,max(case when V21CP95 =#{condition.count} then V_21 else null end) V_21_CP95, max(V_21_MAX) V_21_MAX,min(V_21_MIN) V_21_MIN,round(avg(V_21) ,2) V_21,max(case when V21CP95 =#{condition.count} then V_21_CP95 else null end) V_21_CP95,
max(V_22_MAX) V_22_MAX,min(V_22_MIN) V_22_MIN,round(avg(V_22) ,2) V_22,max(case when V22CP95 =#{condition.count} then V_22 else null end) V_22_CP95, max(V_22_MAX) V_22_MAX,min(V_22_MIN) V_22_MIN,round(avg(V_22) ,2) V_22,max(case when V22CP95 =#{condition.count} then V_22_CP95 else null end) V_22_CP95,
max(V_23_MAX) V_23_MAX,min(V_23_MIN) V_23_MIN,round(avg(V_23) ,2) V_23,max(case when V23CP95 =#{condition.count} then V_23 else null end) V_23_CP95, max(V_23_MAX) V_23_MAX,min(V_23_MIN) V_23_MIN,round(avg(V_23) ,2) V_23,max(case when V23CP95 =#{condition.count} then V_23_CP95 else null end) V_23_CP95,
max(V_24_MAX) V_24_MAX,min(V_24_MIN) V_24_MIN,round(avg(V_24) ,2) V_24,max(case when V24CP95 =#{condition.count} then V_24 else null end) V_24_CP95, max(V_24_MAX) V_24_MAX,min(V_24_MIN) V_24_MIN,round(avg(V_24) ,2) V_24,max(case when V24CP95 =#{condition.count} then V_24_CP95 else null end) V_24_CP95,
max(V_25_MAX) V_25_MAX,min(V_25_MIN) V_25_MIN,round(avg(V_25) ,2) V_25,max(case when V25CP95 =#{condition.count} then V_25 else null end) V_25_CP95, max(V_25_MAX) V_25_MAX,min(V_25_MIN) V_25_MIN,round(avg(V_25) ,2) V_25,max(case when V25CP95 =#{condition.count} then V_25_CP95 else null end) V_25_CP95,
max(V_26_MAX) V_26_MAX,min(V_26_MIN) V_26_MIN,round(avg(V_26) ,2) V_26,max(case when V26CP95 =#{condition.count} then V_26 else null end) V_26_CP95, max(V_26_MAX) V_26_MAX,min(V_26_MIN) V_26_MIN,round(avg(V_26) ,2) V_26,max(case when V26CP95 =#{condition.count} then V_26_CP95 else null end) V_26_CP95,
max(V_27_MAX) V_27_MAX,min(V_27_MIN) V_27_MIN,round(avg(V_27) ,2) V_27,max(case when V27CP95 =#{condition.count} then V_27 else null end) V_27_CP95, max(V_27_MAX) V_27_MAX,min(V_27_MIN) V_27_MIN,round(avg(V_27) ,2) V_27,max(case when V27CP95 =#{condition.count} then V_27_CP95 else null end) V_27_CP95,
max(V_28_MAX) V_28_MAX,min(V_28_MIN) V_28_MIN,round(avg(V_28) ,2) V_28,max(case when V28CP95 =#{condition.count} then V_28 else null end) V_28_CP95, max(V_28_MAX) V_28_MAX,min(V_28_MIN) V_28_MIN,round(avg(V_28) ,2) V_28,max(case when V28CP95 =#{condition.count} then V_28_CP95 else null end) V_28_CP95,
max(V_29_MAX) V_29_MAX,min(V_29_MIN) V_29_MIN,round(avg(V_29) ,2) V_29,max(case when V29CP95 =#{condition.count} then V_29 else null end) V_29_CP95, max(V_29_MAX) V_29_MAX,min(V_29_MIN) V_29_MIN,round(avg(V_29) ,2) V_29,max(case when V29CP95 =#{condition.count} then V_29_CP95 else null end) V_29_CP95,
max(V_30_MAX) V_30_MAX,min(V_30_MIN) V_30_MIN,round(avg(V_30) ,2) V_30,max(case when V30CP95 =#{condition.count} then V_30 else null end) V_30_CP95, max(V_30_MAX) V_30_MAX,min(V_30_MIN) V_30_MIN,round(avg(V_30) ,2) V_30,max(case when V30CP95 =#{condition.count} then V_30_CP95 else null end) V_30_CP95,
max(V_31_MAX) V_31_MAX,min(V_31_MIN) V_31_MIN,round(avg(V_31) ,2) V_31,max(case when V31CP95 =#{condition.count} then V_31 else null end) V_31_CP95, max(V_31_MAX) V_31_MAX,min(V_31_MIN) V_31_MIN,round(avg(V_31) ,2) V_31,max(case when V31CP95 =#{condition.count} then V_31_CP95 else null end) V_31_CP95,
max(V_32_MAX) V_32_MAX,min(V_32_MIN) V_32_MIN,round(avg(V_32) ,2) V_32,max(case when V32CP95 =#{condition.count} then V_32 else null end) V_32_CP95, max(V_32_MAX) V_32_MAX,min(V_32_MIN) V_32_MIN,round(avg(V_32) ,2) V_32,max(case when V32CP95 =#{condition.count} then V_32_CP95 else null end) V_32_CP95,
max(V_33_MAX) V_33_MAX,min(V_33_MIN) V_33_MIN,round(avg(V_33) ,2) V_33,max(case when V33CP95 =#{condition.count} then V_33 else null end) V_33_CP95, max(V_33_MAX) V_33_MAX,min(V_33_MIN) V_33_MIN,round(avg(V_33) ,2) V_33,max(case when V33CP95 =#{condition.count} then V_33_CP95 else null end) V_33_CP95,
max(V_34_MAX) V_34_MAX,min(V_34_MIN) V_34_MIN,round(avg(V_34) ,2) V_34,max(case when V34CP95 =#{condition.count} then V_34 else null end) V_34_CP95, max(V_34_MAX) V_34_MAX,min(V_34_MIN) V_34_MIN,round(avg(V_34) ,2) V_34,max(case when V34CP95 =#{condition.count} then V_34_CP95 else null end) V_34_CP95,
max(V_35_MAX) V_35_MAX,min(V_35_MIN) V_35_MIN,round(avg(V_35) ,2) V_35,max(case when V35CP95 =#{condition.count} then V_35 else null end) V_35_CP95, max(V_35_MAX) V_35_MAX,min(V_35_MIN) V_35_MIN,round(avg(V_35) ,2) V_35,max(case when V35CP95 =#{condition.count} then V_35_CP95 else null end) V_35_CP95,
max(V_36_MAX) V_36_MAX,min(V_36_MIN) V_36_MIN,round(avg(V_36) ,2) V_36,max(case when V36CP95 =#{condition.count} then V_36 else null end) V_36_CP95, max(V_36_MAX) V_36_MAX,min(V_36_MIN) V_36_MIN,round(avg(V_36) ,2) V_36,max(case when V36CP95 =#{condition.count} then V_36_CP95 else null end) V_36_CP95,
max(V_37_MAX) V_37_MAX,min(V_37_MIN) V_37_MIN,round(avg(V_37) ,2) V_37,max(case when V37CP95 =#{condition.count} then V_37 else null end) V_37_CP95, max(V_37_MAX) V_37_MAX,min(V_37_MIN) V_37_MIN,round(avg(V_37) ,2) V_37,max(case when V37CP95 =#{condition.count} then V_37_CP95 else null end) V_37_CP95,
max(V_38_MAX) V_38_MAX,min(V_38_MIN) V_38_MIN,round(avg(V_38) ,2) V_38,max(case when V38CP95 =#{condition.count} then V_38 else null end) V_38_CP95, max(V_38_MAX) V_38_MAX,min(V_38_MIN) V_38_MIN,round(avg(V_38) ,2) V_38,max(case when V38CP95 =#{condition.count} then V_38_CP95 else null end) V_38_CP95,
max(V_39_MAX) V_39_MAX,min(V_39_MIN) V_39_MIN,round(avg(V_39) ,2) V_39,max(case when V39CP95 =#{condition.count} then V_39 else null end) V_39_CP95, max(V_39_MAX) V_39_MAX,min(V_39_MIN) V_39_MIN,round(avg(V_39) ,2) V_39,max(case when V39CP95 =#{condition.count} then V_39_CP95 else null end) V_39_CP95,
max(V_40_MAX) V_40_MAX,min(V_40_MIN) V_40_MIN,round(avg(V_40) ,2) V_40,max(case when V40CP95 =#{condition.count} then V_40 else null end) V_40_CP95, max(V_40_MAX) V_40_MAX,min(V_40_MIN) V_40_MIN,round(avg(V_40) ,2) V_40,max(case when V40CP95 =#{condition.count} then V_40_CP95 else null end) V_40_CP95,
max(V_41_MAX) V_41_MAX,min(V_41_MIN) V_41_MIN,round(avg(V_41) ,2) V_41,max(case when V41CP95 =#{condition.count} then V_41 else null end) V_41_CP95, max(V_41_MAX) V_41_MAX,min(V_41_MIN) V_41_MIN,round(avg(V_41) ,2) V_41,max(case when V41CP95 =#{condition.count} then V_41_CP95 else null end) V_41_CP95,
max(V_42_MAX) V_42_MAX,min(V_42_MIN) V_42_MIN,round(avg(V_42) ,2) V_42,max(case when V42CP95 =#{condition.count} then V_42 else null end) V_42_CP95, max(V_42_MAX) V_42_MAX,min(V_42_MIN) V_42_MIN,round(avg(V_42) ,2) V_42,max(case when V42CP95 =#{condition.count} then V_42_CP95 else null end) V_42_CP95,
max(V_43_MAX) V_43_MAX,min(V_43_MIN) V_43_MIN,round(avg(V_43) ,2) V_43,max(case when V43CP95 =#{condition.count} then V_43 else null end) V_43_CP95, max(V_43_MAX) V_43_MAX,min(V_43_MIN) V_43_MIN,round(avg(V_43) ,2) V_43,max(case when V43CP95 =#{condition.count} then V_43_CP95 else null end) V_43_CP95,
max(V_44_MAX) V_44_MAX,min(V_44_MIN) V_44_MIN,round(avg(V_44) ,2) V_44,max(case when V44CP95 =#{condition.count} then V_44 else null end) V_44_CP95, max(V_44_MAX) V_44_MAX,min(V_44_MIN) V_44_MIN,round(avg(V_44) ,2) V_44,max(case when V44CP95 =#{condition.count} then V_44_CP95 else null end) V_44_CP95,
max(V_45_MAX) V_45_MAX,min(V_45_MIN) V_45_MIN,round(avg(V_45) ,2) V_45,max(case when V45CP95 =#{condition.count} then V_45 else null end) V_45_CP95, max(V_45_MAX) V_45_MAX,min(V_45_MIN) V_45_MIN,round(avg(V_45) ,2) V_45,max(case when V45CP95 =#{condition.count} then V_45_CP95 else null end) V_45_CP95,
max(V_46_MAX) V_46_MAX,min(V_46_MIN) V_46_MIN,round(avg(V_46) ,2) V_46,max(case when V46CP95 =#{condition.count} then V_46 else null end) V_46_CP95, max(V_46_MAX) V_46_MAX,min(V_46_MIN) V_46_MIN,round(avg(V_46) ,2) V_46,max(case when V46CP95 =#{condition.count} then V_46_CP95 else null end) V_46_CP95,
max(V_47_MAX) V_47_MAX,min(V_47_MIN) V_47_MIN,round(avg(V_47) ,2) V_47,max(case when V47CP95 =#{condition.count} then V_47 else null end) V_47_CP95, max(V_47_MAX) V_47_MAX,min(V_47_MIN) V_47_MIN,round(avg(V_47) ,2) V_47,max(case when V47CP95 =#{condition.count} then V_47_CP95 else null end) V_47_CP95,
max(V_48_MAX) V_48_MAX,min(V_48_MIN) V_48_MIN,round(avg(V_48) ,2) V_48,max(case when V48CP95 =#{condition.count} then V_48 else null end) V_48_CP95, max(V_48_MAX) V_48_MAX,min(V_48_MIN) V_48_MIN,round(avg(V_48) ,2) V_48,max(case when V48CP95 =#{condition.count} then V_48_CP95 else null end) V_48_CP95,
max(V_49_MAX) V_49_MAX,min(V_49_MIN) V_49_MIN,round(avg(V_49) ,2) V_49,max(case when V49CP95 =#{condition.count} then V_49 else null end) V_49_CP95, max(V_49_MAX) V_49_MAX,min(V_49_MIN) V_49_MIN,round(avg(V_49) ,2) V_49,max(case when V49CP95 =#{condition.count} then V_49_CP95 else null end) V_49_CP95,
max(V_50_MAX) V_50_MAX,min(V_50_MIN) V_50_MIN,round(avg(V_50) ,2) V_50,max(case when V50CP95 =#{condition.count} then V_50 else null end) V_50_CP95 max(V_50_MAX) V_50_MAX,min(V_50_MIN) V_50_MIN,round(avg(V_50) ,2) V_50,max(case when V50CP95 =#{condition.count} then V_50_CP95 else null end) V_50_CP95
from ( select t.*, from ( select t.*,
row_number() over (partition by phasic_type order by V_2 desc) V2CP95, row_number() over (partition by phasic_type order by V_2_CP95 desc) V2CP95,
row_number() over (partition by phasic_type order by V_3 desc) V3CP95, row_number() over (partition by phasic_type order by V_3_CP95 desc) V3CP95,
row_number() over (partition by phasic_type order by V_4 desc) V4CP95, row_number() over (partition by phasic_type order by V_4_CP95 desc) V4CP95,
row_number() over (partition by phasic_type order by V_5 desc) V5CP95, row_number() over (partition by phasic_type order by V_5_CP95 desc) V5CP95,
row_number() over (partition by phasic_type order by V_6 desc) V6CP95, row_number() over (partition by phasic_type order by V_6_CP95 desc) V6CP95,
row_number() over (partition by phasic_type order by V_7 desc) V7CP95, row_number() over (partition by phasic_type order by V_7_CP95 desc) V7CP95,
row_number() over (partition by phasic_type order by V_8 desc) V8CP95, row_number() over (partition by phasic_type order by V_8_CP95 desc) V8CP95,
row_number() over (partition by phasic_type order by V_9 desc) V9CP95, row_number() over (partition by phasic_type order by V_9_CP95 desc) V9CP95,
row_number() over (partition by phasic_type order by V_10 desc) V10CP95, row_number() over (partition by phasic_type order by V_10_CP95 desc) V10CP95,
row_number() over (partition by phasic_type order by V_11 desc) V11CP95, row_number() over (partition by phasic_type order by V_11_CP95 desc) V11CP95,
row_number() over (partition by phasic_type order by V_12 desc) V12CP95, row_number() over (partition by phasic_type order by V_12_CP95 desc) V12CP95,
row_number() over (partition by phasic_type order by V_13 desc) V13CP95, row_number() over (partition by phasic_type order by V_13_CP95 desc) V13CP95,
row_number() over (partition by phasic_type order by V_14 desc) V14CP95, row_number() over (partition by phasic_type order by V_14_CP95 desc) V14CP95,
row_number() over (partition by phasic_type order by V_15 desc) V15CP95, row_number() over (partition by phasic_type order by V_15_CP95 desc) V15CP95,
row_number() over (partition by phasic_type order by V_16 desc) V16CP95, row_number() over (partition by phasic_type order by V_16_CP95 desc) V16CP95,
row_number() over (partition by phasic_type order by V_17 desc) V17CP95, row_number() over (partition by phasic_type order by V_17_CP95 desc) V17CP95,
row_number() over (partition by phasic_type order by V_18 desc) V18CP95, row_number() over (partition by phasic_type order by V_18_CP95 desc) V18CP95,
row_number() over (partition by phasic_type order by V_19 desc) V19CP95, row_number() over (partition by phasic_type order by V_19_CP95 desc) V19CP95,
row_number() over (partition by phasic_type order by V_20 desc) V20CP95, row_number() over (partition by phasic_type order by V_20_CP95 desc) V20CP95,
row_number() over (partition by phasic_type order by V_21 desc) V21CP95, row_number() over (partition by phasic_type order by V_21_CP95 desc) V21CP95,
row_number() over (partition by phasic_type order by V_22 desc) V22CP95, row_number() over (partition by phasic_type order by V_22_CP95 desc) V22CP95,
row_number() over (partition by phasic_type order by V_23 desc) V23CP95, row_number() over (partition by phasic_type order by V_23_CP95 desc) V23CP95,
row_number() over (partition by phasic_type order by V_24 desc) V24CP95, row_number() over (partition by phasic_type order by V_24_CP95 desc) V24CP95,
row_number() over (partition by phasic_type order by V_25 desc) V25CP95, row_number() over (partition by phasic_type order by V_25_CP95 desc) V25CP95,
row_number() over (partition by phasic_type order by V_26 desc) V26CP95, row_number() over (partition by phasic_type order by V_26_CP95 desc) V26CP95,
row_number() over (partition by phasic_type order by V_27 desc) V27CP95, row_number() over (partition by phasic_type order by V_27_CP95 desc) V27CP95,
row_number() over (partition by phasic_type order by V_28 desc) V28CP95, row_number() over (partition by phasic_type order by V_28_CP95 desc) V28CP95,
row_number() over (partition by phasic_type order by V_29 desc) V29CP95, row_number() over (partition by phasic_type order by V_29_CP95 desc) V29CP95,
row_number() over (partition by phasic_type order by V_30 desc) V30CP95, row_number() over (partition by phasic_type order by V_30_CP95 desc) V30CP95,
row_number() over (partition by phasic_type order by V_31 desc) V31CP95, row_number() over (partition by phasic_type order by V_31_CP95 desc) V31CP95,
row_number() over (partition by phasic_type order by V_32 desc) V32CP95, row_number() over (partition by phasic_type order by V_32_CP95 desc) V32CP95,
row_number() over (partition by phasic_type order by V_33 desc) V33CP95, row_number() over (partition by phasic_type order by V_33_CP95 desc) V33CP95,
row_number() over (partition by phasic_type order by V_34 desc) V34CP95, row_number() over (partition by phasic_type order by V_34_CP95 desc) V34CP95,
row_number() over (partition by phasic_type order by V_35 desc) V35CP95, row_number() over (partition by phasic_type order by V_35_CP95 desc) V35CP95,
row_number() over (partition by phasic_type order by V_36 desc) V36CP95, row_number() over (partition by phasic_type order by V_36_CP95 desc) V36CP95,
row_number() over (partition by phasic_type order by V_37 desc) V37CP95, row_number() over (partition by phasic_type order by V_37_CP95 desc) V37CP95,
row_number() over (partition by phasic_type order by V_38 desc) V38CP95, row_number() over (partition by phasic_type order by V_38_CP95 desc) V38CP95,
row_number() over (partition by phasic_type order by V_39 desc) V39CP95, row_number() over (partition by phasic_type order by V_39_CP95 desc) V39CP95,
row_number() over (partition by phasic_type order by V_40 desc) V40CP95, row_number() over (partition by phasic_type order by V_40_CP95 desc) V40CP95,
row_number() over (partition by phasic_type order by V_41 desc) V41CP95, row_number() over (partition by phasic_type order by V_41_CP95 desc) V41CP95,
row_number() over (partition by phasic_type order by V_42 desc) V42CP95, row_number() over (partition by phasic_type order by V_42_CP95 desc) V42CP95,
row_number() over (partition by phasic_type order by V_43 desc) V43CP95, row_number() over (partition by phasic_type order by V_43_CP95 desc) V43CP95,
row_number() over (partition by phasic_type order by V_44 desc) V44CP95, row_number() over (partition by phasic_type order by V_44_CP95 desc) V44CP95,
row_number() over (partition by phasic_type order by V_45 desc) V45CP95, row_number() over (partition by phasic_type order by V_45_CP95 desc) V45CP95,
row_number() over (partition by phasic_type order by V_46 desc) V46CP95, row_number() over (partition by phasic_type order by V_46_CP95 desc) V46CP95,
row_number() over (partition by phasic_type order by V_47 desc) V47CP95, row_number() over (partition by phasic_type order by V_47_CP95 desc) V47CP95,
row_number() over (partition by phasic_type order by V_48 desc) V48CP95, row_number() over (partition by phasic_type order by V_48_CP95 desc) V48CP95,
row_number() over (partition by phasic_type order by V_49 desc) V49CP95, row_number() over (partition by phasic_type order by V_49_CP95 desc) V49CP95,
row_number() over (partition by phasic_type order by V_50 desc) V50CP95 row_number() over (partition by phasic_type order by V_50_CP95 desc) V50CP95
from from
<choose> <choose>
<when test="condition.b == true"> <when test="condition.b == true">
@@ -126,9 +126,9 @@
<select id="getFirstHarmonic" resultType="ReportValue"> <select id="getFirstHarmonic" resultType="ReportValue">
SELECT PHASIC_TYPE PHASETYPE, SELECT PHASIC_TYPE PHASETYPE,
MAX(V_1_MAX) FMAXVALUE,MIN(V_1_MIN) MINVALUE,ROUND(AVG(V_1) ,2) MEANVALUE MAX(V_1_MAX) FMAXVALUE,MIN(V_1_MIN) MINVALUE,ROUND(AVG(V_1) ,2) MEANVALUE
,MAX(CASE WHEN V1CP95 =#{condition.count} THEN V_1 ELSE NULL END) CP95VALUE ,MAX(CASE WHEN V1CP95 =#{condition.count} THEN V_1_CP95 ELSE NULL END) CP95VALUE
FROM ( SELECT T.*, FROM ( SELECT T.*,
ROW_NUMBER() OVER (PARTITION BY PHASIC_TYPE ORDER BY V_1 DESC) V1CP95 ROW_NUMBER() OVER (PARTITION BY PHASIC_TYPE ORDER BY V_1_CP95 DESC) V1CP95
from from
<choose> <choose>
<when test="condition.b == true"> <when test="condition.b == true">

View File

@@ -21,7 +21,7 @@
select select
count(distinct myindex) allLine count(distinct myindex) allLine
from from
limit_target limit_rate
where where
myindex IN myindex IN
<foreach collection="list" item="list1" open="(" close=")" separator=","> <foreach collection="list" item="list1" open="(" close=")" separator=",">
@@ -34,7 +34,7 @@
SELECT SELECT
COUNT(DISTINCT(MYINDEX)) overLine COUNT(DISTINCT(MYINDEX)) overLine
FROM FROM
limit_target b1, limit_rate b1,
PQS_DEPTSLINE b2, PQS_DEPTSLINE b2,
PQS_DEPTS b3 PQS_DEPTS b3
WHERE WHERE
@@ -44,7 +44,8 @@
<foreach collection="list" item="list2" open="(" close=")" separator=","> <foreach collection="list" item="list2" open="(" close=")" separator=",">
#{list2} #{list2}
</foreach> </foreach>
AND b1.MYINDEX = b2.LINE_INDEX AND b2.DEPTS_INDEX = b3.DEPTS_INDEX AND b3.CUSTOM_DEPT = 0 AND b1.MYINDEX = b2.LINE_INDEX AND b2.DEPTS_INDEX = b3.DEPTS_INDEX
-- AND b3.CUSTOM_DEPT = 0
AND (b1.flicker_overtime >0 or b1.ubalance_overtime >0 or b1.freq_dev_overtime >0 or b1.uaberrance_overtime >0 or b1.voltage_dev_overtime >0 or b1.uharm_2_overtime >0 or b1.iharm_2_overtime >0 or b1.uharm_3_overtime >0 or b1.iharm_3_overtime >0 or b1.uharm_4_overtime >0 or b1.iharm_4_overtime >0 AND (b1.flicker_overtime >0 or b1.ubalance_overtime >0 or b1.freq_dev_overtime >0 or b1.uaberrance_overtime >0 or b1.voltage_dev_overtime >0 or b1.uharm_2_overtime >0 or b1.iharm_2_overtime >0 or b1.uharm_3_overtime >0 or b1.iharm_3_overtime >0 or b1.uharm_4_overtime >0 or b1.iharm_4_overtime >0
or b1.uharm_5_overtime >0 or b1.iharm_5_overtime >0 or b1.uharm_6_overtime >0 or b1.iharm_6_overtime >0 or b1.uharm_7_overtime >0 or b1.iharm_7_overtime >0 or b1.uharm_5_overtime >0 or b1.iharm_5_overtime >0 or b1.uharm_6_overtime >0 or b1.iharm_6_overtime >0 or b1.uharm_7_overtime >0 or b1.iharm_7_overtime >0
or b1.uharm_8_overtime >0 or b1.iharm_8_overtime >0 or b1.uharm_9_overtime >0 or b1.iharm_9_overtime >0 or b1.uharm_10_overtime >0 or b1.iharm_10_overtime >0 or b1.uharm_8_overtime >0 or b1.iharm_8_overtime >0 or b1.uharm_9_overtime >0 or b1.iharm_9_overtime >0 or b1.uharm_10_overtime >0 or b1.iharm_10_overtime >0
@@ -58,22 +59,22 @@
or b1.INUHARM_12_OVERTIME >0 or b1.INUHARM_13_OVERTIME >0 or b1.INUHARM_14_OVERTIME >0 or b1.INUHARM_15_OVERTIME >0 or b1.INUHARM_16_OVERTIME >0) or b1.INUHARM_12_OVERTIME >0 or b1.INUHARM_13_OVERTIME >0 or b1.INUHARM_14_OVERTIME >0 or b1.INUHARM_15_OVERTIME >0 or b1.INUHARM_16_OVERTIME >0)
) Y, ) Y,
( (
select select
count(distinct myindex) frequencyOverLine count(distinct myindex) frequencyOverLine
from from
limit_target limit_rate
where where
myindex IN myindex IN
<foreach collection="list" item="list3" open="(" close=")" separator=","> <foreach collection="list" item="list3" open="(" close=")" separator=",">
#{list3} #{list3}
</foreach> </foreach>
and timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS') and timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
and phasic_type = 'T' and FREQ_DEV_OVERTIME > 0 and phasic_type = 'T' and FREQ_DEV_OVERTIME > 0
) P, ) P,
(select (select
count(distinct myindex) voltageOverLine count(distinct myindex) voltageOverLine
from from
limit_target limit_rate
where where
myindex IN myindex IN
<foreach collection="list" item="list4" open="(" close=")" separator=","> <foreach collection="list" item="list4" open="(" close=")" separator=",">
@@ -86,7 +87,7 @@
select select
count(distinct c.myindex) harmonicVoltageOverLine count(distinct c.myindex) harmonicVoltageOverLine
from from
limit_target c limit_rate c
where where
c.myindex in c.myindex in
<foreach collection="list" item="harmonicVoltageList" open="(" close=")" separator=","> <foreach collection="list" item="harmonicVoltageList" open="(" close=")" separator=",">
@@ -99,7 +100,7 @@
select select
count(distinct c.myindex) harmonicCurrentOverLine count(distinct c.myindex) harmonicCurrentOverLine
from from
limit_target c limit_rate c
where where
c.myindex in c.myindex in
<foreach collection="list" item="harmonicCurrentList" open="(" close=")" separator=","> <foreach collection="list" item="harmonicCurrentList" open="(" close=")" separator=",">
@@ -112,7 +113,7 @@
select select
count(distinct c.myindex) ubalanceOverLine count(distinct c.myindex) ubalanceOverLine
from from
limit_target c limit_rate c
where where
c.myindex in c.myindex in
<foreach collection="list" item="threePhaseVoltageList" open="(" close=")" separator=","> <foreach collection="list" item="threePhaseVoltageList" open="(" close=")" separator=",">
@@ -125,7 +126,7 @@
select select
count(distinct c.myindex) flicketOverLine count(distinct c.myindex) flicketOverLine
from from
limit_target c limit_rate c
where where
c.myindex in c.myindex in
<foreach collection="list" item="flickerList" open="(" close=")" separator=","> <foreach collection="list" item="flickerList" open="(" close=")" separator=",">
@@ -138,7 +139,7 @@
select select
count(distinct c.myindex) negativeOverLine count(distinct c.myindex) negativeOverLine
from from
limit_target c limit_rate c
where where
c.myindex in c.myindex in
<foreach collection="list" item="negativeList" open="(" close=")" separator=","> <foreach collection="list" item="negativeList" open="(" close=")" separator=",">
@@ -151,7 +152,7 @@
select select
count(distinct c.myindex) interharmonicOverLine count(distinct c.myindex) interharmonicOverLine
from from
limit_target c limit_rate c
where where
c.myindex in c.myindex in
<foreach collection="list" item="harmonicCurrentList" open="(" close=")" separator=","> <foreach collection="list" item="harmonicCurrentList" open="(" close=")" separator=",">
@@ -655,5 +656,11 @@
ON A.TIMEID = I.TIMEID ON A.TIMEID = I.TIMEID
</select> </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> </mapper>

View File

@@ -81,6 +81,14 @@
<label >干扰源类型:</label> <label >干扰源类型:</label>
<select class="width3 form-control" id="loadtype"></select> <select class="width3 form-control" id="loadtype"></select>
</div> </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>
<div class="row"> <div class="row">

View File

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

View File

@@ -79,6 +79,13 @@
<option value="2">退运</option> <option value="2">退运</option>
</select> <label class="form-group"> </select> <label class="form-group">
<label class="form-group">通讯状态:</label>
<select class="form-control" id="runFlag">
<option value="">全部</option>
<option value="0">中断</option>
<option value="1">正常</option>
</select> <label class="form-group">
<div class="form-inline disinlineb wanzhengdiv"> <div class="form-inline disinlineb wanzhengdiv">
<div class="form-group has-feedback mr10"> <div class="form-group has-feedback mr10">
<label>统计类型:</label> <label>统计类型:</label>
@@ -101,10 +108,22 @@
<button id="helper" type="button" class="btn btn-primary tip tip-bottom" data-tip="数据完整性详解"> <button id="helper" type="button" class="btn btn-primary tip tip-bottom" data-tip="数据完整性详解">
<i class="glyphicon glyphicon-info-sign" style="margin-left: -3px;margin-right: -3px;"></i> <i class="glyphicon glyphicon-info-sign" style="margin-left: -3px;margin-right: -3px;"></i>
</button> </button>
<div id="onlineNumber" type="button" class="btn themeBGColor">
在线数:
<div style="float: right" id="online"></div>
</div>
<div id="offlineNumber" type="button" class="btn themeBGColor">
离线数:
<div style="float: right" id="offline"></div>
</div>
<div id="analysis" type="button" class="btn themeBGColor" onclick="showAnalysis()">
<i class="glyphicon glyphicon-info-sign"></i>
<div style="float: right;margin-left: 5px">统计分析</div>
</div>
<div class="form-group fr mr10" id="fliteData"> <div class="form-group fr mr10" id="fliteData">
<label>筛选数据:</label> <label>筛选数据:</label>
<input type="text" class="form-control" onkeyup="searchResult(this.value)" <input type="text" class="form-control" onkeyup="searchResult(this.value)"
placeholder="空格分开多条件筛选数据"> placeholder="多条件筛选数据" style="width: 120px">
</div> </div>
</div> </div>
<table id="integritylist" class="table table-striped table-bordered dataTable no-footer width100"> <table id="integritylist" class="table table-striped table-bordered dataTable no-footer width100">
@@ -115,6 +134,7 @@
<th>变电站</th> <th>变电站</th>
<th>监测点名称</th> <th>监测点名称</th>
<th>终端IP</th> <th>终端IP</th>
<th>所属前置机</th>
<th>终端状态</th> <th>终端状态</th>
<th>通讯状态</th> <th>通讯状态</th>
<th>最新数据时间</th> <th>最新数据时间</th>

View File

@@ -0,0 +1,99 @@
<%--
Created by IntelliJ IDEA.
User: 徐扬
Date: 2024/7/25
Time: 18:50
To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title>监测点分类统计</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport"
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<link rel="stylesheet" href="${ctx}/css/plugin/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="${ctx}/css/plugin/datatables/buttons.dataTables.min.css">
<link rel="stylesheet" href="${ctx}/css/plugin/datatables/datatables.bootstrap.css">
<link rel="stylesheet" href="${ctx}/css/plugin/datatimepicker/bootstrap-datetimepicker.css">
<link rel="stylesheet" href="${ctx}/css/plugin/basicButton.css">
<link rel="stylesheet" href="${ctx}/css/plugin/bootstrapSwitch/bootstrap-switch.min.css">
<link rel="stylesheet" href="${ctx}/css/plugin/ztree/zTreeStyle.css">
<link rel="stylesheet" href="${ctx}/css/plugin/fontawesome/font-awesome.min.css">
<link rel="stylesheet" href="${ctx}/css/basic.css">
<link rel="stylesheet" href="${ctx}/css/plugin/datatables/bootstrap-select.css"/>
<style>
html, body {
background-color: #F9F9F9 !important;
}
</style>
</head>
<body>
<div class="container-fluid">
<div class="form-inline header mt10">
<label class="form-group">区域:</label>
<div class="form-group has-feedback mr10">
<div class="disinlineb">
<input id="area" class="form-control" style="width: 140px" readonly>
<i class="fa fa-caret-down areaicon"></i>
<i class="fa fa-caret-up treeUpIcon disnone"
style="color: #C9CBCE;position: absolute;left: 60px;font-size: 18px;z-index: 9999;top: 20px"></i>
<div class=" ztree treeUpDiv disnone " id="areaTree"
style="position: absolute;width: 140px;height: 147px;border: 2px solid #C9CBCE;overflow: auto;top: 32px;background: #fff;z-index: 100;border-radius: 2px">
</div>
</div>
</div>
<%@include file="../../include/time.jsp"%>
<label class="form-group">上报类型:</label>
<select class="form-control" id="postType">
<option value="">全部</option>
<option value="0">国网上报</option>
<option value="1">非国网上报</option>
</select>
<label class="form-group">监测点性质:</label>
<select class="form-control" id="powerId">
<option value="">全部</option>
<option value="0">电网侧</option>
<option value="1">非电网侧</option>
</select>
<label class="form-group">
<button id="query" type="button" class="btn btn-primary ml5">
<i class="glyphicon glyphicon-search"></i>
</button>
</label>
</div>
<div class="form-inline mt5">
<table id="tongji" style="text-align: center" class="table table-striped table-bordered dataTable no-footer">
</table>
</div>
</div>
</body>
<script src="${ctx}/js/plugin/jquery/jquery.min.js"></script>
<script src="${ctx}/js/plugin/bootstrap/bootstrap.min.js"></script>
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.js"></script>
<script src="${ctx}/js/plugin/bootstrap/bootstrap-datetimepicker.zh-CN.js"></script>
<script src="${ctx}/js/plugin/datatables/datatables.jquery.js"></script>
<script src="${ctx}/js/plugin/datatables/dataTables.buttons.min.js"></script>
<script src="${ctx}/js/plugin/datatables/datatables.bootstrap.js"></script>
<script src="${ctx}/js/plugin/datatables/buttons.html5.min.js"></script>
<script src="${ctx}/js/plugin/layui/layer.js"></script>
<script src="${ctx}/jspJS/utils/loading.js"></script>
<script src="${ctx}/jspJS/utils/timeControl.js"></script>
<script src="${ctx}/jspJS/utils/judgeAjaxStatus.js"></script>
<script src="${ctx}/js/plugin/bootstrapSwitch/bootstrap-switch.min.js"></script>
<script src="${ctx}/js/plugin/ztree/jquery.ztree.core.js"></script>
<script src="${ctx}/js/area.js"></script>
<script src="${ctx}/js/color.js"></script>
<script src="${ctx}/jspJS/area/statisticalAnalysis.js"></script>
<script src="${ctx}/js/plugin/jquery/jquery.cleverTabs.js"></script>
<script src="${ctx}/js/plugin/bootstrap/3.3.7/bootstrap.min.js"></script>
<script src="${ctx}/js/plugin/bootstrap/bootstrap-select.js"></script>
</html>

View File

@@ -78,6 +78,14 @@
<label>监测点:</label> <label>监测点:</label>
<input type="checkbox" checked class="checkbox"/> <input type="checkbox" checked class="checkbox"/>
</div> </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"> <div class="form-group has-feedback ml10">
<label style="margin-top: 3px">全部监测点:</label> <label style="margin-top: 3px">全部监测点:</label>
<input type="checkbox" id="allLineCheck"/> <input type="checkbox" id="allLineCheck"/>

View File

@@ -146,11 +146,13 @@
<th style="line-height: 90px" rowspan="3">供电设备容量</th> <th style="line-height: 90px" rowspan="3">供电设备容量</th>
<th style="line-height: 90px" rowspan="3">用户协议容量</th> <th style="line-height: 90px" rowspan="3">用户协议容量</th>
<th style="line-height: 90px" rowspan="3">超标天数</th> <th style="line-height: 90px" rowspan="3">超标天数</th>
<th colspan="57">各项指标超标明细</th> <th colspan="56">各项指标超标明细</th>
<th style="line-height: 90px" rowspan="3">监测点编号</th>
<th style="line-height: 90px" rowspan="3">监测装置安装位置</th>
</tr> </tr>
<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>
<th colspan="4">电压总谐波畸变率</th> <th colspan="4">电压总谐波畸变率</th>
<th colspan="4">谐波电压含有率</th> <th colspan="4">谐波电压含有率</th>
@@ -161,11 +163,10 @@
<th colspan="4">闪变</th> <th colspan="4">闪变</th>
<th colspan="8">各次谐波电压含有率超标天数</th> <th colspan="8">各次谐波电压含有率超标天数</th>
<th colspan="8">各次谐波电流含量超标天数</th> <th colspan="8">各次谐波电流含量超标天数</th>
<th style="line-height: 50px" rowspan="2">监测点编号</th>
</tr> </tr>
<tr> <tr>
<th>超标天数</th> <th>超标天数</th>
<th>最大幅值(绝对值)</th> <th>最大幅值</th>
<th>限值</th> <th>限值</th>
<th>差值</th> <th>差值</th>

View File

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

View File

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

View File

@@ -279,7 +279,8 @@ function initTable(data){
{width: "1%",data:"overCurrentTwentyThirdTimes"}, {width: "1%",data:"overCurrentTwentyThirdTimes"},
{width: "1%",data:"overCurrentTwentyFiveTimes"}, {width: "1%",data:"overCurrentTwentyFiveTimes"},
{width: "1%",data:"overCurrentOtherTimes"}, {width: "1%",data:"overCurrentOtherTimes"},
{width: "2%",data:"monitorNumber"} {width: "2%",data:"monitorNumber"},
{width: "2%",data:"devLocation"}
], ],
bAutoWidth:false, bAutoWidth:false,
serverSide : false, serverSide : false,

View File

@@ -0,0 +1,279 @@
var $area=$("#area");
var $startTime=$("#startTime");
var $endTime=$("#endTime");
var $postType = $("#postType")
var $powerId = $("#powerId")
$("#interval").val("月份");
var buttonname;
var companyname;
var tigName;
var volData;
var dataTable=null;
var startTime,endTime,area,postType,powerId;
$(function () {
startTime = $startTime.eq(0).val();
endTime = $endTime.eq(0).val();
area = $area.eq(0).val();
postType = $postType.eq(0).val();
powerId = $powerId.eq(0).val();
loadselect("电压等级","vollevel");
$.ajax({
type: "POST",
data:{
start: startTime,
end: endTime
},
async:false,
url: "/pqs9000/device/getMsgInfo",
dataType: 'json',
success: function (data) {
buttonname = data.body.name;
tigName = data.body.name;
}
})
$.ajax({
type: "POST",
url: "/pqs9000/theme/getThemeInfo",
async: false,
dataType: 'json',
success: function (data) {
companyname = data.body.name;
}
})
//初始化按钮开关
$(".checkbox").bootstrapSwitch({
onText: buttonname, // 设置ON文本
offText: companyname, // 设置OFF文本
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
handleWidth: "60",//设置控件宽度
// 当开关状态改变时触发
onSwitchChange: function (event, state) {
if (state === true) {
tigName = buttonname;
refresh(area, startTime, endTime,postType,powerId);
} else {
tigName = companyname;
refresh(area, startTime, endTime,postType,powerId);
}
}
});
//初始化区域
$.ajax({
type: "POST",
url: "/pqs9000/user/getAreasInfo",
dataType:'json',
success:function (data) {
$("#area").val(data[0].name);
$("#area").attr("index", data[0].id);
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
//初始化页面内容
area = $area.eq(0).attr("index");
startTime = $startTime.eq(0).val();
endTime = $endTime.eq(0).val();
postType = $postType.eq(0).val();
powerId = $powerId.eq(0).val();
refresh(area, startTime, endTime,postType,powerId);
}
})
})
//点击确定,去后台请求参数
$("#query").click(function() {
area = $area.eq(0).attr("index");
startTime = $startTime.eq(0).val();
endTime = $endTime.eq(0).val();
postType = $postType.eq(0).val();
powerId = $powerId.eq(0).val();
refresh(area,startTime,endTime,postType,powerId);
});
//获取表格数据
function refresh(area,startTime,endTime,postType,powerId){
var i ;
$.ajax({
type : "POST",
url : "/pqs9000/area/statisticalAnalysis",
dataType : "json",
data : {
startTime : startTime,
endTime : endTime,
area: area,
postType: postType,
powerId: powerId
},
beforeSend: function () {
i = ityzl_SHOW_LOAD_LAYER();
},
success : function(data) {
if (data.code === 500) {
layer.msg(data.message,{icon:2,time:2000})
volData=null;
} else {
translateData(data.body);
}
//***********关闭loading
ityzl_CLOSE_LOAD_LAYER(i);
}
});
}
function translateData(data) {
var tableData = '';
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data[i].typeLists.length; j++) {
for (var k = 0; k < data[i].typeLists[j].dataLists.length; k++) {
tableData += '["","' + data[i].deptName + '", "' + data[i].typeLists[j].name + '","'
+ data[i].typeLists[j].dataLists[k].name + '","' + data[i].typeLists[j].dataLists[k].allLineCount + '","' + data[i].typeLists[j].dataLists[k].runLineCount + '","'
+ data[i].typeLists[j].dataLists[k].checkLineCount + '","' + data[i].typeLists[j].dataLists[k].backLineCount + '","';
if (k === 0) {
var n = 0;
if (j === 0) {
for (var l = 0; l < data[i].typeLists.length; l++) {
for (var m = 0; m < data[i].typeLists[l].dataLists.length; m++) {
n++;
}
}
}
tableData += n + '","' + data[i].typeLists[j].dataLists.length + '"],';
} else {
tableData += '0","0"],'; //前面表示所有行,后面表示自己的行
}
}
}
}
tableData = tableData.substring(0, tableData.lastIndexOf(','));
tableData = eval('[' + tableData + ']');
console.log("tableData==:" + tableData)
initTable(tableData);
}
function initTable(data) {
$('#tongji').dataTable({
"columns": [
{"title": "序号"},
{"title": "区域"},
{"title": "类型"},
{"title": "分类型"},
{"title": "监测点总数"},
{"title": "监测点投运数"},
{"title": "监测点检修数"},
{"title": "监测点退运数"}
],
paging: false,
scrollY: ($(window).height() * 0.83),
lengthChange: false,
language: {
url: '/pqs9000/json/chine.json',
},
searching: false,
info: false,
ordering: false,
destroy: true,
data: data,
fnDrawCallback: function () {
this.api().column(0).nodes().each(function (cell, i) {
cell.innerHTML = i + 1;
});
},
columnDefs: [{
targets: 1,
createdCell: function (td, cellData, rowData, row, col) {
var rowspan = rowData[8];
if (rowspan > 1) {
$(td).attr('rowspan', rowspan)
}
if (rowspan == 0) {
$(td).remove();
}
}
}, {
targets: 2,
createdCell: function (td, cellData, rowData, row, col) {
var rowspan = rowData[9];
if (rowspan > 1) {
$(td).attr('rowspan', rowspan)
}
if (rowspan == 0) {
$(td).remove();
}
}
}]
});
}
function loadselect(dictypeName,div){
var part='#'+div;
$(part).find("option").remove();
$.ajax({
method : "post",
url : "/pqs9000/device/getselect",
data : {
dictypeName:dictypeName
},
async:false,
success : function(data) {
if(data == null){
var message = dictypeName + '信息加载失败';
layer.msg(message,{icon:1,time:1000});
}else{
var option0 = $("<option selected value='"
+ null + "'>"
+ "全部" + "</option>");
$(part).append(option0);
$.each(data, function(i, item) {
var option = $("<option value='"
+ item.dicIndex + "'>"
+ item.dicName + "</option>");
$(part).append(option);
})
}
}
})
}
//特殊处理,表头紧缩问题--start
var it=null;
function startQuery() {
//实时刷新时间单位为毫秒
it= setInterval('refreshQuery()',100);
}
/* 刷新查询 */
function refreshQuery(){
var width=$("#vdlist").width();
if(width>100){
initTable(resultData);
window.clearInterval(it)
}
}
//特殊处理,表头紧缩问题--end
//制保留2位小数2会在2后面补上00.即2.00
function toDecimal2(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x*100)/100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}

View File

@@ -10,6 +10,10 @@ var companyname;
var tiggleValue = ""; var tiggleValue = "";
var allNetsData = []; var allNetsData = [];
var countryNetsData = []; var countryNetsData = [];
var data1;
var data2;
var data3;
var data4;
$("#interval").val("月份"); $("#interval").val("月份");
/** /**
* 电压等级排序自定义比较start * 电压等级排序自定义比较start
@@ -116,9 +120,13 @@ $(function () {
if (state === true) { if (state === true) {
tiggleValue = buttonname; tiggleValue = buttonname;
initTable(allNetsData); initTable(allNetsData);
$('#online').text(data1===null?0:data1);
$('#offline').text(data2===null?0:data2);
} else { } else {
tiggleValue = companyname; tiggleValue = companyname;
initTable(countryNetsData); initTable(countryNetsData);
$('#online').text(data3===null?0:data3);
$('#offline').text(data4===null?0:data4);
} }
} }
}); });
@@ -132,11 +140,12 @@ $("#query").click(function () {
var endTime = $endTime.eq(0).val(); var endTime = $endTime.eq(0).val();
var devflag = $("#devflag").val(); var devflag = $("#devflag").val();
var powerId = $("#powerId").val(); var powerId = $("#powerId").val();
refresh(area, startTime, endTime,devflag,powerId); var runFlag = $("#runFlag").val();
refresh(area, startTime, endTime,devflag,powerId,runFlag);
}); });
//获取表格数据 //获取表格数据
function refresh(area, startTime, endTime,devflag,powerId) { function refresh(area, startTime, endTime,devflag,powerId,runFlag) {
var i; var i;
$.ajax({ $.ajax({
type: "POST", type: "POST",
@@ -147,7 +156,8 @@ function refresh(area, startTime, endTime,devflag,powerId) {
endTime: endTime, endTime: endTime,
area: area, area: area,
devflag:devflag, devflag:devflag,
powerId:powerId powerId:powerId,
runFlag:runFlag
}, },
beforeSend: function () { beforeSend: function () {
i = ityzl_SHOW_LOAD_LAYER(); i = ityzl_SHOW_LOAD_LAYER();
@@ -158,9 +168,17 @@ function refresh(area, startTime, endTime,devflag,powerId) {
//没有数据 //没有数据
allNetsData = null; allNetsData = null;
countryNetsData = null; countryNetsData = null;
data1 = null;
data2 = null;
data3 = null;
data4 = null;
} else { } else {
allNetsData = data.body.allNets; allNetsData = data.body.allNets;
countryNetsData = data.body.countryNets; countryNetsData = data.body.countryNets;
data1 = data.body.allOnlineNum;
data2 = data.body.allOfflineNum;
data3 = data.body.countryOnlineNum;
data4 = data.body.countryOfflineNum;
} }
startQuery(); startQuery();
//***********关闭loading //***********关闭loading
@@ -219,8 +237,9 @@ function initTable(data) {
} }
}, },
{width: "8%", data: "deviceIp"}, {width: "8%", data: "deviceIp"},
{width: "6%", data: "frontDev"},
{ {
width: "8%", data: "devFlag", render: function (data, type, full, meta) { width: "5%", data: "devFlag", render: function (data, type, full, meta) {
var temp = Number(data); var temp = Number(data);
switch (temp) { switch (temp) {
case 0: case 0:
@@ -233,7 +252,7 @@ function initTable(data) {
} }
}, },
{ {
width: "8%", data: "status", render: function (data, type, full, meta) { width: "5%", data: "status", render: function (data, type, full, meta) {
var temp = Number(data); var temp = Number(data);
switch (temp) { switch (temp) {
case 0: case 0:
@@ -243,7 +262,7 @@ function initTable(data) {
} }
} }
}, },
{width: "8%", data: "updateTime"}, {width: "10%", data: "updateTime"},
{ {
width: "8%", data: "integrity", width: "8%", data: "integrity",
render: function (data, type, full, meta) { render: function (data, type, full, meta) {
@@ -258,7 +277,7 @@ function initTable(data) {
} }
}, },
{width: "8%", data: "device"}, {width: "8%", data: "device"},
{width: "10%", data: "company"}, {width: "8%", data: "company"},
{width: "5%", data: "voltage", type: "number-fate"}, {width: "5%", data: "voltage", type: "number-fate"},
{ {
width: "12%", data: "", render: function (data, type, full, meta) { width: "12%", data: "", render: function (data, type, full, meta) {
@@ -376,6 +395,18 @@ function showDetail(lineId) {
} }
} }
function showAnalysis() {
layer.open({
type: 2,
title: '监测点统计分析',
maxmin: false,
shadeClose: true, // 点击遮罩关闭层
area: ['100%', '100%'],
content: '/pqs9000/business/statisticalAnalysis',
scrollbar: false
});
}
function modifyCss(dataTable) { function modifyCss(dataTable) {
@@ -407,8 +438,12 @@ function refreshQuery() {
if (width > 100) { if (width > 100) {
if (tiggleValue === buttonname) { if (tiggleValue === buttonname) {
initTable(allNetsData); initTable(allNetsData);
$('#online').text(data1===null?0:data1);
$('#offline').text(data2===null?0:data2);
} else { } else {
initTable(countryNetsData); initTable(countryNetsData);
$('#online').text(data3===null?0:data3);
$('#offline').text(data4===null?0:data4);
} }
window.clearInterval(it) window.clearInterval(it)
} }

View File

@@ -96,13 +96,17 @@
f.longitude f.longitude
longitude,f.latitude latitude longitude,f.latitude latitude
from from
pq_line a,pq_substation pq_line a,
c,pq_subvoltage d,pq_device e,pqs_map pq_substation c,
f,pq_devicedetail g pq_subvoltage d,
pq_device e,
pqs_map f,
pq_devicedetail g
where where
a.sub_index=c.sub_index and a.subv_index=d.subv_index and a.sub_index=c.sub_index and
a.dev_index=e.dev_index a.subv_index=d.subv_index and
and a.sub_index=f.sub_index and a.dev_index=e.dev_index and
a.sub_index=f.sub_index and
e.dev_index=g.dev_index and f.state =1 e.dev_index=g.dev_index and f.state =1
and e.devmodel=1 and e.devmodel=1
and e.datatype and e.datatype

View File

@@ -260,7 +260,7 @@
extend: 'csv', extend: 'csv',
title: name + '暂降事件列表',//导出csv名称 title: name + '暂降事件列表',//导出csv名称
exportOptions: { exportOptions: {
columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14], columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15],
format: { format: {
body: function (data, rID, cID) { body: function (data, rID, cID) {
if (cID === 0) { if (cID === 0) {

View File

@@ -687,6 +687,7 @@ function eventTip() {
scrollbar: false, scrollbar: false,
content: 'tipwindow', content: 'tipwindow',
shadeClose: false, shadeClose: false,
shade: false,
yes: function () { yes: function () {
layer.closeAll(); layer.closeAll();
}, },

View File

@@ -798,6 +798,20 @@ public class DeviceController {
return result; return result;
} }
@RequestMapping(value = "findMaxDeviceName", method = RequestMethod.POST)
@ResponseBody
public String findMaxDeviceName(HttpServletRequest request, Long gdIndex) {
String result;
try {
result = manaDevice.findMaxDeviceName(gdIndex);
userLog.getLog("查询当前供电公司下面最大的设备名称", "成功", result, LogTypeEnum.SYSTEM.toString(), 0);
} catch (Exception e) {
result = null;
userLog.getLog("查询当前供电公司下面最大的设备名称", "失败", result, LogTypeEnum.SYSTEM.toString(), 0);
}
return result;
}
@RequestMapping(value = "addDevice", method = RequestMethod.POST) @RequestMapping(value = "addDevice", method = RequestMethod.POST)
@ResponseBody @ResponseBody
public HttpResult addDevice(HttpServletRequest request, HttpSession session, String devName, Long gdIndex, public HttpResult addDevice(HttpServletRequest request, HttpSession session, String devName, Long gdIndex,

View File

@@ -123,4 +123,6 @@ public interface ManaDeviceService {
*/ */
int addMonitor(String monitorId); int addMonitor(String monitorId);
String findMaxDeviceName(Long gdIndex);
} }

View File

@@ -2488,4 +2488,31 @@ public class ManaDeviceServiceImpl implements ManaDeviceService {
return 0; return 0;
} }
} }
@Override
public String findMaxDeviceName(Long gdIndex) {
String name = deviceMapper.findMaxDeviceName(gdIndex);
return incrementString(name);
}
public String incrementString(String str) {
// 查找最后一个非数字字符的位置
int lastIndex = str.length() - 1;
while (lastIndex >= 0 && Character.isDigit(str.charAt(lastIndex))) {
lastIndex--;
}
// 如果没有找到非数字字符,说明整个字符串都是数字
if (lastIndex == -1) {
// 直接将字符串转换为整数,递增,再转回字符串
return String.valueOf(Long.parseLong(str) + 1);
}
// 提取出数字部分
String numberPart = str.substring(lastIndex + 1);
// 将数字部分转换为整数,递增,再转回字符串
long number = Long.parseLong(numberPart) + 1;
String incrementedNumberPart = String.format("%0" + numberPart.length() + "d", number);
// 将递增后的数字部分拼接到原字符串的非数字部分
return str.substring(0, lastIndex + 1) + incrementedNumberPart;
}
} }

View File

@@ -171,4 +171,8 @@ FROM
WHERE WHERE
a.dev_index = #{devIndex} a.dev_index = #{devIndex}
</select> </select>
<select id="findMaxDeviceName" resultType="String">
SELECT MAX(NAME) FROM PQ_DEVICE WHERE GD_INDEX = #{gdIndex}
</select>
</mapper> </mapper>

View File

@@ -49,6 +49,20 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function () { $(document).ready(function () {
$("html").css("height", "100px"); $("html").css("height", "100px");
//获取默认装置名称
var gdIndex = $("#gdIndex").val();
$.ajax({
url: '/pqs9900/device/findMaxDeviceName',
type: 'POST',
dataType: "text",
data: {
gdIndex: gdIndex
},
success: function (data) {
$('#devName').val(data);
}
});
}); });
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 var index = parent.layer.getFrameIndex(window.name); //获取窗口索引

View File

@@ -178,9 +178,9 @@
</tr> </tr>
<tr> <tr>
<td align="right" class="width1">识别码:</td> <td align="right" class="width1">识别码:</td>
<td align="left" class="width2"><input type="password" class="width3" name="series" id="series" autocomplete="off" maxlength="255"></td> <td align="left" class="width2"><input type="text" class="width3" name="series" id="series" autocomplete="off" maxlength="255"></td>
<td align="right" class="width1">秘钥:</td> <td align="right" class="width1">秘钥:</td>
<td align="left" class="width2"><input type="password" class="width3" name="key" id="key" autocomplete="off" maxlength="255"></td> <td align="left" class="width2"><input type="text" class="width3" name="key" id="key" autocomplete="off" maxlength="255"></td>
<td align="right" class="width1" id="call"></td> <td align="right" class="width1" id="call"></td>
<td align="left" class="width2"><select class="width3" id="callflag" hidden> <td align="left" class="width2"><select class="width3" id="callflag" hidden>
</select></td> </select></td>

View File

@@ -42,7 +42,7 @@ $("#addProj").click(function () {
layer.tips('名称不可为空', '#projName', { layer.tips('名称不可为空', '#projName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(projName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(projName)) {
layer.tips('名称含有非汉字字符', '#projName', { layer.tips('名称含有非汉字字符', '#projName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -98,7 +98,7 @@ $("#addProj2").click(function () {
layer.tips('名称不可为空', '#projName', { layer.tips('名称不可为空', '#projName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(projName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(projName)) {
layer.tips('名称含有非汉字字符', '#projName', { layer.tips('名称含有非汉字字符', '#projName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -174,7 +174,7 @@ $("#modProj").click(function () {
layer.tips('名称不可为空', '#porjName', { layer.tips('名称不可为空', '#porjName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(porjName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(porjName)) {
layer.tips('名称含有非汉字字符', '#porjName', { layer.tips('名称含有非汉字字符', '#porjName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -274,7 +274,7 @@ $("#addPro").click(function () {
layer.tips('名称不可为空', '#proName', { layer.tips('名称不可为空', '#proName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(proName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(proName)) {
layer.tips('名称含有非汉字字符', '#proName', { layer.tips('名称含有非汉字字符', '#proName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -354,7 +354,7 @@ $("#addPro2").click(function () {
layer.tips('名称不可为空', '#proName', { layer.tips('名称不可为空', '#proName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(proName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(proName)) {
layer.tips('名称含有非汉字字符', '#proName', { layer.tips('名称含有非汉字字符', '#proName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -435,7 +435,7 @@ $("#modPro").click(function () {
layer.tips('名称不可为空', '#proName', { layer.tips('名称不可为空', '#proName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(proName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(proName)) {
layer.tips('名称含有非汉字字符', '#proName', { layer.tips('名称含有非汉字字符', '#proName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -519,7 +519,7 @@ $("#addGd").click(function () {
layer.tips('名称不可为空', '#gdName', { layer.tips('名称不可为空', '#gdName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(gdName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(gdName)) {
layer.tips('名称含有非汉字字符', '#gdName', { layer.tips('名称含有非汉字字符', '#gdName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -553,7 +553,7 @@ $("#addGd2").click(function () {
layer.tips('名称不可为空', '#gdName', { layer.tips('名称不可为空', '#gdName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(gdName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(gdName)) {
layer.tips('名称含有非汉字字符', '#gdName', { layer.tips('名称含有非汉字字符', '#gdName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -607,7 +607,7 @@ $("#modGd").click(function () {
layer.tips('名称不可为空', '#gdName', { layer.tips('名称不可为空', '#gdName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(gdName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(gdName)) {
layer.tips('名称含有非汉字字符', '#gdName', { layer.tips('名称含有非汉字字符', '#gdName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -704,7 +704,7 @@ $("#addSub").click(function () {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
return false; return false;
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(subName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(subName)) {
layer.tips('名称含有非汉字字符', '#subName', { layer.tips('名称含有非汉字字符', '#subName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -787,7 +787,7 @@ $("#addSub").click(function () {
}); });
return false; return false;
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(subName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(subName)) {
layer.tips('名称含有非汉字字符', '#subName', { layer.tips('名称含有非汉字字符', '#subName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -895,7 +895,7 @@ $("#addSub2").click(function () {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
return false; return false;
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(subName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(subName)) {
layer.tips('名称含有非汉字字符', '#subName', { layer.tips('名称含有非汉字字符', '#subName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -978,7 +978,7 @@ $("#addSub2").click(function () {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
return false; return false;
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(subName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(subName)) {
layer.tips('名称含有非汉字字符', '#subName', { layer.tips('名称含有非汉字字符', '#subName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -1114,7 +1114,7 @@ $("#modSub").click(function () {
layer.tips('名称不可为空', '#subName', { layer.tips('名称不可为空', '#subName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(subName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(subName)) {
layer.tips('名称含有非汉字字符', '#subName', { layer.tips('名称含有非汉字字符', '#subName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
@@ -1212,7 +1212,7 @@ $("#modSub").click(function () {
layer.tips('名称不可为空', '#subName', { layer.tips('名称不可为空', '#subName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });
} else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+]+$/gi.test(subName)) { } else if (!/^[\u4E00-\u9FA5A-Za-z0-9_\s+±]+$/gi.test(subName)) {
layer.tips('名称含有非汉字字符', '#subName', { layer.tips('名称含有非汉字字符', '#subName', {
tips: [1, 'red'] //还可配置颜色 tips: [1, 'red'] //还可配置颜色
}); });