Commit 01dd19c8 authored by zhangsen's avatar zhangsen

升压站主屏消息接口开发

parent ac4f08c5
...@@ -37,4 +37,8 @@ public interface MonitorFanIndicatorMapper extends BaseMapper<MonitorFanIndicato ...@@ -37,4 +37,8 @@ public interface MonitorFanIndicatorMapper extends BaseMapper<MonitorFanIndicato
List<Map<String, String>> getFanConfigPower(@Param("gatewayId") String gatewayId); List<Map<String, String>> getFanConfigPower(@Param("gatewayId") String gatewayId);
List<Map<String, String>> getBoosterStationInfo(@Param("gatewayId") String gatewayId); List<Map<String, String>> getBoosterStationInfo(@Param("gatewayId") String gatewayId);
List<Map<String, String>> getMajorBoosterStationInfo(@Param("gatewayId") String gatewayId,
@Param("sortType") String sortType,
@Param("size") Integer size);
} }
...@@ -111,4 +111,22 @@ ...@@ -111,4 +111,22 @@
</where> </where>
ORDER BY sort ASC ORDER BY sort ASC
</select> </select>
<select id="getMajorBoosterStationInfo" resultType="java.util.Map">
select
`sequence_nbr` as id,
`gateway_id` as gatewayId,
`booster_name` as text,
booster_name as boosterName,
`booster_code` as boosterCode,
`sort` as value
from booster_station_info
<where>
<if test="gatewayId != null and gatewayId != ''">
AND gateway_id = #{gatewayId}
</if>
</where>
ORDER BY major_sort ${sortType}
limit #{size}
</select>
</mapper> </mapper>
...@@ -376,4 +376,18 @@ public class MonitorFanIdxController extends BaseController { ...@@ -376,4 +376,18 @@ public class MonitorFanIdxController extends BaseController {
return CommonResponseUtil.success(); return CommonResponseUtil.success();
} }
// @Scheduled(cron = "0/10 * * * * ? ")
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@ApiOperation(value = "升压站主屏消息接口")
@GetMapping("/getMajorAnalogQuantityByPage")
public ResponseModel getMajorAnalogQuantityByPage() {
LambdaQueryWrapper<StationBasic> wrapper = new LambdaQueryWrapper<>();
List<StationBasic> stationBasics = stationBasicMapper.selectList(wrapper);
for (StationBasic stationBasic : stationBasics) {
String gatewayId = stationBasic.getBoosterGatewayId();
monitorFanIndicator.getMajorAnalogQuantityByPage(gatewayId, stationBasic.getSequenceNbr().toString());
}
return CommonResponseUtil.success();
}
} }
...@@ -743,5 +743,96 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -743,5 +743,96 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
} }
} }
} }
public void getMajorAnalogQuantityByPage(String gatewayId, String stationId) {
if (StringUtils.isNotEmpty(gatewayId)) {
// List<Map<String, String>> boosterStationInfo = monitorFanIndicatorregionMapper.getMajorBoosterStationInfo(gatewayId, "DESC", 3);
String xianSql = String.format("SELECT equipmentIndexName, value, frontModule, unit, displayName FROM \"indicators_%s\" WHERE systemType = '模拟量' and (frontModule = '220kVⅠ母PT' or frontModule = '35kVⅠ母PT')", gatewayId);
List<IndicatorsDto> xianData = influxDButils.getListData(xianSql, IndicatorsDto.class);
HashMap<String, Object> resultMap = new HashMap<>();
xianData.forEach(item -> {
if ("220kVⅠ母PT".equals(item.getFrontModule())) {
resultMap.put("220" + item.getDisplayName(), item.getValue());
} else if ("35kVⅠ母PT".equals(item.getFrontModule())) {
resultMap.put("35" + item.getDisplayName(), item.getValue());
}
});
String xyxSql = String.format("SELECT value, displayName FROM \"indicators_%s\" WHERE systemType = '模拟量' and frontModule = '夏雩线' and (displayName = 'Ia' or displayName = 'P' or displayName = 'Q' or displayName = 'Ux' ", gatewayId);
List<IndicatorsDto> xyxSqlData = influxDButils.getListData(xyxSql, IndicatorsDto.class);
xyxSqlData.forEach(item -> resultMap.put("xyx" + item.getDisplayName(), item.getValue()));
String dlbjSql = String.format("SELECT value, displayName FROM \"indicators_%s\" WHERE systemType = '模拟量' and frontModule = '电量表计'", gatewayId);
List<IndicatorsDto> dlbjSqlData = influxDButils.getListData(dlbjSql, IndicatorsDto.class);
dlbjSqlData.forEach(item -> {
if ("正向总有功".equals(item.getDisplayName())) {
resultMap.put("2000S1", item.getValue());
} else if ("正向总无功".equals(item.getDisplayName())) {
resultMap.put("2000S2", item.getValue());
}
});
String zb1Sql = String.format("SELECT * FROM \"indicators_%s\" WHERE frontModule = '1主变' and systemType = '模拟量' and (displayName = '档位' or displayName = '油面温1' or displayName = '油面温2' or displayName = '绕组温度' ) ", gatewayId);
List<IndicatorsDto> zb1SqlData = influxDButils.getListData(zb1Sql, IndicatorsDto.class);
// TODO: 2023/7/14 数据未整理 ---> 油面温1 油面温2 绕组温度
resultMap.put("value1", "0.0");
resultMap.put("value2", "0.0");
resultMap.put("value3", "0.0");
resultMap.put("value4", "0.0");
zb1SqlData.forEach(item -> {
if ("档位".equals(item.getDisplayName())) {
resultMap.put("value4", item.getValue());
} else if ("油面温1".equals(item.getDisplayName())) {
resultMap.put("value1", item.getValue());
} else if ("油面温2".equals(item.getDisplayName())) {
resultMap.put("value2", item.getValue());
} else if ("绕组温度".equals(item.getDisplayName())) {
resultMap.put("value3", item.getValue());
}
});
//下方重复列表数据
List<Map<String, String>> boosterStationInfo = monitorFanIndicatorregionMapper.getMajorBoosterStationInfo(gatewayId, "ASC", 10);
ArrayList<Map<String, String>> resultList = new ArrayList<>();
for (Map<String, String> map : boosterStationInfo) {
String sql = String.format("SELECT equipmentIndexName, value, frontModule, unit, displayName FROM \"indicators_%s\" WHERE systemType = '%s' and frontModule =~/%s/ and (displayName = 'Ia' or displayName = 'P' or displayName = 'Q' ", gatewayId, "模拟量", map.get("boosterName"));
List<IndicatorsDto> listData = influxDButils.getListData(sql, IndicatorsDto.class);
HashMap<String, String> stringStringHashMap = new HashMap<>();
stringStringHashMap.put("value1", "0.0");
stringStringHashMap.put("value2", "0.0");
stringStringHashMap.put("value3", "0.0");
listData.forEach(item -> {
if (item.getDisplayName().equals("Ia")) {
stringStringHashMap.put("value1", item.getValue());
}
if (item.getDisplayName().equals("P")) {
stringStringHashMap.put("value2", item.getValue());
}
if (item.getDisplayName().equals("Q")) {
stringStringHashMap.put("value3", item.getValue());
}
});
resultList.add(stringStringHashMap);
}
resultMap.put("records", resultList);
resultMap.put("current", 1);
resultMap.put("size", resultList.size());
List<Map<String, Object>> finallyResultList = Collections.singletonList(resultMap);
// 主屏下方重复列表数据
IPage<Map<String, Object>> resultPage = new Page<>();
resultPage.setRecords(finallyResultList);
resultPage.setCurrent(1);
resultPage.setTotal(finallyResultList.size());
try {
log.info("消息内容:{}", JSON.toJSONString(resultPage));
emqKeeper.getMqttClient().publish(String.format("%s/%s/%s", stationId, "major", "mnl"), JSON.toJSONString(resultPage).getBytes(),0,false);
} catch (MqttException e) {
log.info("消息发送失败");
e.printStackTrace();
}
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment