1.解决数据质量监测点数据完整性查询过慢问题
This commit is contained in:
@@ -105,9 +105,12 @@ public class LineDetailVO implements Serializable {
|
||||
@ApiModelProperty(name = "终端厂家")
|
||||
private String manufacturer;
|
||||
|
||||
@ApiModelProperty(name = "终端厂家")
|
||||
@ApiModelProperty(name = "监测对象ID")
|
||||
private String objId;
|
||||
|
||||
@ApiModelProperty(name = "监测对象名称")
|
||||
private String objName;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
|
||||
@@ -154,7 +154,6 @@ public class LineIntegrityDataController extends BaseController {
|
||||
@ApiOperation("监测点数据完整性(冀北)")
|
||||
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
|
||||
public HttpResult<DeviceOnlineRate> getData(@RequestBody DeviceInfoParam.BusinessParam param) {
|
||||
param.setLineOrDevice(0);
|
||||
String methodDescribe = getMethodDescribe("getData");
|
||||
DeviceOnlineRate rate = irStatIntegrityDService.getData(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe);
|
||||
|
||||
@@ -68,8 +68,6 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
||||
private final LineDetailMapper lineDetailMapper;
|
||||
private final GeneralDeviceService deviceService;
|
||||
private final LineService lineService;
|
||||
private final UserLedgerService userLedgerService;
|
||||
private final CommLineClient commLineClient;
|
||||
|
||||
@Override
|
||||
public Float getTotalIntegrityByLineIds(LineBaseQueryParam param) {
|
||||
@@ -150,9 +148,6 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
||||
@Override
|
||||
public DeviceOnlineRate getData(DeviceInfoParam.BusinessParam param) {
|
||||
DeviceOnlineRate rate = new DeviceOnlineRate();
|
||||
//BusinessParam的searchvalue只匹配监测点名称现在要匹配电站,监测点,监测点对象名称,所以穿空再添加过滤逻辑
|
||||
String tempSearchValue=param.getSearchValue();
|
||||
param.setSearchValue("");
|
||||
//获取终端台账类信息
|
||||
List<GeneralDeviceDTO> deviceInfo = deviceService.getDeviceInfo(param, null, Collections.singletonList(1));
|
||||
if (CollUtil.isNotEmpty(deviceInfo)) {
|
||||
@@ -161,61 +156,17 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
||||
.stream()
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
List<String> filterLineList = new ArrayList<>();
|
||||
|
||||
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<RStatIntegrityVO> lineIntegrityRateInfo = rStatIntegrityDMapper.getLineIntegrityRateInfo(lineIds, 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.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, filterLineList).doubleValue()>100.0?BigDecimal.valueOf(100.0) : calculateIntegrityRate(lineIntegrityRateInfo, lineIds));
|
||||
rate.setTotalNum(lineIds.size());
|
||||
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<>();
|
||||
DeviceOnlineRate.CitDetail citDetail;
|
||||
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) {
|
||||
//获取部门终端集合
|
||||
List<RStatIntegrityVO> citDevOnRate = lineIntegrityRateInfo.stream().filter(x -> dto.getLineIndexes().contains(x.getLineIndex())).collect(Collectors.toList());
|
||||
@@ -223,11 +174,10 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
||||
.collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate));
|
||||
citDetail = new DeviceOnlineRate.CitDetail();
|
||||
List<LineDetailVO.Detail> lineDetail = LineInfoByIds.stream().filter(x -> dto.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList());
|
||||
|
||||
citDetail.setCitName(dto.getName());
|
||||
citDetail.setCitTotalNum(dto.getLineIndexes().size());
|
||||
citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate) ? calculateIntegrityRate(citDevOnRate, 90, dto.getLineIndexes().size()) : dto.getLineIndexes().size());
|
||||
citDetail.setCitTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, dto.getLineIndexes()).doubleValue()>100.0?BigDecimal.valueOf(100.0):calculateIntegrityRate(lineIntegrityRateInfo, dto.getLineIndexes()));
|
||||
citDetail.setCitTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, dto.getLineIndexes()).doubleValue() > 100.0 ? BigDecimal.valueOf(100.0) : calculateIntegrityRate(lineIntegrityRateInfo, dto.getLineIndexes()));
|
||||
List<DeviceOnlineRate.LineDetail> detailList = new ArrayList<>();
|
||||
for (LineDetailVO.Detail line : lineDetail) {
|
||||
detail = new DeviceOnlineRate.LineDetail();
|
||||
@@ -242,9 +192,9 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
||||
detail.setLineId(line.getLineId());
|
||||
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.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);
|
||||
}
|
||||
citDetail.setDetailList(detailList);
|
||||
|
||||
@@ -1663,6 +1663,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -148,6 +148,8 @@ public interface LineMapper extends BaseMapper<Line> {
|
||||
*/
|
||||
List<Line> getLineByCondition(@Param("ids") List<String> ids, @Param("deviceInfoParam") DeviceInfoParam deviceInfoParam);
|
||||
|
||||
List<Line> getLineByConditionBySearchValue(@Param("ids") List<String> ids, @Param("deviceInfoParam") DeviceInfoParam deviceInfoParam);
|
||||
|
||||
/**
|
||||
* 查询终端信息
|
||||
*
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
</select>
|
||||
|
||||
<select id="getVoltageByDevId" resultType="Voltage">
|
||||
select a.id,a.name,b.num
|
||||
select a.id, a.name, b.num
|
||||
from pq_line a
|
||||
inner join pq_voltage b on a.id = b.id
|
||||
where a.pid = #{devId}
|
||||
@@ -66,7 +66,7 @@
|
||||
</select>
|
||||
|
||||
<select id="getAllList" resultType="TerminalTree">
|
||||
select a.id, a.pid, a.name, a.level, a.sort ,b.Power_Flag
|
||||
select a.id, a.pid, a.name, a.level, a.sort, b.Power_Flag
|
||||
from pq_line a
|
||||
left join pq_line_detail b on a.id = b.id
|
||||
where state = 1
|
||||
@@ -147,8 +147,6 @@
|
||||
<!--华丽分割线 ++++ -->
|
||||
|
||||
|
||||
|
||||
|
||||
<select id="getUnBindList" resultType="TerminalTree">
|
||||
select id, pid, name, level, sort
|
||||
from pq_line
|
||||
@@ -294,9 +292,6 @@
|
||||
#{item.id}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="deviceInfoParam.searchValue!=null and deviceInfoParam.searchValue!='' and deviceInfoParam.lineOrDevice==0">
|
||||
AND t1.name like CONCAT(CONCAT('%', #{deviceInfoParam.searchValue}), '%')
|
||||
</if>
|
||||
<!-- xy -->
|
||||
<choose>
|
||||
<when test="deviceInfoParam.statFlag">
|
||||
@@ -344,9 +339,6 @@
|
||||
#{item.id}
|
||||
</foreach>
|
||||
</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">
|
||||
AND t1.id IN
|
||||
<foreach collection="devIds" open="(" close=")" item="item" separator=",">
|
||||
@@ -381,8 +373,6 @@
|
||||
</where>
|
||||
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getVoltageIdByScale" resultType="String">
|
||||
@@ -437,54 +427,54 @@
|
||||
</select>
|
||||
|
||||
<select id="getBaseLineInfo" resultType="BaseLineInfo">
|
||||
<!-- SELECT-->
|
||||
<!-- line.Id,-->
|
||||
<!-- area.Name provincialName,-->
|
||||
<!-- gd.Name gdName,-->
|
||||
<!-- substation.Name subName,-->
|
||||
<!-- subscale.Name subScale,-->
|
||||
<!-- device.Name deviceName,-->
|
||||
<!-- pqdevice.IP networkParam,-->
|
||||
<!-- pqdevice.Com_Flag comState,-->
|
||||
<!-- factory.Name factoryName,-->
|
||||
<!-- pqdevice.Update_Time time,-->
|
||||
<!-- voltage.Name subvName,-->
|
||||
<!-- scale.Name subvScale,-->
|
||||
<!-- line.Name lineName,-->
|
||||
<!-- line.Sort-->
|
||||
<!-- FROM-->
|
||||
<!-- pq_line line,-->
|
||||
<!-- pq_line voltage,-->
|
||||
<!-- pq_voltage pqvoltage,-->
|
||||
<!-- pq_line device,-->
|
||||
<!-- pq_device pqdevice,-->
|
||||
<!-- pq_line substation,-->
|
||||
<!-- pq_substation pqsubstation,-->
|
||||
<!-- pq_line gd,-->
|
||||
<!-- pq_line provincial,-->
|
||||
<!-- sys_dict_data scale,-->
|
||||
<!-- sys_dict_data factory,-->
|
||||
<!-- sys_dict_data loadtype,-->
|
||||
<!-- sys_dict_data subscale,-->
|
||||
<!-- sys_area area-->
|
||||
<!-- WHERE-->
|
||||
<!-- line.pid = voltage.id-->
|
||||
<!-- AND voltage.id = pqvoltage.id-->
|
||||
<!-- AND pqvoltage.Scale = scale.id-->
|
||||
<!-- AND voltage.pid = device.id-->
|
||||
<!-- AND voltage.pid = pqdevice.id-->
|
||||
<!-- AND pqdevice.Manufacturer = factory.id-->
|
||||
<!-- AND device.pid = substation.id-->
|
||||
<!-- AND substation.id = pqsubstation.id-->
|
||||
<!-- AND pqsubstation.Scale = subscale.id-->
|
||||
<!-- AND substation.pid = gd.id-->
|
||||
<!-- AND gd.pid = provincial.id-->
|
||||
<!-- AND provincial.NAME = area.id-->
|
||||
<!-- AND line.Id IN-->
|
||||
<!-- <foreach item="item" collection="list" separator="," open="(" close=")">-->
|
||||
<!-- #{item}-->
|
||||
<!-- </foreach>-->
|
||||
<!-- GROUP BY line.id-->
|
||||
<!-- SELECT-->
|
||||
<!-- line.Id,-->
|
||||
<!-- area.Name provincialName,-->
|
||||
<!-- gd.Name gdName,-->
|
||||
<!-- substation.Name subName,-->
|
||||
<!-- subscale.Name subScale,-->
|
||||
<!-- device.Name deviceName,-->
|
||||
<!-- pqdevice.IP networkParam,-->
|
||||
<!-- pqdevice.Com_Flag comState,-->
|
||||
<!-- factory.Name factoryName,-->
|
||||
<!-- pqdevice.Update_Time time,-->
|
||||
<!-- voltage.Name subvName,-->
|
||||
<!-- scale.Name subvScale,-->
|
||||
<!-- line.Name lineName,-->
|
||||
<!-- line.Sort-->
|
||||
<!-- FROM-->
|
||||
<!-- pq_line line,-->
|
||||
<!-- pq_line voltage,-->
|
||||
<!-- pq_voltage pqvoltage,-->
|
||||
<!-- pq_line device,-->
|
||||
<!-- pq_device pqdevice,-->
|
||||
<!-- pq_line substation,-->
|
||||
<!-- pq_substation pqsubstation,-->
|
||||
<!-- pq_line gd,-->
|
||||
<!-- pq_line provincial,-->
|
||||
<!-- sys_dict_data scale,-->
|
||||
<!-- sys_dict_data factory,-->
|
||||
<!-- sys_dict_data loadtype,-->
|
||||
<!-- sys_dict_data subscale,-->
|
||||
<!-- sys_area area-->
|
||||
<!-- WHERE-->
|
||||
<!-- line.pid = voltage.id-->
|
||||
<!-- AND voltage.id = pqvoltage.id-->
|
||||
<!-- AND pqvoltage.Scale = scale.id-->
|
||||
<!-- AND voltage.pid = device.id-->
|
||||
<!-- AND voltage.pid = pqdevice.id-->
|
||||
<!-- AND pqdevice.Manufacturer = factory.id-->
|
||||
<!-- AND device.pid = substation.id-->
|
||||
<!-- AND substation.id = pqsubstation.id-->
|
||||
<!-- AND pqsubstation.Scale = subscale.id-->
|
||||
<!-- AND substation.pid = gd.id-->
|
||||
<!-- AND gd.pid = provincial.id-->
|
||||
<!-- AND provincial.NAME = area.id-->
|
||||
<!-- AND line.Id IN-->
|
||||
<!-- <foreach item="item" collection="list" separator="," open="(" close=")">-->
|
||||
<!-- #{item}-->
|
||||
<!-- </foreach>-->
|
||||
<!-- GROUP BY line.id-->
|
||||
|
||||
select
|
||||
line.Id,
|
||||
@@ -901,7 +891,8 @@
|
||||
|
||||
|
||||
<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
|
||||
a.id,
|
||||
@@ -1016,24 +1007,25 @@
|
||||
</select>
|
||||
|
||||
<select id="getLineList" resultType="string">
|
||||
SELECT
|
||||
A1.Id
|
||||
FROM
|
||||
pq_line A1,
|
||||
SELECT A1.Id
|
||||
FROM pq_line A1,
|
||||
pq_line A2,
|
||||
pq_line A3,
|
||||
pq_line_detail B,
|
||||
pq_device C
|
||||
WHERE
|
||||
A1.Level = 6 AND A1.Id = B.Id AND
|
||||
A1.Pid = A2.Id 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
|
||||
WHERE A1.Level = 6
|
||||
AND A1.Id = B.Id
|
||||
AND A1.Pid = A2.Id
|
||||
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 id="getTerminalBaseExcel" resultType="TerminalBaseExcel">
|
||||
SELECT
|
||||
pj.NAME projectName,
|
||||
SELECT pj.NAME projectName,
|
||||
area.NAME provinceName,
|
||||
gd.NAME gdName,
|
||||
sub.NAME substationName,
|
||||
@@ -1060,8 +1052,8 @@
|
||||
vo.Model subvModel,
|
||||
line.NAME lineName,
|
||||
de.Num lineNum,
|
||||
concat( de.PT1, "/", de.PT2 ) AS pt,
|
||||
concat( de.CT1, "/", de.CT2 ) AS ct,
|
||||
concat(de.PT1, "/", de.PT2) AS pt,
|
||||
concat(de.CT1, "/", de.CT2) AS ct,
|
||||
de.Dev_Capacity,
|
||||
de.Short_Capacity,
|
||||
de.Standard_Capacity,
|
||||
@@ -1076,8 +1068,7 @@
|
||||
de.Stat_Flag,
|
||||
dic3.name lineGrade,
|
||||
de.Remark
|
||||
FROM
|
||||
pq_line line
|
||||
FROM pq_line line
|
||||
INNER JOIN pq_line vol ON line.pid = vol.id
|
||||
INNER JOIN pq_line dev ON vol.pid = dev.id
|
||||
INNER JOIN pq_line sub ON dev.pid = sub.id
|
||||
@@ -1098,7 +1089,7 @@
|
||||
left join pq_dev_type dic7 on d.Dev_Type = dic7.id
|
||||
left join sys_dict_data dic8 on d.front_type = dic8.id
|
||||
LEFT JOIN pq_node node ON d.Node_Id = node.id
|
||||
order by pj.sort,pro.sort,gd.sort,sub.sort,dev.sort,vol.sort,line.sort
|
||||
order by pj.sort, pro.sort, gd.sort, sub.sort, dev.sort, vol.sort, line.sort
|
||||
</select>
|
||||
|
||||
<select id="getDevIndex" resultType="String">
|
||||
@@ -1124,7 +1115,11 @@
|
||||
</select>
|
||||
|
||||
<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>
|
||||
|
||||
|
||||
@@ -1161,31 +1156,29 @@
|
||||
|
||||
|
||||
<select id="getLineBySubStation" resultType="com.njcn.device.biz.pojo.dto.LineDevGetDTO">
|
||||
SELECT
|
||||
pq_line.id pointId,
|
||||
SELECT pq_line.id pointId,
|
||||
lineDetail.Time_Interval timeInterval,
|
||||
lineDetail.obj_Id objId,
|
||||
dev.id devId,
|
||||
device.com_flag
|
||||
FROM
|
||||
pq_line pq_line
|
||||
FROM pq_line pq_line
|
||||
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 dev ON busBar.pid = dev.id
|
||||
INNER JOIN pq_device device ON dev.id = device.id
|
||||
WHERE
|
||||
(pq_line.LEVEL = 6
|
||||
WHERE (pq_line.LEVEL = 6
|
||||
AND pq_line.state = 1
|
||||
AND device.Dev_Model = 1
|
||||
AND device.Run_Flag = 0
|
||||
)
|
||||
and FIND_IN_SET(#{subId}, pq_line.pids );
|
||||
and FIND_IN_SET(#{subId}, pq_line.pids);
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<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
|
||||
inner join pq_line_detail lineDetail on line.id = lineDetail.id
|
||||
inner join pq_line subv on line.pid = subv.id
|
||||
@@ -1270,7 +1263,7 @@
|
||||
SELECT
|
||||
voltage.id as id,
|
||||
sub.id as pid,
|
||||
<!-- 兼容国产数据库-->
|
||||
<!-- 兼容国产数据库-->
|
||||
concat( sub.NAME, ' ', voltage.NAME ) as name,
|
||||
voltage.Sort as sort
|
||||
FROM
|
||||
@@ -1291,8 +1284,7 @@
|
||||
</where>
|
||||
</select>
|
||||
<select id="getDevInfo" resultType="com.njcn.device.pq.pojo.advanced.UpDevVO">
|
||||
select
|
||||
dev.id as devIndex,
|
||||
select dev.id as devIndex,
|
||||
dev.name as devName
|
||||
from pq_line line,
|
||||
pq_line vo,
|
||||
@@ -1379,7 +1371,8 @@
|
||||
dev.NAME AS devName,
|
||||
pd.Dev_Series AS devSeries,
|
||||
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,
|
||||
pd.Sim AS sim ,
|
||||
pld.Remark AS remark
|
||||
@@ -1398,8 +1391,10 @@
|
||||
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 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 (SELECT dev_index,avg( online_min /( online_min + offline_min ))* 100 onlineRate FROM r_stat_onlinerate_d
|
||||
LEFT JOIN cld_month_flow m ON dev.id = m.Dev_Id AND m.time_id between #{param.searchBeginTime} and
|
||||
#{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}
|
||||
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
|
||||
@@ -1454,8 +1449,7 @@
|
||||
lineName
|
||||
</select>
|
||||
<select id="selectLineDetail" resultType="com.njcn.device.biz.pojo.dto.LineDTO">
|
||||
SELECT
|
||||
line.id AS lineId,
|
||||
SELECT line.id AS lineId,
|
||||
dev.id AS devId,
|
||||
detail.Time_Interval AS timeInterval,
|
||||
vg.Scale AS voltageLevel,
|
||||
@@ -1464,15 +1458,13 @@
|
||||
detail.PT_Phase_Type AS ptPhaseType,
|
||||
detail.Obj_Id AS objId,
|
||||
detail.Big_Obj_Type AS bigObjType
|
||||
FROM
|
||||
pq_line line,
|
||||
FROM pq_line line,
|
||||
pq_line_detail detail,
|
||||
pq_line vo,
|
||||
pq_voltage vg,
|
||||
pq_line dev,
|
||||
pq_device pqd
|
||||
WHERE
|
||||
line.id = detail.id
|
||||
WHERE line.id = detail.id
|
||||
AND vo.id = line.pid
|
||||
AND dev.id = vo.pid
|
||||
AND vo.id = vg.id
|
||||
@@ -1511,8 +1503,7 @@
|
||||
</select>
|
||||
|
||||
<select id="getCustomDetailByLineId" resultType="map">
|
||||
SELECT
|
||||
line.id AS lineId,
|
||||
SELECT line.id AS lineId,
|
||||
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.ct1, 'N/A'), ':'), COALESCE(detail.ct2, 'N/A')) AS ct,
|
||||
@@ -1522,8 +1513,7 @@
|
||||
detail.Deal_Capacity AS Deal_Capacity,
|
||||
pqd.This_Time_Check AS This_Time_Check,
|
||||
dic.NAME AS voltageLevel
|
||||
FROM
|
||||
pq_line line
|
||||
FROM pq_line line
|
||||
JOIN pq_line_detail detail ON line.id = detail.id
|
||||
JOIN pq_line vo ON vo.id = line.pid
|
||||
JOIN pq_line dev ON dev.id = vo.pid
|
||||
@@ -1531,8 +1521,7 @@
|
||||
JOIN pq_device pqd ON pqd.id = dev.id
|
||||
JOIN sys_dict_data dic ON vg.scale = dic.id
|
||||
JOIN pq_line sub ON sub.id = dev.pid
|
||||
WHERE
|
||||
line.id = #{lineId}
|
||||
WHERE line.id = #{lineId}
|
||||
</select>
|
||||
|
||||
<select id="selectByIds" resultType="com.njcn.device.pq.pojo.vo.LineDetailVO$Detail">
|
||||
@@ -1560,7 +1549,8 @@
|
||||
voltage.name as volName,
|
||||
lineDetail.Power_Flag powerFlag,
|
||||
lineDetail.Run_Flag lineRunType,
|
||||
lineDetail.Obj_Id objId
|
||||
lineDetail.Obj_Id objId,
|
||||
lineDetail.Obj_Name objName
|
||||
FROM
|
||||
pq_line voltage,
|
||||
pq_line device,
|
||||
@@ -1632,8 +1622,7 @@
|
||||
</select>
|
||||
|
||||
<select id="getDeviceDetailData" resultType="DeviceVO">
|
||||
SELECT
|
||||
DISTINCT gd.NAME gdName,
|
||||
SELECT DISTINCT gd.NAME gdName,
|
||||
substation.NAME subName,
|
||||
pq_line.id devIndex,
|
||||
pq_line.NAME NAME,
|
||||
@@ -1641,13 +1630,11 @@
|
||||
pq_device.Dev_Type,
|
||||
pq_device.IP,
|
||||
pq_device.Run_Flag
|
||||
FROM
|
||||
pq_line pq_line,
|
||||
FROM pq_line pq_line,
|
||||
pq_device pq_device,
|
||||
pq_line substation,
|
||||
pq_line gd
|
||||
WHERE
|
||||
pq_line.id = pq_device.id
|
||||
WHERE pq_line.id = pq_device.id
|
||||
AND pq_line.pid = substation.id
|
||||
AND substation.pid = gd.id
|
||||
AND pq_line.id = #{id}
|
||||
@@ -1715,19 +1702,16 @@
|
||||
</select>
|
||||
|
||||
<select id="getNoDataLine" resultType="com.njcn.device.pq.pojo.vo.LineDetailVO$noDataLineInfo">
|
||||
select
|
||||
pl3.Id lineId,
|
||||
select pl3.Id lineId,
|
||||
pl3.Name lineName,
|
||||
pd.Id devId,
|
||||
pl1.name devName,
|
||||
pd.Update_Time
|
||||
from
|
||||
pq_device pd
|
||||
from pq_device pd
|
||||
left join pq_line pl1 on pd.Id = pl1.Id
|
||||
left join pq_line pl2 on pl1.Id = pl2.pId
|
||||
left join pq_line pl3 on pl2.Id = pl3.pId
|
||||
where
|
||||
pd.Dev_Model = 1
|
||||
where pd.Dev_Model = 1
|
||||
and pd.Run_Flag = 0
|
||||
and pl1.state = 1
|
||||
and pl3.Id is not null
|
||||
@@ -1806,7 +1790,8 @@
|
||||
</foreach>
|
||||
</if>
|
||||
<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>
|
||||
|
||||
</where>
|
||||
@@ -1829,27 +1814,30 @@
|
||||
</select>
|
||||
|
||||
<select id="getLineByDeviceId" resultType="com.njcn.device.pq.pojo.dto.MonitorInfo">
|
||||
SELECT
|
||||
pq_line_detail.id id,
|
||||
SELECT pq_line_detail.id id,
|
||||
line.Name name,
|
||||
pq_line_detail.Num lineNo,
|
||||
s1.Name voltageLevel,
|
||||
pq_line_detail.PT_Type ptType,
|
||||
pq_line_detail.Run_Flag status
|
||||
FROM
|
||||
pq_line_detail
|
||||
FROM pq_line_detail
|
||||
LEFT JOIN pq_line line ON pq_line_detail.Id = line.Id
|
||||
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
|
||||
LEFT JOIN sys_dict_data s1 ON pq_voltage.Scale = s1.id
|
||||
WHERE voltage.Pid = #{id}
|
||||
</select>
|
||||
|
||||
<select id="getLineAndLineDetail" resultType="TerminalTree">
|
||||
select
|
||||
t1.id,t1.name,t1.pid,t2.obj_id,t1.sort,t1.pids,t1.level
|
||||
from
|
||||
pq_line t1 inner join pq_line_detail t2 on t1.id = t2.id
|
||||
select t1.id,
|
||||
t1.name,
|
||||
t1.pid,
|
||||
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
|
||||
</select>
|
||||
<select id="getLineDeviceByDevIds" resultType="com.njcn.device.pq.pojo.vo.DevDetailVO">
|
||||
@@ -1905,7 +1893,9 @@
|
||||
</select>
|
||||
|
||||
<select id="getSubIdByPid" resultType="String">
|
||||
SELECT id from pq_line where pid = #{pid}
|
||||
SELECT id
|
||||
from pq_line
|
||||
where pid = #{pid}
|
||||
</select>
|
||||
<select id="getDeviceIdByJbPowerFlag" resultType="java.lang.String">
|
||||
select
|
||||
@@ -2022,5 +2012,58 @@
|
||||
|
||||
|
||||
</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>
|
||||
|
||||
Reference in New Issue
Block a user