1.解决数据质量监测点数据完整性查询过慢问题
This commit is contained in:
@@ -105,9 +105,12 @@ public class LineDetailVO implements Serializable {
|
|||||||
@ApiModelProperty(name = "终端厂家")
|
@ApiModelProperty(name = "终端厂家")
|
||||||
private String manufacturer;
|
private String manufacturer;
|
||||||
|
|
||||||
@ApiModelProperty(name = "终端厂家")
|
@ApiModelProperty(name = "监测对象ID")
|
||||||
private String objId;
|
private String objId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "监测对象名称")
|
||||||
|
private String objName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -154,7 +154,6 @@ public class LineIntegrityDataController extends BaseController {
|
|||||||
@ApiOperation("监测点数据完整性(冀北)")
|
@ApiOperation("监测点数据完整性(冀北)")
|
||||||
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
|
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
|
||||||
public HttpResult<DeviceOnlineRate> getData(@RequestBody DeviceInfoParam.BusinessParam param) {
|
public HttpResult<DeviceOnlineRate> getData(@RequestBody DeviceInfoParam.BusinessParam param) {
|
||||||
param.setLineOrDevice(0);
|
|
||||||
String methodDescribe = getMethodDescribe("getData");
|
String methodDescribe = getMethodDescribe("getData");
|
||||||
DeviceOnlineRate rate = irStatIntegrityDService.getData(param);
|
DeviceOnlineRate rate = irStatIntegrityDService.getData(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe);
|
||||||
|
|||||||
@@ -68,8 +68,6 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
private final LineDetailMapper lineDetailMapper;
|
private final LineDetailMapper lineDetailMapper;
|
||||||
private final GeneralDeviceService deviceService;
|
private final GeneralDeviceService deviceService;
|
||||||
private final LineService lineService;
|
private final LineService lineService;
|
||||||
private final UserLedgerService userLedgerService;
|
|
||||||
private final CommLineClient commLineClient;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Float getTotalIntegrityByLineIds(LineBaseQueryParam param) {
|
public Float getTotalIntegrityByLineIds(LineBaseQueryParam param) {
|
||||||
@@ -150,9 +148,6 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
@Override
|
@Override
|
||||||
public DeviceOnlineRate getData(DeviceInfoParam.BusinessParam param) {
|
public DeviceOnlineRate getData(DeviceInfoParam.BusinessParam param) {
|
||||||
DeviceOnlineRate rate = new DeviceOnlineRate();
|
DeviceOnlineRate rate = new DeviceOnlineRate();
|
||||||
//BusinessParam的searchvalue只匹配监测点名称现在要匹配电站,监测点,监测点对象名称,所以穿空再添加过滤逻辑
|
|
||||||
String tempSearchValue=param.getSearchValue();
|
|
||||||
param.setSearchValue("");
|
|
||||||
//获取终端台账类信息
|
//获取终端台账类信息
|
||||||
List<GeneralDeviceDTO> deviceInfo = deviceService.getDeviceInfo(param, null, Collections.singletonList(1));
|
List<GeneralDeviceDTO> deviceInfo = deviceService.getDeviceInfo(param, null, Collections.singletonList(1));
|
||||||
if (CollUtil.isNotEmpty(deviceInfo)) {
|
if (CollUtil.isNotEmpty(deviceInfo)) {
|
||||||
@@ -161,61 +156,17 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
.stream()
|
.stream()
|
||||||
.distinct()
|
.distinct()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<String> filterLineList = new ArrayList<>();
|
//获取所有监测点的数据完整性
|
||||||
|
List<RStatIntegrityVO> lineIntegrityRateInfo = rStatIntegrityDMapper.getLineIntegrityRateInfo(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
if(CollectionUtil.isNotEmpty(lineIds)){
|
|
||||||
//根据searchvalue过滤
|
|
||||||
List<LineALLInfoDTO> data = commLineClient.getLineAllDetailList(lineIds).getData();
|
|
||||||
filterLineList= data.stream()
|
|
||||||
.filter(dto -> {
|
|
||||||
LineALLInfoDTO.LineLineDTO lineDTO = dto.getLineLineDTO();
|
|
||||||
String linename = lineDTO != null ? lineDTO.getLinename() : null;
|
|
||||||
String objName2 = lineDTO != null ? lineDTO.getObjName2() : null;
|
|
||||||
|
|
||||||
LineALLInfoDTO.LineSubStationDTO subStationDTO = dto.getLineSubStationDTO();
|
|
||||||
String subStationName = subStationDTO != null ? subStationDTO.getSubStationName() : null;
|
|
||||||
|
|
||||||
// 大小写敏感的模糊匹配(相当于 MySQL 的 LIKE '%keyword%')
|
|
||||||
return (linename != null && linename.contains(tempSearchValue))
|
|
||||||
|| (objName2 != null && objName2.contains(tempSearchValue))
|
|
||||||
|| (subStationName != null && subStationName.contains(tempSearchValue));
|
|
||||||
}).map(dto -> dto.getLineLineDTO() != null ? dto.getLineLineDTO().getLineId() : null)
|
|
||||||
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
rate.setTotalNum(filterLineList.size());
|
|
||||||
List<String> finalFilterLineList = filterLineList;
|
|
||||||
//根据过滤后监测点过滤
|
|
||||||
deviceInfo= deviceInfo.stream()
|
|
||||||
.filter(dto -> {
|
|
||||||
List<String> original = dto.getLineIndexes();
|
|
||||||
if (original == null || original.isEmpty()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// 计算交集
|
|
||||||
List<String> intersection = original.stream()
|
|
||||||
.filter(finalFilterLineList::contains)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
if (intersection.isEmpty()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// 更新当前 DTO 的 lineIndexes 为交集
|
|
||||||
dto.setLineIndexes(intersection);
|
|
||||||
return true;
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList()); //获取所有监测点的数据完整性
|
|
||||||
List<RStatIntegrityVO> lineIntegrityRateInfo = rStatIntegrityDMapper.getLineIntegrityRateInfo(filterLineList, param.getSearchBeginTime(), param.getSearchEndTime());
|
|
||||||
//获取所有监测点信息信息
|
//获取所有监测点信息信息
|
||||||
List<LineDetailVO.Detail> LineInfoByIds = lineService.getLineDetailByIds(filterLineList);
|
List<LineDetailVO.Detail> LineInfoByIds = lineService.getLineDetailByIds(lineIds);
|
||||||
|
|
||||||
rate.setBelowNum(CollUtil.isNotEmpty(lineIntegrityRateInfo) ? calculateIntegrityRate(lineIntegrityRateInfo, 90, filterLineList.size()) : lineIds.size());
|
rate.setTotalNum(lineIds.size());
|
||||||
rate.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, filterLineList).doubleValue()>100.0?BigDecimal.valueOf(100.0) : calculateIntegrityRate(lineIntegrityRateInfo, lineIds));
|
rate.setBelowNum(CollUtil.isNotEmpty(lineIntegrityRateInfo) ? calculateIntegrityRate(lineIntegrityRateInfo, 90, lineIds.size()) : lineIds.size());
|
||||||
|
rate.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, lineIds).doubleValue() > 100.0 ? BigDecimal.valueOf(100.0) : calculateIntegrityRate(lineIntegrityRateInfo, lineIds));
|
||||||
List<DeviceOnlineRate.CitDetail> citDetailList = new ArrayList<>();
|
List<DeviceOnlineRate.CitDetail> citDetailList = new ArrayList<>();
|
||||||
DeviceOnlineRate.CitDetail citDetail;
|
DeviceOnlineRate.CitDetail citDetail;
|
||||||
DeviceOnlineRate.LineDetail detail;
|
DeviceOnlineRate.LineDetail detail;
|
||||||
//用户侧监测点 监测对象
|
|
||||||
List<UserLedgerVO> userLedgerVOS = userLedgerService.selectUserList(new UserReportParam());
|
|
||||||
Map<String, String> objMap = userLedgerVOS.stream().collect(Collectors.toMap(UserLedgerVO::getId, UserLedgerVO::getProjectName));
|
|
||||||
for (GeneralDeviceDTO dto : deviceInfo) {
|
for (GeneralDeviceDTO dto : deviceInfo) {
|
||||||
//获取部门终端集合
|
//获取部门终端集合
|
||||||
List<RStatIntegrityVO> citDevOnRate = lineIntegrityRateInfo.stream().filter(x -> dto.getLineIndexes().contains(x.getLineIndex())).collect(Collectors.toList());
|
List<RStatIntegrityVO> citDevOnRate = lineIntegrityRateInfo.stream().filter(x -> dto.getLineIndexes().contains(x.getLineIndex())).collect(Collectors.toList());
|
||||||
@@ -223,7 +174,6 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
.collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate));
|
.collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate));
|
||||||
citDetail = new DeviceOnlineRate.CitDetail();
|
citDetail = new DeviceOnlineRate.CitDetail();
|
||||||
List<LineDetailVO.Detail> lineDetail = LineInfoByIds.stream().filter(x -> dto.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList());
|
List<LineDetailVO.Detail> lineDetail = LineInfoByIds.stream().filter(x -> dto.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList());
|
||||||
|
|
||||||
citDetail.setCitName(dto.getName());
|
citDetail.setCitName(dto.getName());
|
||||||
citDetail.setCitTotalNum(dto.getLineIndexes().size());
|
citDetail.setCitTotalNum(dto.getLineIndexes().size());
|
||||||
citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate) ? calculateIntegrityRate(citDevOnRate, 90, dto.getLineIndexes().size()) : dto.getLineIndexes().size());
|
citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate) ? calculateIntegrityRate(citDevOnRate, 90, dto.getLineIndexes().size()) : dto.getLineIndexes().size());
|
||||||
@@ -242,7 +192,7 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
detail.setLineId(line.getLineId());
|
detail.setLineId(line.getLineId());
|
||||||
detail.setLineName(line.getLineName());
|
detail.setLineName(line.getLineName());
|
||||||
//用户侧监测点 监测对象
|
//用户侧监测点 监测对象
|
||||||
detail.setObjName(StringUtils.isBlank(line.getObjId())?"/":objMap.get(line.getObjId()));
|
detail.setObjName(StringUtils.isBlank(line.getObjName()) ? "/" : line.getObjName());
|
||||||
detail.setLatestTime(line.getTimeID());
|
detail.setLatestTime(line.getTimeID());
|
||||||
detail.setIntegrity(onlineRateByDevMap.getOrDefault(line.getLineId(), BigDecimal.valueOf(0)).doubleValue() > 100.0 ? BigDecimal.valueOf(100.0) : onlineRateByDevMap.getOrDefault(line.getLineId(), BigDecimal.valueOf(0)));
|
detail.setIntegrity(onlineRateByDevMap.getOrDefault(line.getLineId(), BigDecimal.valueOf(0)).doubleValue() > 100.0 ? BigDecimal.valueOf(100.0) : onlineRateByDevMap.getOrDefault(line.getLineId(), BigDecimal.valueOf(0)));
|
||||||
detailList.add(detail);
|
detailList.add(detail);
|
||||||
|
|||||||
@@ -1663,6 +1663,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Line> getLineByCondition(List<String> ids, DeviceInfoParam deviceInfoParam) {
|
public List<Line> getLineByCondition(List<String> ids, DeviceInfoParam deviceInfoParam) {
|
||||||
|
if(StrUtil.isNotBlank(deviceInfoParam.getSearchValue())){
|
||||||
|
return this.baseMapper.getLineByConditionBySearchValue(ids, deviceInfoParam);
|
||||||
|
}
|
||||||
return this.baseMapper.getLineByCondition(ids, deviceInfoParam);
|
return this.baseMapper.getLineByCondition(ids, deviceInfoParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -148,6 +148,8 @@ public interface LineMapper extends BaseMapper<Line> {
|
|||||||
*/
|
*/
|
||||||
List<Line> getLineByCondition(@Param("ids") List<String> ids, @Param("deviceInfoParam") DeviceInfoParam deviceInfoParam);
|
List<Line> getLineByCondition(@Param("ids") List<String> ids, @Param("deviceInfoParam") DeviceInfoParam deviceInfoParam);
|
||||||
|
|
||||||
|
List<Line> getLineByConditionBySearchValue(@Param("ids") List<String> ids, @Param("deviceInfoParam") DeviceInfoParam deviceInfoParam);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询终端信息
|
* 查询终端信息
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -147,8 +147,6 @@
|
|||||||
<!--华丽分割线 ++++ -->
|
<!--华丽分割线 ++++ -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<select id="getUnBindList" resultType="TerminalTree">
|
<select id="getUnBindList" resultType="TerminalTree">
|
||||||
select id, pid, name, level, sort
|
select id, pid, name, level, sort
|
||||||
from pq_line
|
from pq_line
|
||||||
@@ -294,9 +292,6 @@
|
|||||||
#{item.id}
|
#{item.id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="deviceInfoParam.searchValue!=null and deviceInfoParam.searchValue!='' and deviceInfoParam.lineOrDevice==0">
|
|
||||||
AND t1.name like CONCAT(CONCAT('%', #{deviceInfoParam.searchValue}), '%')
|
|
||||||
</if>
|
|
||||||
<!-- xy -->
|
<!-- xy -->
|
||||||
<choose>
|
<choose>
|
||||||
<when test="deviceInfoParam.statFlag">
|
<when test="deviceInfoParam.statFlag">
|
||||||
@@ -344,9 +339,6 @@
|
|||||||
#{item.id}
|
#{item.id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="deviceInfoParam.searchValue!=null and deviceInfoParam.searchValue!='' and deviceInfoParam.lineOrDevice==1">
|
|
||||||
AND t1.name like CONCAT(CONCAT('%', #{deviceInfoParam.searchValue}), '%')
|
|
||||||
</if>
|
|
||||||
<if test="devIds!=null and devIds.size()!=0">
|
<if test="devIds!=null and devIds.size()!=0">
|
||||||
AND t1.id IN
|
AND t1.id IN
|
||||||
<foreach collection="devIds" open="(" close=")" item="item" separator=",">
|
<foreach collection="devIds" open="(" close=")" item="item" separator=",">
|
||||||
@@ -381,8 +373,6 @@
|
|||||||
</where>
|
</where>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getVoltageIdByScale" resultType="String">
|
<select id="getVoltageIdByScale" resultType="String">
|
||||||
@@ -901,7 +891,8 @@
|
|||||||
|
|
||||||
|
|
||||||
<select id="getNewDeviceRunStatistics" resultType="LineFlowMealDetailVO">
|
<select id="getNewDeviceRunStatistics" resultType="LineFlowMealDetailVO">
|
||||||
select id,pid,pids,name,level,updateTime,runFlag,comFlag,deviceId,substation,flowMeal,round(statisValue,2) statisValue,statisValue/flowMeal as flowProportion from
|
select id,pid,pids,name,level,updateTime,runFlag,comFlag,deviceId,substation,flowMeal,round(statisValue,2)
|
||||||
|
statisValue,statisValue/flowMeal as flowProportion from
|
||||||
(
|
(
|
||||||
select
|
select
|
||||||
a.id,
|
a.id,
|
||||||
@@ -1016,24 +1007,25 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getLineList" resultType="string">
|
<select id="getLineList" resultType="string">
|
||||||
SELECT
|
SELECT A1.Id
|
||||||
A1.Id
|
FROM pq_line A1,
|
||||||
FROM
|
|
||||||
pq_line A1,
|
|
||||||
pq_line A2,
|
pq_line A2,
|
||||||
pq_line A3,
|
pq_line A3,
|
||||||
pq_line_detail B,
|
pq_line_detail B,
|
||||||
pq_device C
|
pq_device C
|
||||||
WHERE
|
WHERE A1.Level = 6
|
||||||
A1.Level = 6 AND A1.Id = B.Id AND
|
AND A1.Id = B.Id
|
||||||
A1.Pid = A2.Id AND A2.Pid = A3.Id AND A3.Id = C.Id AND
|
AND A1.Pid = A2.Id
|
||||||
C.Dev_Model = 1 AND C.Dev_Data_Type IN (1,2) AND C.Run_Flag = 0
|
AND A2.Pid = A3.Id
|
||||||
|
AND A3.Id = C.Id
|
||||||
|
AND C.Dev_Model = 1
|
||||||
|
AND C.Dev_Data_Type IN (1, 2)
|
||||||
|
AND C.Run_Flag = 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="getTerminalBaseExcel" resultType="TerminalBaseExcel">
|
<select id="getTerminalBaseExcel" resultType="TerminalBaseExcel">
|
||||||
SELECT
|
SELECT pj.NAME projectName,
|
||||||
pj.NAME projectName,
|
|
||||||
area.NAME provinceName,
|
area.NAME provinceName,
|
||||||
gd.NAME gdName,
|
gd.NAME gdName,
|
||||||
sub.NAME substationName,
|
sub.NAME substationName,
|
||||||
@@ -1076,8 +1068,7 @@
|
|||||||
de.Stat_Flag,
|
de.Stat_Flag,
|
||||||
dic3.name lineGrade,
|
dic3.name lineGrade,
|
||||||
de.Remark
|
de.Remark
|
||||||
FROM
|
FROM pq_line line
|
||||||
pq_line line
|
|
||||||
INNER JOIN pq_line vol ON line.pid = vol.id
|
INNER JOIN pq_line vol ON line.pid = vol.id
|
||||||
INNER JOIN pq_line dev ON vol.pid = dev.id
|
INNER JOIN pq_line dev ON vol.pid = dev.id
|
||||||
INNER JOIN pq_line sub ON dev.pid = sub.id
|
INNER JOIN pq_line sub ON dev.pid = sub.id
|
||||||
@@ -1124,7 +1115,11 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getDeviceList" resultType="string">
|
<select id="getDeviceList" resultType="string">
|
||||||
SELECT Id FROM pq_device WHERE Dev_Model = 1 AND Dev_Data_Type IN (1,2) AND Run_Flag = 0
|
SELECT Id
|
||||||
|
FROM pq_device
|
||||||
|
WHERE Dev_Model = 1
|
||||||
|
AND Dev_Data_Type IN (1, 2)
|
||||||
|
AND Run_Flag = 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
@@ -1161,20 +1156,17 @@
|
|||||||
|
|
||||||
|
|
||||||
<select id="getLineBySubStation" resultType="com.njcn.device.biz.pojo.dto.LineDevGetDTO">
|
<select id="getLineBySubStation" resultType="com.njcn.device.biz.pojo.dto.LineDevGetDTO">
|
||||||
SELECT
|
SELECT pq_line.id pointId,
|
||||||
pq_line.id pointId,
|
|
||||||
lineDetail.Time_Interval timeInterval,
|
lineDetail.Time_Interval timeInterval,
|
||||||
lineDetail.obj_Id objId,
|
lineDetail.obj_Id objId,
|
||||||
dev.id devId,
|
dev.id devId,
|
||||||
device.com_flag
|
device.com_flag
|
||||||
FROM
|
FROM pq_line pq_line
|
||||||
pq_line pq_line
|
|
||||||
INNER JOIN pq_line_detail lineDetail ON pq_line.id = lineDetail.id
|
INNER JOIN pq_line_detail lineDetail ON pq_line.id = lineDetail.id
|
||||||
INNER JOIN pq_line busBar ON pq_line.pid = busBar.id
|
INNER JOIN pq_line busBar ON pq_line.pid = busBar.id
|
||||||
INNER JOIN pq_line dev ON busBar.pid = dev.id
|
INNER JOIN pq_line dev ON busBar.pid = dev.id
|
||||||
INNER JOIN pq_device device ON dev.id = device.id
|
INNER JOIN pq_device device ON dev.id = device.id
|
||||||
WHERE
|
WHERE (pq_line.LEVEL = 6
|
||||||
(pq_line.LEVEL = 6
|
|
||||||
AND pq_line.state = 1
|
AND pq_line.state = 1
|
||||||
AND device.Dev_Model = 1
|
AND device.Dev_Model = 1
|
||||||
AND device.Run_Flag = 0
|
AND device.Run_Flag = 0
|
||||||
@@ -1185,7 +1177,8 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getMonitorListDetail" resultType="com.njcn.device.biz.pojo.dto.LineDevGetDTO">
|
<select id="getMonitorListDetail" resultType="com.njcn.device.biz.pojo.dto.LineDevGetDTO">
|
||||||
select line.id pointId,line.name pointName, dev.id devId,0 type,1 lineType,lineDetail.Time_Interval as timeInterval
|
select line.id pointId,line.name pointName, dev.id devId,0 type,1 lineType,lineDetail.Time_Interval as
|
||||||
|
timeInterval
|
||||||
from pq_line line
|
from pq_line line
|
||||||
inner join pq_line_detail lineDetail on line.id = lineDetail.id
|
inner join pq_line_detail lineDetail on line.id = lineDetail.id
|
||||||
inner join pq_line subv on line.pid = subv.id
|
inner join pq_line subv on line.pid = subv.id
|
||||||
@@ -1291,8 +1284,7 @@
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
<select id="getDevInfo" resultType="com.njcn.device.pq.pojo.advanced.UpDevVO">
|
<select id="getDevInfo" resultType="com.njcn.device.pq.pojo.advanced.UpDevVO">
|
||||||
select
|
select dev.id as devIndex,
|
||||||
dev.id as devIndex,
|
|
||||||
dev.name as devName
|
dev.name as devName
|
||||||
from pq_line line,
|
from pq_line line,
|
||||||
pq_line vo,
|
pq_line vo,
|
||||||
@@ -1379,7 +1371,8 @@
|
|||||||
dev.NAME AS devName,
|
dev.NAME AS devName,
|
||||||
pd.Dev_Series AS devSeries,
|
pd.Dev_Series AS devSeries,
|
||||||
pd.ip AS ip,
|
pd.ip AS ip,
|
||||||
round(ifnull(d.flow,( SELECT flow FROM cld_flow_meal WHERE type = 0 AND flag = 1 )) + ifnull( d1.flow, 0 ),2) AS flowMeal,
|
round(ifnull(d.flow,( SELECT flow FROM cld_flow_meal WHERE type = 0 AND flag = 1 )) + ifnull( d1.flow, 0 ),2) AS
|
||||||
|
flowMeal,
|
||||||
round(ifnull( m.Actual_Value / 1024 / 1024, 0 ),2) AS statisValue,
|
round(ifnull( m.Actual_Value / 1024 / 1024, 0 ),2) AS statisValue,
|
||||||
pd.Sim AS sim ,
|
pd.Sim AS sim ,
|
||||||
pld.Remark AS remark
|
pld.Remark AS remark
|
||||||
@@ -1398,8 +1391,10 @@
|
|||||||
LEFT JOIN cld_dev_meal c ON dev.id = c.line_id
|
LEFT JOIN cld_dev_meal c ON dev.id = c.line_id
|
||||||
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
|
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
|
||||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
||||||
LEFT JOIN cld_month_flow m ON dev.id = m.Dev_Id AND m.time_id between #{param.searchBeginTime} and #{param.searchEndTime}
|
LEFT JOIN cld_month_flow m ON dev.id = m.Dev_Id AND m.time_id between #{param.searchBeginTime} and
|
||||||
LEFT JOIN (SELECT dev_index,avg( online_min /( online_min + offline_min ))* 100 onlineRate FROM r_stat_onlinerate_d
|
#{param.searchEndTime}
|
||||||
|
LEFT JOIN (SELECT dev_index,avg( online_min /( online_min + offline_min ))* 100 onlineRate FROM
|
||||||
|
r_stat_onlinerate_d
|
||||||
WHERE time_id BETWEEN #{param.searchBeginTime} AND #{param.searchEndTime}
|
WHERE time_id BETWEEN #{param.searchBeginTime} AND #{param.searchEndTime}
|
||||||
GROUP BY dev_index) a on a.dev_index=dev.Id
|
GROUP BY dev_index) a on a.dev_index=dev.Id
|
||||||
LEFT JOIN (select line_index lineId,avg(real_time/due_time)*100 integrityData from r_stat_integrity_d
|
LEFT JOIN (select line_index lineId,avg(real_time/due_time)*100 integrityData from r_stat_integrity_d
|
||||||
@@ -1454,8 +1449,7 @@
|
|||||||
lineName
|
lineName
|
||||||
</select>
|
</select>
|
||||||
<select id="selectLineDetail" resultType="com.njcn.device.biz.pojo.dto.LineDTO">
|
<select id="selectLineDetail" resultType="com.njcn.device.biz.pojo.dto.LineDTO">
|
||||||
SELECT
|
SELECT line.id AS lineId,
|
||||||
line.id AS lineId,
|
|
||||||
dev.id AS devId,
|
dev.id AS devId,
|
||||||
detail.Time_Interval AS timeInterval,
|
detail.Time_Interval AS timeInterval,
|
||||||
vg.Scale AS voltageLevel,
|
vg.Scale AS voltageLevel,
|
||||||
@@ -1464,15 +1458,13 @@
|
|||||||
detail.PT_Phase_Type AS ptPhaseType,
|
detail.PT_Phase_Type AS ptPhaseType,
|
||||||
detail.Obj_Id AS objId,
|
detail.Obj_Id AS objId,
|
||||||
detail.Big_Obj_Type AS bigObjType
|
detail.Big_Obj_Type AS bigObjType
|
||||||
FROM
|
FROM pq_line line,
|
||||||
pq_line line,
|
|
||||||
pq_line_detail detail,
|
pq_line_detail detail,
|
||||||
pq_line vo,
|
pq_line vo,
|
||||||
pq_voltage vg,
|
pq_voltage vg,
|
||||||
pq_line dev,
|
pq_line dev,
|
||||||
pq_device pqd
|
pq_device pqd
|
||||||
WHERE
|
WHERE line.id = detail.id
|
||||||
line.id = detail.id
|
|
||||||
AND vo.id = line.pid
|
AND vo.id = line.pid
|
||||||
AND dev.id = vo.pid
|
AND dev.id = vo.pid
|
||||||
AND vo.id = vg.id
|
AND vo.id = vg.id
|
||||||
@@ -1511,8 +1503,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getCustomDetailByLineId" resultType="map">
|
<select id="getCustomDetailByLineId" resultType="map">
|
||||||
SELECT
|
SELECT line.id AS lineId,
|
||||||
line.id AS lineId,
|
|
||||||
CONCAT(CONCAT(CONCAT(sub.NAME, '_'), vo.NAME), CONCAT('_', line.NAME)) AS lineName,
|
CONCAT(CONCAT(CONCAT(sub.NAME, '_'), vo.NAME), CONCAT('_', line.NAME)) AS lineName,
|
||||||
CONCAT(CONCAT(COALESCE(detail.pt1, 'N/A'), ':'), COALESCE(detail.pt2, 'N/A')) AS pt,
|
CONCAT(CONCAT(COALESCE(detail.pt1, 'N/A'), ':'), COALESCE(detail.pt2, 'N/A')) AS pt,
|
||||||
CONCAT(CONCAT(COALESCE(detail.ct1, 'N/A'), ':'), COALESCE(detail.ct2, 'N/A')) AS ct,
|
CONCAT(CONCAT(COALESCE(detail.ct1, 'N/A'), ':'), COALESCE(detail.ct2, 'N/A')) AS ct,
|
||||||
@@ -1522,8 +1513,7 @@
|
|||||||
detail.Deal_Capacity AS Deal_Capacity,
|
detail.Deal_Capacity AS Deal_Capacity,
|
||||||
pqd.This_Time_Check AS This_Time_Check,
|
pqd.This_Time_Check AS This_Time_Check,
|
||||||
dic.NAME AS voltageLevel
|
dic.NAME AS voltageLevel
|
||||||
FROM
|
FROM pq_line line
|
||||||
pq_line line
|
|
||||||
JOIN pq_line_detail detail ON line.id = detail.id
|
JOIN pq_line_detail detail ON line.id = detail.id
|
||||||
JOIN pq_line vo ON vo.id = line.pid
|
JOIN pq_line vo ON vo.id = line.pid
|
||||||
JOIN pq_line dev ON dev.id = vo.pid
|
JOIN pq_line dev ON dev.id = vo.pid
|
||||||
@@ -1531,8 +1521,7 @@
|
|||||||
JOIN pq_device pqd ON pqd.id = dev.id
|
JOIN pq_device pqd ON pqd.id = dev.id
|
||||||
JOIN sys_dict_data dic ON vg.scale = dic.id
|
JOIN sys_dict_data dic ON vg.scale = dic.id
|
||||||
JOIN pq_line sub ON sub.id = dev.pid
|
JOIN pq_line sub ON sub.id = dev.pid
|
||||||
WHERE
|
WHERE line.id = #{lineId}
|
||||||
line.id = #{lineId}
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectByIds" resultType="com.njcn.device.pq.pojo.vo.LineDetailVO$Detail">
|
<select id="selectByIds" resultType="com.njcn.device.pq.pojo.vo.LineDetailVO$Detail">
|
||||||
@@ -1560,7 +1549,8 @@
|
|||||||
voltage.name as volName,
|
voltage.name as volName,
|
||||||
lineDetail.Power_Flag powerFlag,
|
lineDetail.Power_Flag powerFlag,
|
||||||
lineDetail.Run_Flag lineRunType,
|
lineDetail.Run_Flag lineRunType,
|
||||||
lineDetail.Obj_Id objId
|
lineDetail.Obj_Id objId,
|
||||||
|
lineDetail.Obj_Name objName
|
||||||
FROM
|
FROM
|
||||||
pq_line voltage,
|
pq_line voltage,
|
||||||
pq_line device,
|
pq_line device,
|
||||||
@@ -1632,8 +1622,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getDeviceDetailData" resultType="DeviceVO">
|
<select id="getDeviceDetailData" resultType="DeviceVO">
|
||||||
SELECT
|
SELECT DISTINCT gd.NAME gdName,
|
||||||
DISTINCT gd.NAME gdName,
|
|
||||||
substation.NAME subName,
|
substation.NAME subName,
|
||||||
pq_line.id devIndex,
|
pq_line.id devIndex,
|
||||||
pq_line.NAME NAME,
|
pq_line.NAME NAME,
|
||||||
@@ -1641,13 +1630,11 @@
|
|||||||
pq_device.Dev_Type,
|
pq_device.Dev_Type,
|
||||||
pq_device.IP,
|
pq_device.IP,
|
||||||
pq_device.Run_Flag
|
pq_device.Run_Flag
|
||||||
FROM
|
FROM pq_line pq_line,
|
||||||
pq_line pq_line,
|
|
||||||
pq_device pq_device,
|
pq_device pq_device,
|
||||||
pq_line substation,
|
pq_line substation,
|
||||||
pq_line gd
|
pq_line gd
|
||||||
WHERE
|
WHERE pq_line.id = pq_device.id
|
||||||
pq_line.id = pq_device.id
|
|
||||||
AND pq_line.pid = substation.id
|
AND pq_line.pid = substation.id
|
||||||
AND substation.pid = gd.id
|
AND substation.pid = gd.id
|
||||||
AND pq_line.id = #{id}
|
AND pq_line.id = #{id}
|
||||||
@@ -1715,19 +1702,16 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getNoDataLine" resultType="com.njcn.device.pq.pojo.vo.LineDetailVO$noDataLineInfo">
|
<select id="getNoDataLine" resultType="com.njcn.device.pq.pojo.vo.LineDetailVO$noDataLineInfo">
|
||||||
select
|
select pl3.Id lineId,
|
||||||
pl3.Id lineId,
|
|
||||||
pl3.Name lineName,
|
pl3.Name lineName,
|
||||||
pd.Id devId,
|
pd.Id devId,
|
||||||
pl1.name devName,
|
pl1.name devName,
|
||||||
pd.Update_Time
|
pd.Update_Time
|
||||||
from
|
from pq_device pd
|
||||||
pq_device pd
|
|
||||||
left join pq_line pl1 on pd.Id = pl1.Id
|
left join pq_line pl1 on pd.Id = pl1.Id
|
||||||
left join pq_line pl2 on pl1.Id = pl2.pId
|
left join pq_line pl2 on pl1.Id = pl2.pId
|
||||||
left join pq_line pl3 on pl2.Id = pl3.pId
|
left join pq_line pl3 on pl2.Id = pl3.pId
|
||||||
where
|
where pd.Dev_Model = 1
|
||||||
pd.Dev_Model = 1
|
|
||||||
and pd.Run_Flag = 0
|
and pd.Run_Flag = 0
|
||||||
and pl1.state = 1
|
and pl1.state = 1
|
||||||
and pl3.Id is not null
|
and pl3.Id is not null
|
||||||
@@ -1806,7 +1790,8 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="param.searchValue!=null and param.searchValue!=''">
|
<if test="param.searchValue!=null and param.searchValue!=''">
|
||||||
AND (t1.name like CONCAT('%', #{param.searchValue}, '%') or t2.Power_Substation_Name like CONCAT('%', #{param.searchValue}, '%'))
|
AND (t1.name like CONCAT('%', #{param.searchValue}, '%') or t2.Power_Substation_Name like CONCAT('%',
|
||||||
|
#{param.searchValue}, '%'))
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
</where>
|
</where>
|
||||||
@@ -1829,15 +1814,13 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getLineByDeviceId" resultType="com.njcn.device.pq.pojo.dto.MonitorInfo">
|
<select id="getLineByDeviceId" resultType="com.njcn.device.pq.pojo.dto.MonitorInfo">
|
||||||
SELECT
|
SELECT pq_line_detail.id id,
|
||||||
pq_line_detail.id id,
|
|
||||||
line.Name name,
|
line.Name name,
|
||||||
pq_line_detail.Num lineNo,
|
pq_line_detail.Num lineNo,
|
||||||
s1.Name voltageLevel,
|
s1.Name voltageLevel,
|
||||||
pq_line_detail.PT_Type ptType,
|
pq_line_detail.PT_Type ptType,
|
||||||
pq_line_detail.Run_Flag status
|
pq_line_detail.Run_Flag status
|
||||||
FROM
|
FROM pq_line_detail
|
||||||
pq_line_detail
|
|
||||||
LEFT JOIN pq_line line ON pq_line_detail.Id = line.Id
|
LEFT JOIN pq_line line ON pq_line_detail.Id = line.Id
|
||||||
INNER JOIN pq_line voltage on voltage.id = line.Pid
|
INNER JOIN pq_line voltage on voltage.id = line.Pid
|
||||||
LEFT JOIN pq_voltage ON pq_voltage.id = voltage.id
|
LEFT JOIN pq_voltage ON pq_voltage.id = voltage.id
|
||||||
@@ -1846,10 +1829,15 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getLineAndLineDetail" resultType="TerminalTree">
|
<select id="getLineAndLineDetail" resultType="TerminalTree">
|
||||||
select
|
select t1.id,
|
||||||
t1.id,t1.name,t1.pid,t2.obj_id,t1.sort,t1.pids,t1.level
|
t1.name,
|
||||||
from
|
t1.pid,
|
||||||
pq_line t1 inner join pq_line_detail t2 on t1.id = t2.id
|
t2.obj_id,
|
||||||
|
t1.sort,
|
||||||
|
t1.pids,
|
||||||
|
t1.level
|
||||||
|
from pq_line t1
|
||||||
|
inner join pq_line_detail t2 on t1.id = t2.id
|
||||||
where t1.state = 1
|
where t1.state = 1
|
||||||
</select>
|
</select>
|
||||||
<select id="getLineDeviceByDevIds" resultType="com.njcn.device.pq.pojo.vo.DevDetailVO">
|
<select id="getLineDeviceByDevIds" resultType="com.njcn.device.pq.pojo.vo.DevDetailVO">
|
||||||
@@ -1905,7 +1893,9 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getSubIdByPid" resultType="String">
|
<select id="getSubIdByPid" resultType="String">
|
||||||
SELECT id from pq_line where pid = #{pid}
|
SELECT id
|
||||||
|
from pq_line
|
||||||
|
where pid = #{pid}
|
||||||
</select>
|
</select>
|
||||||
<select id="getDeviceIdByJbPowerFlag" resultType="java.lang.String">
|
<select id="getDeviceIdByJbPowerFlag" resultType="java.lang.String">
|
||||||
select
|
select
|
||||||
@@ -2022,5 +2012,58 @@
|
|||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getLineByConditionBySearchValue" resultType="com.njcn.device.pq.pojo.po.Line">
|
||||||
|
SELECT DISTINCT
|
||||||
|
t1.*
|
||||||
|
FROM
|
||||||
|
pq_line t1,
|
||||||
|
pq_line_detail t2,
|
||||||
|
pq_line voltage,
|
||||||
|
pq_line device,
|
||||||
|
pq_line substation
|
||||||
|
WHERE
|
||||||
|
t1.state = 1
|
||||||
|
AND t1.id = t2.id
|
||||||
|
AND t1.pid = voltage.id
|
||||||
|
AND voltage.pid = device.id
|
||||||
|
AND device.pid = substation.id
|
||||||
|
and
|
||||||
|
t1.id in
|
||||||
|
<foreach collection="ids" separator="," open="(" close=")" item="item">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
<if test="deviceInfoParam.monitorFlag!=2 and deviceInfoParam.monitorFlag!=null">
|
||||||
|
and t2.Monitor_Flag = #{deviceInfoParam.monitorFlag}
|
||||||
|
</if>
|
||||||
|
<if test="deviceInfoParam.powerFlag!=2 and deviceInfoParam.powerFlag!=null ">
|
||||||
|
and t2.Power_Flag = #{deviceInfoParam.powerFlag}
|
||||||
|
</if>
|
||||||
|
<if test="deviceInfoParam.lineRunFlag!=null ">
|
||||||
|
and t2.Run_Flag = #{deviceInfoParam.lineRunFlag}
|
||||||
|
</if>
|
||||||
|
<if test="deviceInfoParam.lineGrade!='' and deviceInfoParam.lineGrade!=null">
|
||||||
|
and t2.line_grade = #{deviceInfoParam.lineGrade}
|
||||||
|
</if>
|
||||||
|
<if test="deviceInfoParam.loadType!=null and deviceInfoParam.loadType.size()!=0">
|
||||||
|
AND t2.Load_Type in
|
||||||
|
<foreach collection="deviceInfoParam.loadType" open="(" close=")" item="item" separator=",">
|
||||||
|
#{item.id}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="deviceInfoParam.searchValue!=null and deviceInfoParam.searchValue!=''">
|
||||||
|
and (
|
||||||
|
t1.name like CONCAT('%', #{deviceInfoParam.searchValue}, '%')
|
||||||
|
or t2.Obj_Name like CONCAT('%', #{deviceInfoParam.searchValue}, '%')
|
||||||
|
or device.NAME like CONCAT('%', #{deviceInfoParam.searchValue}, '%')
|
||||||
|
or substation.NAME like CONCAT('%', #{deviceInfoParam.searchValue},'%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<!-- xy -->
|
||||||
|
<choose>
|
||||||
|
<when test="deviceInfoParam.statFlag">
|
||||||
|
AND t2.Stat_Flag = 1
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
<!-- -->
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user