Browse Source

Merge remote-tracking branch 'origin/20210716' into 20210716

hym 3 years ago
parent
commit
9124df51d7
14 changed files with 108 additions and 28 deletions
  1. 4 0
      zoniot-common/zoniot-core-utils/src/main/java/com/bz/zoneiot/core/utils/ByteArrayUtils.java
  2. 0 1
      zoniot-common/zoniot-core-utils/src/main/java/com/bz/zoneiot/core/utils/http/HttpClientPoolUtil.java
  3. 1 2
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/CommunityMapper.xml
  4. 2 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/resources/application-sit.properties
  5. 15 0
      zoniot-water/zoniot-water-api/src/main/java/com/bz/zoneiot/water/api/vo/AlarmTypeDetailsEntityVo.java
  6. 4 0
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/entity/BaseEntity.java
  7. 2 2
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/AlarmTypeDetailMapper.xml
  8. 1 1
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/DeviceAttributeMapper.xml
  9. 11 10
      zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/OnlineMonitorMapper.xml
  10. 46 0
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/config/JacksonConfig.java
  11. 5 2
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/controller/MonitorInfoController.java
  12. 12 6
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/AlarmTypeDetailsServiceImpl.java
  13. 4 4
      zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/OnlineMonitorImpl.java
  14. 1 0
      zoniot-water/zoniot-water-web/src/main/resources/bootstrap-sit.yml

+ 4 - 0
zoniot-common/zoniot-core-utils/src/main/java/com/bz/zoneiot/core/utils/ByteArrayUtils.java

@@ -34,7 +34,11 @@ public class ByteArrayUtils {
         } catch (Exception e) {
             e.printStackTrace();
         }
+
+
         return Optional.ofNullable(t);
 
     }
+
+
 }

+ 0 - 1
zoniot-common/zoniot-core-utils/src/main/java/com/bz/zoneiot/core/utils/http/HttpClientPoolUtil.java

@@ -458,5 +458,4 @@ public class HttpClientPoolUtil {
         }
         return result;
     }
-
 }

+ 1 - 2
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/CommunityMapper.xml

@@ -232,9 +232,8 @@
   </select>
 
   <select id="getMaxCodeBySiteId" resultType="java.lang.String">
-        select  MAX(ifnull(code,0))+1 code
+        select  MAX(ifnull(id,0))+1 code
         from rmcp_community
-        where tenant_id = #{tenantId}
   </select>
   
   <select id="findCommunity" resultType="com.zcxk.rmcp.core.entity.Community">

+ 2 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/resources/application-sit.properties

@@ -108,6 +108,8 @@ ribbon.ConnectTimeout=3000
 xxl.job.admin.addresses=http://10.0.0.62:8080/xxl-job-admin/
 xxl.job.group.id=1
 
+spring.main.allow-bean-definition-overriding=true
+
 
 
 

+ 15 - 0
zoniot-water/zoniot-water-api/src/main/java/com/bz/zoneiot/water/api/vo/AlarmTypeDetailsEntityVo.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.Date;
 
@@ -49,4 +50,18 @@ public class AlarmTypeDetailsEntityVo {
     private Date alarmStartTime;
 
 
+    private String getSceneName(){
+        if (StringUtils.isEmpty(sceneName)) {
+            return "";
+        }
+        String sz [] = sceneName.split("-");
+        if (sz.length == 1) {
+            return sceneName;
+        }
+        if (sz[0].equals(sz[1])) {
+            return sz[0];
+        }
+        return sceneName;
+    }
+
 }

+ 4 - 0
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/entity/BaseEntity.java

@@ -1,6 +1,7 @@
 package com.bz.zoneiot.water.core.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -26,12 +27,15 @@ public class BaseEntity implements Serializable {
     private Long id;
 
     @ApiModelProperty(value = "租户标识")
+    @TableField(exist = false)
     private String tenantId;
 
     @ApiModelProperty(value = "所属公司ID")
+    @TableField(exist = false)
     private Integer companyOrgId;
 
     @ApiModelProperty(value = "所属部门ID")
+    @TableField(exist = false)
     private Integer deptOrgId;
 
     @ApiModelProperty(value = "创建日期")

+ 2 - 2
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/AlarmTypeDetailMapper.xml

@@ -67,10 +67,10 @@
             <if test="dto.alarmCategory != null and dto.alarmCategory!=''" >
                 and sat.alarm_category = #{dto.alarmCategory}
             </if>
-            <if test="dto.startTime != null">
+            <if test="dto.startTime != null and dto.startTime != ''">
                 and sad.alarm_start_time >=#{dto.startTime}
             </if>
-            <if test="dto.endTime != null">
+            <if test="dto.endTime != null and dto.endTime != ''">
                 and sad.alarm_end_time &lt;= #{dto.endTime}
             </if>
             <if test="dto.state != null">

+ 1 - 1
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/DeviceAttributeMapper.xml

@@ -42,7 +42,7 @@
         <include refid="deviceAttributeColumns"/>
         FROM sms_device_attribute a
 
-        WHERE a.id = #{id}
+        WHERE a.id = #{id} AND status=1
     </select>
 
     <!--  根据获取实体List   -->

+ 11 - 10
zoniot-water/zoniot-water-core/src/main/java/com/bz/zoneiot/water/core/mapper/OnlineMonitorMapper.xml

@@ -88,7 +88,7 @@
     <sql id="sceneDeviceJoins">
         inner join sms_scene_type t3 on t3.id = t1.scene_type_id and t3. status = 1
         left join sms_device_scene t2 on t2.parent_scene_id=t1.id and t2. status = 1
-        left join sms_device t4 on t2.device_id=t4.id and t4. status = 1 and t4. enable_state = 1
+        left join sms_device t4 on t2.device_id=t4.id and t4. status = 1
         left join sms_device_parm t5 on t5.scene_id = t2.scene_id and t5.device_id=t2.device_id and t5. status = 1
         <if test="type == 3 ">
             and t5.is_suspension = 1
@@ -135,7 +135,7 @@
     <sql id="deviceInnerJoins">
         inner join sms_scene_type t3 on t1.scene_type_id=t3.id and t3. status = 1
         inner join sms_device_scene t2 on t2.parent_scene_id=t1.id and t2. status = 1
-        inner join sms_device t6 on t2.device_id=t6.id and t6. status = 1 and t6.enable_state = 1
+        inner join sms_device t6 on t2.device_id=t6.id and t6. status = 1
         inner join sms_scene t4 on t2.scene_id=t4.id and t4. status = 1
         inner join sms_scene_type t5 on t4.scene_type_id=t5.id and t5. status = 1
     </sql>
@@ -143,7 +143,7 @@
     <sql id="deviceLeftJoins">
         inner join sms_scene_type t3 on t1.scene_type_id=t3.id and t3. status = 1
         left join sms_device_scene t2 on t2.parent_scene_id=t1.id and t2. status = 1
-        left join sms_device t6 on t2.device_id=t6.id and t6. status = 1 and t6.enable_state = 1
+        left join sms_device t6 on t2.device_id=t6.id and t6. status = 1
         left join sms_scene t4 on t2.scene_id=t4.id and t4. status = 1
         left join sms_scene_type t5 on t4.scene_type_id=t5.id and t5. status = 1 and t5.scene_type_name = #{sceneTypeName}
     </sql>
@@ -318,7 +318,7 @@
         from sms_scene t1
         inner join sms_scene_type t3 on t3.id = t1.scene_type_id and t3. status = 1
         inner join sms_alarm_details t6 on t1.id=t6.parent_scene_id and t6.`status`=1
-        inner join sms_device t4 on t4.id=t6.device_id and t4.`status`=1 and t4. enable_state = 1
+        inner join sms_device t4 on t4.id=t6.device_id and t4.`status`=1
         where t1.parent_scene_id = 0 and t1. status = 1 and t1. enable_state = 1 and t1.id = #{id}
         <if test="sceneIds != null and sceneIds.size() > 0">
             and t1.id  in
@@ -607,15 +607,16 @@
             and t6.device_name like concat('%', #{deviceName},'%')
         </if>
     </select>
+
+
     <!--分页查询管网实时数据列表-->
     <select id="selectPipeNetPage" resultType="com.bz.zoneiot.water.api.vo.OnlineDataVo">
-        select t1.id scene_id,t1.scene_name,t6.id device_id,t6.device_code,t6.device_name,t6.address,if (t7.alarm_count>0, 1, 0) deviceState
+        select t1.id scene_id,t1.scene_name,t6.id device_id,t6.device_code,t6.device_name,t6.address,t6.ENABLE_STATE deviceState
         from sms_scene t1
         <include refid="deviceInnerJoins"/>
-        left join(
-            select a1.scene_id, a1.device_id ,count(1) alarm_count from sms_alarm_details a1 where a1.`status` = 1 and a1.state = 1 group by a1.scene_id, a1.device_id
-        )t7 on t7.scene_id=t2.scene_id and t7.device_id=t2.device_id
-        where t1.parent_scene_id = 0 and t1. status = 1 and t1. enable_state = 1 and t3.scene_type_name = '管网' and t5.scene_type_name = #{onlineDataDto.sceneTypeName}
+        where
+        t1.parent_scene_id = 0 and t1. status = 1 and t1. enable_state = 1 and t3.scene_type_name = '管网'
+        and t5.scene_type_name = #{onlineDataDto.sceneTypeName}
         <if test="onlineDataDto.sceneIds != null and onlineDataDto.sceneIds.size() > 0">
             and t1.id  in
             <foreach collection="onlineDataDto.sceneIds" item="item" open="(" close=")" separator=",">
@@ -852,7 +853,7 @@
         from sms_scene t1
         inner join sms_scene_type t3 on t3.id = t1.scene_type_id and t3. status = 1
         inner join sms_alarm_details t6 on t1.id=t6.parent_scene_id and t6.`status`=1
-        inner join sms_device t4 on t4.id=t6.device_id and t4.`status`=1 and t4. enable_state = 1
+        inner join sms_device t4 on t4.id=t6.device_id and t4.`status`=1
         where t1.parent_scene_id = 0 and t1. status = 1 and t1. enable_state = 1 and t1.id = #{id}
         <if test="sceneIds != null and sceneIds.size() > 0">
             and t1.id  in

+ 46 - 0
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/config/JacksonConfig.java

@@ -0,0 +1,46 @@
+package com.bz.zoneiot.water.web.config;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+import java.math.BigInteger;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * jackson配置
+ */
+@Configuration
+public class JacksonConfig {
+    @Bean
+    @Primary
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
+        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+
+        /**
+         * 序列换成json时,将所有的long变成string
+         * 因为js中得数字类型不能包含所有的java long值并且long值转json丢失精度
+         */
+        SimpleModule module = new SimpleModule();
+        module.addSerializer(Long.class, ToStringSerializer.instance);
+        module.addSerializer(Long.TYPE, ToStringSerializer.instance);
+        module.addSerializer(BigInteger.class, ToStringSerializer.instance);
+
+
+
+        //LocalDateTime
+        LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer);
+        objectMapper.registerModule(module);
+
+        return objectMapper;
+    }
+}

+ 5 - 2
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/controller/MonitorInfoController.java

@@ -2,6 +2,7 @@ package com.bz.zoneiot.water.web.controller;
 
 import com.bz.zoneiot.core.common.enums.RespCodeEnum;
 import com.bz.zoneiot.core.common.pojo.AjaxMessage;
+import com.bz.zoneiot.core.mongo.utils.StringUtil;
 import com.bz.zoneiot.core.oauth2.pojo.LoginUser;
 import com.bz.zoneiot.core.oauth2.util.UserUtil;
 import com.bz.zoneiot.core.utils.BigDecimalUtils;
@@ -207,7 +208,7 @@ public class MonitorInfoController {
                         }
                     }
                 } else {
-                    DeviceAttributeEntity deviceAttributeEntity = deviceAttributeService.getById(item.getAttributeId());
+                    DeviceAttributeEntity deviceAttributeEntity = deviceAttributeService.findDeviceAttributeById(item.getAttributeId());
                     String unit = "";
                     if (deviceAttributeEntity != null && deviceAttributeEntity.getUnit() != null) {
                         unit = deviceAttributeEntity.getUnit();
@@ -219,7 +220,9 @@ public class MonitorInfoController {
         // 判断是否报警
         if (mapAlarm.containsKey(item.getAttributeId().intValue())) {
             item.setIsAlarm(1);
-            item.setMonitorValue(item.getMonitorValue() + "(" + mapAlarm.get(item.getAttributeId().intValue()).getAlarmRange() + ")");
+            String range = mapAlarm.get(item.getAttributeId().intValue()).getAlarmRange();
+            String   str = StringUtil.isEmpty(range) ? "" : "(" +range +")";
+            item.setMonitorValue(item.getMonitorValue() + str);
         } else {
             item.setIsAlarm(0);
         }

+ 12 - 6
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/AlarmTypeDetailsServiceImpl.java

@@ -120,13 +120,19 @@ public class AlarmTypeDetailsServiceImpl implements AlarmTypeDetailsService {
             log.error("【接收告警信息失败】:告警信息为空 ,请求参数:{}", dto.toString());
             return null;
         }
-        DeviceAttributeEntity attributeEntity = deviceAttributeService.findDeviceAttributeById(alarmType.getAttributeId());
-        if (attributeEntity == null) {
-            log.error("【接收告警信息失败】:属性为空 ,请求参数:{}", dto.toString());
-            return null;
-        }
         result = new ArrayList<>();
-        BigDecimal value = new BigDecimal(dto.getData().get(attributeEntity.getIdentifier()).toString());
+        BigDecimal value;
+        // 离线告警
+        if (alarmType.getAlarmCategory() == 2 || alarmType.getAttributeId() == null) {
+            value = new BigDecimal("0");
+        } else {
+            DeviceAttributeEntity attributeEntity = deviceAttributeService.findDeviceAttributeById(alarmType.getAttributeId());
+            if (attributeEntity == null) {
+                log.error("【接收告警信息失败】:属性为空 ,请求参数:{}", dto.toString());
+                return null;
+            }
+            value = new BigDecimal(dto.getData().get(attributeEntity.getIdentifier()).toString());
+        }
         List<DeviceSceneVo> sceneVos = deviceSceneMapper.findSceneByDeviceId(alarmType.getDeviceId());
         for (DeviceSceneVo sceneVo : sceneVos) {
             AlarmDetailsEntity alarmDetailsEntity = new AlarmDetailsEntity();

+ 4 - 4
zoniot-water/zoniot-water-web/src/main/java/com/bz/zoneiot/water/web/service/impl/OnlineMonitorImpl.java

@@ -24,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.*;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
@@ -523,15 +524,14 @@ public class OnlineMonitorImpl implements OnlineMonitorService {
     }
 
     private MonitorDataEntity getCacheData(String key){
-        String str = redisUtils.get(("sms_water_" + key));
-        if (StringUtil.isEmpty(str)) {
+        byte[] bytes = redisUtils.get(("sms_water_" + key).getBytes());
+        if (bytes == null) {
             return null;
         }
-        return (MonitorDataEntity)ByteArrayUtils.bytesToObject(str.getBytes()).get();
+        return (MonitorDataEntity)ByteArrayUtils.bytesToObject(bytes).get();
     }
 
 
-
     /**
     * 获取在线数据及计算数据
     * @author Andy

+ 1 - 0
zoniot-water/zoniot-water-web/src/main/resources/bootstrap-sit.yml

@@ -5,6 +5,7 @@ spring:
     active: sit
   cloud:
     nacos:
+
       config:
         namespace: 33c2968d-5b0c-4da2-bfd7-af8ef5a8f669
         server-addr: 10.0.0.63:8848