Commit 49bd8187 authored by 高建强's avatar 高建强

item:消防水池液位计算修改

parent 5a91d84b
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<parent> <parent>
<groupId>com.yeejoin.amos</groupId> <groupId>com.yeejoin.amos</groupId>
<artifactId>YeeAmosFireAutoSysRoot</artifactId> <artifactId>YeeAmosFireAutoSysRoot</artifactId>
<version>3.0.1.4</version> <version>3.0.1.5</version>
</parent> </parent>
<!-- <dependencies> <!-- <dependencies>
......
...@@ -14,14 +14,14 @@ ...@@ -14,14 +14,14 @@
<parent> <parent>
<groupId>com.yeejoin.amos</groupId> <groupId>com.yeejoin.amos</groupId>
<artifactId>YeeAmosFireAutoSysRoot</artifactId> <artifactId>YeeAmosFireAutoSysRoot</artifactId>
<version>3.0.1.4</version> <version>3.0.1.5</version>
</parent> </parent>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.yeejoin.amos</groupId> <groupId>com.yeejoin.amos</groupId>
<artifactId>YeeAmosFireAutoSysCommon</artifactId> <artifactId>YeeAmosFireAutoSysCommon</artifactId>
<version>3.0.1.4</version> <version>3.0.1.5</version>
</dependency> </dependency>
<dependency> <dependency>
......
package com.yeejoin.amos.fas.business.dao.mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @ProjectName: YeeAmosFireAutoSysRoot
* @Package: com.yeejoin.amos.fas.business.dao.mapper
* @ClassName: FormInstanceMapper
* @Author: Jianqiang Gao
* @Description:
* @Date: 2021/12/10 17:53
* @Version: 1.0
*/
public interface FormInstanceMapper extends BaseMapper{
List<Map<String, String>> queryFirePool(@Param("firePoolIndexKey") String firePoolIndexKey);
}
package com.yeejoin.amos.fas.business.service.impl;
import com.yeejoin.amos.fas.business.dao.mapper.FormInstanceMapper;
import com.yeejoin.amos.fas.business.service.intfc.IFormInstanceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ProjectName: YeeAmosFireAutoSysRoot
* @Package: com.yeejoin.amos.fas.business.service.impl
* @ClassName: FormInstanceImpl
* @Author: Jianqiang Gao
* @Description: 建筑类业务
* @Date: 2021/12/10 17:46
* @Version: 1.0
*/
@Service("formInstanceService")
public class FormInstanceServiceImpl implements IFormInstanceService {
@Autowired
private FormInstanceMapper formInstanceMapper;
@Override
public List<Map<String, String>> queryFirePool(String firePoolIndexKey) {
return formInstanceMapper.queryFirePool(firePoolIndexKey);
}
}
\ No newline at end of file
...@@ -124,6 +124,9 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService { ...@@ -124,6 +124,9 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
@Value("${security.loginId}") @Value("${security.loginId}")
private String loginId; private String loginId;
@Value("${autoSys.fire.pool.index_key}")
private String firePoolIndexKey;
@Autowired @Autowired
PlanDetailMapper planDetailMapper; PlanDetailMapper planDetailMapper;
...@@ -147,6 +150,12 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService { ...@@ -147,6 +150,12 @@ public class HandlerMqttMessageImpl implements IEquipmentHandlerService {
} }
String specificIndexType = equipmentSpecificIndex.getType(); String specificIndexType = equipmentSpecificIndex.getType();
String typeCode = equipmentSpecificIndex.getTypeCode(); String typeCode = equipmentSpecificIndex.getTypeCode();
String nameKey = equipmentSpecificIndex.getNameKey();
String iotCode = equipmentSpecificIndex.getIotCode();
String value = equipmentSpecificIndex.getValue();
if (nameKey != null && nameKey.equalsIgnoreCase(firePoolIndexKey)) {
redisTemplate.opsForValue().set("WaterLevel:Value:" + iotCode, value);
}
if(topicEntity.getSimulationDate().equals("false") && nameKeys.contains(typeCode) && indexStateIsChange(equipmentSpecificIndex)){ if(topicEntity.getSimulationDate().equals("false") && nameKeys.contains(typeCode) && indexStateIsChange(equipmentSpecificIndex)){
log.info("指标值没有发生变化: " + equipmentSpecificIndex.getIotCode()+"-"+equipmentSpecificIndex.getNameKey()+":"+equipmentSpecificIndex.getValue()); log.info("指标值没有发生变化: " + equipmentSpecificIndex.getIotCode()+"-"+equipmentSpecificIndex.getNameKey()+":"+equipmentSpecificIndex.getValue());
// 三维屏指标状态推送 // 三维屏指标状态推送
......
...@@ -1397,30 +1397,27 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -1397,30 +1397,27 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
@Override @Override
public List<Map> queryContingencyWater() { public List<Map> queryContingencyWater() {
List<Map> list = riskSourceMapper.queryContingencyWater(); List<Map> list = riskSourceMapper.queryContingencyWater();
HashOperations hashOperations = redisTemplate.opsForHash();
for (Map map : list) { for (Map map : list) {
String iotCode = "";
String maxlevel = "";
String volume = "";
double area = 0; double area = 0;
if (!ObjectUtils.isEmpty(map.get("area"))) { if (!ObjectUtils.isEmpty(map.get("area"))) {
area = Double.valueOf(map.get("area").toString()); area = Double.valueOf(map.get("area").toString());
} }
String maxlevel = map.get("max_level") != null ? map.get("max_level").toString() : "0.0"; if (!ObjectUtils.isEmpty(map.get("iot_code"))) {
// String level = map.get("value") != null && StringUtil.isNumeric(map.get("value").toString()) ? String.format("%.2f", (Double.valueOf(map.get("value").toString()))) : maxlevel; iotCode = map.get("iot_code").toString();
String volume = map.get("volume") != null && StringUtil.isNumeric(map.get("volume").toString()) ? String.format("%.2f", (Double.valueOf(map.get("volume").toString()))) : String.format("%.2f", Double.valueOf(maxlevel) * area); }
// String volume = String.format("%.2f", Double.valueOf(level) * area); Object value = redisTemplate.opsForValue().get("WaterLevel:Value:" + iotCode);
if (hashOperations.size("Analogue") > 0) { if (StringUtil.isNotEmpty(value)) {
if (ObjectUtils.isEmpty(map.get("code")) || !hashOperations.hasKey("Analogue", map.get("code"))) { maxlevel = map.get("max_level") != null ? map.get("max_level").toString() : value.toString();
map.put("level", maxlevel); volume = map.get("volume") != null && StringUtil.isNumeric(map.get("volume").toString()) ? String.format("%.2f", (Double.valueOf(map.get("volume").toString()))) : String.format("%.2f", Double.valueOf(value.toString()) * area);
map.put("volume", volume);
continue;
}
EquipCommunicationData data = (EquipCommunicationData) hashOperations.get("Analogue", map.get("code"));
String level = StringUtil.isNumeric(data.getState()) ? data.getState() : maxlevel;
map.put("level", level);
map.put("volume", map.get("volume") != null && StringUtil.isNumeric(map.get("volume").toString()) ? volume : String.format("%.2f", (Double.valueOf(level) * area)));
} else { } else {
map.put("level", maxlevel); maxlevel = map.get("max_level") != null ? map.get("max_level").toString() : "0.0";
map.put("volume", volume); volume = map.get("volume") != null && StringUtil.isNumeric(map.get("volume").toString()) ? String.format("%.2f", (Double.valueOf(map.get("volume").toString()))) : String.format("%.2f", Double.valueOf(maxlevel) * area);
} }
map.put("level", maxlevel);
map.put("volume", volume);
} }
return list; return list;
} }
......
package com.yeejoin.amos.fas.business.service.intfc;
import java.util.List;
import java.util.Map;
/**
* @ProjectName: YeeAmosFireAutoSysRoot
* @Package: com.yeejoin.amos.fas.business.service.intfc
* @ClassName: IFormInstance
* @Author: Jianqiang Gao
* @Description: 建筑接口类
* @Date: 2021/12/10 17:45
* @Version: 1.0
*/
public interface IFormInstanceService {
/**
* 获取消防水池
* @return
* @param firePoolIndexKey
*/
List<Map<String, String>> queryFirePool(String firePoolIndexKey);
}
\ No newline at end of file
package com.yeejoin.amos.fas.business.util;
import com.yeejoin.amos.fas.business.service.intfc.IFormInstanceService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* @ProjectName: YeeAmosFireAutoSysRoot
* @Package: com.yeejoin.amos.fas.business.util
* @ClassName: ScheduledUtil
* @Author: Jianqiang Gao
* @Description: 定时任务工具类
* @Date: 2021/12/10 16:58
* @Version: 1.0
*/
@Slf4j
@Component
public class ScheduledUtil {
@Autowired
private IFormInstanceService formInstanceService;
@Autowired
private RedisTemplate redisTemplate;
@Value("${autoSys.fire.pool.index_key}")
private String firePoolIndexKey;
@Scheduled(cron = "0 * * * * ? ")
synchronized private void syncByRedis() {
List<Map<String, String>> list = formInstanceService.queryFirePool(firePoolIndexKey);
if (CollectionUtils.isNotEmpty(list)) {
for (Map<String, String> map : list) {
Object[] toArray = map.values().toArray();
redisTemplate.opsForValue().set("WaterLevel:Code:" + toArray[0], toArray[1]);
}
}
}
}
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<parent> <parent>
<groupId>com.yeejoin.amos</groupId> <groupId>com.yeejoin.amos</groupId>
<artifactId>YeeAmosFireAutoSysRoot</artifactId> <artifactId>YeeAmosFireAutoSysRoot</artifactId>
<version>3.0.1.4</version> <version>3.0.1.5</version>
</parent> </parent>
<dependencies> <dependencies>
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<dependency> <dependency>
<groupId>com.yeejoin.amos</groupId> <groupId>com.yeejoin.amos</groupId>
<artifactId>YeeAmosFireAutoSysService</artifactId> <artifactId>YeeAmosFireAutoSysService</artifactId>
<version>3.0.1.4</version> <version>3.0.1.5</version>
</dependency> </dependency>
</dependencies> </dependencies>
......
...@@ -82,6 +82,9 @@ autoSys.alarm.nameKeys=BREAKDOWN,FIREALARM,SHIELD ...@@ -82,6 +82,9 @@ autoSys.alarm.nameKeys=BREAKDOWN,FIREALARM,SHIELD
autoSys.alarm.status=2,3 autoSys.alarm.status=2,3
autoSys.alarm.value=true autoSys.alarm.value=true
#消防水池指标编码
autoSys.fire.pool.index_key=FHS_FirePoolDevice_WaterLevel
#查询装备分类 #查询装备分类
#消防视频:xfsp #消防视频:xfsp
......
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.fas.business.dao.mapper.FormInstanceMapper">
<select id="queryFirePool" resultType="java.util.HashMap">
SELECT
es.iot_code AS iotCode,
MAX( CASE WHEN a.field_name = 'code' THEN a.field_value END ) AS `code`
FROM
`wl_form_instance` a
LEFT JOIN wl_equipment_specific es ON a.instance_id = es.warehouse_structure_id
WHERE
a.group_code IN ( 'pool', 'r_pool' )
AND a.instance_id IN (
SELECT
es.warehouse_structure_id
FROM
wl_equipment_specific es
<where>
es.warehouse_structure_id IS NOT NULL
<if test="firePoolIndexKey != null and firePoolIndexKey != ''">
AND es.realtime_iot_index_key = #{firePoolIndexKey}
</if>
</where>
)
GROUP BY
a.instance_id
</select>
</mapper>
\ No newline at end of file
...@@ -652,9 +652,11 @@ ...@@ -652,9 +652,11 @@
MAX( CASE WHEN a.field_name = 'height' THEN a.field_value END ) AS max_level, MAX( CASE WHEN a.field_name = 'height' THEN a.field_value END ) AS max_level,
MAX( CASE WHEN a.field_name = 'lowWaterHeight' THEN a.field_value END ) AS alarm_level, MAX( CASE WHEN a.field_name = 'lowWaterHeight' THEN a.field_value END ) AS alarm_level,
MAX( CASE WHEN a.field_name = 'bottomArea' THEN a.field_value END ) AS area, MAX( CASE WHEN a.field_name = 'bottomArea' THEN a.field_value END ) AS area,
MAX( CASE WHEN a.field_name = 'volume' THEN a.field_value END ) AS volume MAX( CASE WHEN a.field_name = 'volume' THEN a.field_value END ) AS volume,
es.iot_code
FROM FROM
`wl_form_instance` a `wl_form_instance` a
LEFT JOIN wl_equipment_specific es ON a.instance_id = es.warehouse_structure_id
WHERE WHERE
a.group_code IN ( 'pool', 'r_pool' ) a.group_code IN ( 'pool', 'r_pool' )
GROUP BY GROUP BY
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.yeejoin.amos</groupId> <groupId>com.yeejoin.amos</groupId>
<artifactId>YeeAmosFireAutoSysRoot</artifactId> <artifactId>YeeAmosFireAutoSysRoot</artifactId>
<version>3.0.1.4</version> <version>3.0.1.5</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>YeeAmosFireAutoSysRoot</name> <name>YeeAmosFireAutoSysRoot</name>
......
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