Jelajahi Sumber

水浸传感器:设备数据、电箱下的空开列表

zhj 2 tahun lalu
induk
melakukan
96b55d587c

+ 52 - 0
src/main/java/com/welampiot/controller/WaterImmersionController.java

@@ -2,10 +2,13 @@ package com.welampiot.controller;
 
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.AirSwitchInfoDTO;
 import com.welampiot.dto.WaterImmersionDevInfoDTO;
 import com.welampiot.dto.WaterImmersionDevInfoLogDTO;
+import com.welampiot.service.AirSwitchInfoService;
 import com.welampiot.service.WaterImmersionDevInfoService;
 import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.AirSwitchInfoReturnVO;
 import com.welampiot.vo.WaterImmersionDevInfoLogVO;
 import com.welampiot.vo.WaterImmersionDevInfoVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletRequest;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.List;
 
 /**
  * ClassName: WaterImmersionController
@@ -37,6 +41,9 @@ public class WaterImmersionController {
     @Autowired
     private ToolUtils toolUtils;
 
+    @Autowired
+    private AirSwitchInfoService airSwitchInfoService;
+
     /**
      * 获取水浸传感器列表
      * @param request
@@ -179,4 +186,49 @@ public class WaterImmersionController {
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+
+    /**
+     * 水浸设备概览
+     * @param request sectionList
+     * @return 水浸设备概览
+     */
+    @RequestMapping(value = "/data", method = RequestMethod.POST)
+    public BaseResult<?> data(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        WaterImmersionDevInfoDTO dto = new WaterImmersionDevInfoDTO();
+        dto.setSectionId(sectionId);
+        dto.setAreaId(areaId);
+        dto.setSectionList(toolUtils.getSectionList(request));
+        Integer total = waterImmersionDevInfoService.getWaterImmersionTotal(dto);
+        Integer onlineCount = waterImmersionDevInfoService.getWaterImmersionOnlineCount(dto);
+        Integer alarmCount = waterImmersionDevInfoService.getWaterImmersionAlarmCount(dto);
+        Integer newCount = waterImmersionDevInfoService.getWaterImmersionNewCount(dto);
+        WaterImmersionDevInfoVO waterImmersionDevInfoVO = new WaterImmersionDevInfoVO();
+        waterImmersionDevInfoVO.setTotal(total);
+        waterImmersionDevInfoVO.setOnlineCount(onlineCount);
+        waterImmersionDevInfoVO.setAlarmCount(alarmCount);
+        waterImmersionDevInfoVO.setNewCount(newCount);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,waterImmersionDevInfoVO);
+    }
+
+    /**
+     * 电箱下的空开列表
+     * @param vo address
+     * @return 电箱下的空开列表
+     */
+    @RequestMapping(value = "/airList", method = RequestMethod.POST)
+    public BaseResult<?> airList(AirSwitchInfoReturnVO vo) {
+        AirSwitchInfoReturnVO airSwitchInfoReturnVO = AirSwitchInfoReturnVO.getAirSwitchInfoReturnVO(vo);
+        Integer version = airSwitchInfoReturnVO.getVersion();
+        String address = airSwitchInfoReturnVO.getBoxAddress();
+        if (address.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        List<AirSwitchInfoDTO> airSwitchList = airSwitchInfoService.getAirSwitchAddressByEleBoxAddr(address);
+        Integer total = airSwitchInfoService.getAirSwitchCountByEleBoxAddr(address);
+        AirSwitchInfoReturnVO airSwitchInfoReturnVO1 = new AirSwitchInfoReturnVO();
+        airSwitchInfoReturnVO1.setList(airSwitchList);
+        airSwitchInfoReturnVO1.setTotal(total);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,airSwitchInfoReturnVO1);
+    }
 }

+ 2 - 0
src/main/java/com/welampiot/dao/AirSwitchInfoDao.java

@@ -35,4 +35,6 @@ public interface AirSwitchInfoDao {
     AirSwitchInfoDTO getAirSwitchAddressById(@Param("id") Integer id);
     List<AirSwitchInfoDTO> getAirSwitchAddressByModuleId(@Param("moduleId") Integer moduleId);
     void updateAirSwitchStatusById(AirSwitchInfoDTO dto);
+    List<AirSwitchInfoDTO> getAirSwitchAddressByEleBoxAddr(@Param("address") String address);
+    Integer getAirSwitchCountByEleBoxAddr(@Param("address") String address);
 }

+ 8 - 0
src/main/java/com/welampiot/dao/WaterImmersionDevInfoDao.java

@@ -37,4 +37,12 @@ public interface WaterImmersionDevInfoDao {
     void deleteWaterImmersionLogDataByDTO(@Param("id") Integer id);
 
     WaterImmersionDevInfoDTO getWaterDTOById(@Param("id") Integer id);
+
+    Integer getWaterImmersionTotal(WaterImmersionDevInfoDTO dto);
+
+    Integer getWaterImmersionOnlineCount(WaterImmersionDevInfoDTO dto);
+
+    Integer getWaterImmersionAlarmCount(WaterImmersionDevInfoDTO dto);
+
+    Integer getWaterImmersionNewCount(WaterImmersionDevInfoDTO dto);
 }

+ 2 - 0
src/main/java/com/welampiot/dto/WaterImmersionDevInfoDTO.java

@@ -87,6 +87,8 @@ public class WaterImmersionDevInfoDTO implements Serializable {
 
     private Integer sectionId;
 
+    private Integer areaId;
+
     private Integer timezone;
 
     private String lampPoleName;

+ 2 - 0
src/main/java/com/welampiot/service/AirSwitchInfoService.java

@@ -29,4 +29,6 @@ public interface AirSwitchInfoService {
     AirSwitchInfoDTO getAirSwitchAddressById(Integer id);
     List<AirSwitchInfoDTO> getAirSwitchAddressByModuleId(Integer moduleId);
     void updateAirSwitchStatusById(AirSwitchInfoDTO dto);
+    List<AirSwitchInfoDTO> getAirSwitchAddressByEleBoxAddr(String address);
+    Integer getAirSwitchCountByEleBoxAddr(String address);
 }

+ 8 - 0
src/main/java/com/welampiot/service/WaterImmersionDevInfoService.java

@@ -30,4 +30,12 @@ public interface WaterImmersionDevInfoService {
     void deleteWaterImmersionLogDataByDTO(Integer id);
 
     WaterImmersionDevInfoDTO getWaterDTOById(Integer id);
+
+    Integer getWaterImmersionTotal(WaterImmersionDevInfoDTO dto);
+
+    Integer getWaterImmersionOnlineCount(WaterImmersionDevInfoDTO dto);
+
+    Integer getWaterImmersionAlarmCount(WaterImmersionDevInfoDTO dto);
+
+    Integer getWaterImmersionNewCount(WaterImmersionDevInfoDTO dto);
 }

+ 10 - 0
src/main/java/com/welampiot/service/impl/AirSwitchInfoServiceImpl.java

@@ -152,4 +152,14 @@ public class AirSwitchInfoServiceImpl implements AirSwitchInfoService {
     public void updateAirSwitchStatusById(AirSwitchInfoDTO dto) {
         airSwitchInfoDao.updateAirSwitchStatusById(dto);
     }
+
+    @Override
+    public List<AirSwitchInfoDTO> getAirSwitchAddressByEleBoxAddr(String address) {
+        return airSwitchInfoDao.getAirSwitchAddressByEleBoxAddr(address);
+    }
+
+    @Override
+    public Integer getAirSwitchCountByEleBoxAddr(String address) {
+        return airSwitchInfoDao.getAirSwitchCountByEleBoxAddr(address);
+    }
 }

+ 20 - 0
src/main/java/com/welampiot/service/impl/WaterImmersionDevInfoServiceImpl.java

@@ -285,4 +285,24 @@ public class WaterImmersionDevInfoServiceImpl implements WaterImmersionDevInfoSe
     public WaterImmersionDevInfoDTO getWaterDTOById(Integer id) {
         return waterImmersionDevInfoDao.getWaterDTOById(id);
     }
+
+    @Override
+    public Integer getWaterImmersionTotal(WaterImmersionDevInfoDTO dto) {
+        return waterImmersionDevInfoDao.getWaterImmersionTotal(dto);
+    }
+
+    @Override
+    public Integer getWaterImmersionOnlineCount(WaterImmersionDevInfoDTO dto) {
+        return waterImmersionDevInfoDao.getWaterImmersionOnlineCount(dto);
+    }
+
+    @Override
+    public Integer getWaterImmersionAlarmCount(WaterImmersionDevInfoDTO dto) {
+        return waterImmersionDevInfoDao.getWaterImmersionAlarmCount(dto);
+    }
+
+    @Override
+    public Integer getWaterImmersionNewCount(WaterImmersionDevInfoDTO dto) {
+        return waterImmersionDevInfoDao.getWaterImmersionNewCount(dto);
+    }
 }

+ 15 - 1
src/main/java/com/welampiot/vo/AirSwitchInfoReturnVO.java

@@ -1,5 +1,6 @@
 package com.welampiot.vo;
 
+import com.welampiot.dto.AirSwitchInfoDTO;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -33,9 +34,22 @@ public class AirSwitchInfoReturnVO implements Serializable {
 
     /** 策略id(为0表示没有绑定策略)**/
     private Integer policyId;
+    private Integer total;
 
     /** 空开列表 **/
-    private List list;
+    private List<AirSwitchInfoDTO> list;
+
+    private Integer version;
+    private String boxAddress;
+    public static AirSwitchInfoReturnVO getAirSwitchInfoReturnVO(AirSwitchInfoReturnVO vo) {
+        if (vo.getVersion() == null) {
+            vo.setVersion(0);
+        }
+        if (vo.getBoxAddress() == null) {
+            vo.setBoxAddress("");
+        }
+        return vo;
+    }
 
     private static final long serialVersionUID = 1L;
 }

+ 3 - 0
src/main/java/com/welampiot/vo/WaterImmersionDevInfoVO.java

@@ -18,6 +18,9 @@ import java.util.List;
 @Data
 public class WaterImmersionDevInfoVO implements Serializable {
     private Integer total;
+    private Integer onlineCount;
+    private Integer alarmCount;
+    private Integer newCount;
 
     private List<WaterImmersionDevInfoDTO> list;
 

+ 19 - 0
src/main/resources/mapper/AirSwitchInfoMapper.xml

@@ -109,4 +109,23 @@
         where a.id = #{id}
     </update>
 
+    <select id="getAirSwitchAddressByEleBoxAddr" resultType="AirSwitchInfoDTO">
+        select
+            a.id,
+            a.name,
+            a.address,
+            a.box_address as boxAddress
+        from air_switch_info a
+        left join electric_module e on a.module_id = e.id
+        where e.address = #{address}
+    </select>
+
+    <select id="getAirSwitchCountByEleBoxAddr" resultType="Integer">
+        select
+            count(*)
+        from air_switch_info a
+        left join electric_module e on e.id = a.module_id
+        where e.address = #{address}
+    </select>
+
 </mapper>

+ 0 - 6
src/main/resources/mapper/BroadcastPolicyInfoMapper.xml

@@ -92,10 +92,4 @@
         where b.broadcast_policy_id = #{broadcastId}
     </select>
 
-    <delete id="deleteBroadcastPolicyIfoDataById">
-        delete
-        from broadcast_policy_info
-        where id ;
-    </delete>
-
 </mapper>

+ 80 - 0
src/main/resources/mapper/WaterImmersionDevInfoMapper.xml

@@ -147,4 +147,84 @@
         where w.id = #{id}
     </select>
 
+    <select id="getWaterImmersionTotal" resultType="Integer">
+        select
+            count(*)
+        from water_immersion_dev_info w
+        left join lamp_pole lp on lp.id = w.lamp_pole_id
+        where 1=1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+    </select>
+
+    <select id="getWaterImmersionOnlineCount" resultType="Integer">
+        select
+            count(*)
+        from water_immersion_dev_info w
+        left join lamp_pole lp on lp.id = w.lamp_pole_id
+        where w.status = 1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+    </select>
+
+    <select id="getWaterImmersionAlarmCount" resultType="Integer">
+        select
+        count(*)
+        from water_immersion_dev_info w
+        left join lamp_pole lp on lp.id = w.lamp_pole_id
+        where (w.probe1 = 1 or w.probe2 = 1)
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+    </select>
+
+    <select id="getWaterImmersionNewCount" resultType="Integer">
+        select
+        count(*)
+        from water_immersion_dev_info w
+        left join lamp_pole lp on lp.id = w.lamp_pole_id
+        where w.createtime >= date_sub(now(),interval 7 day)
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+    </select>
+
 </mapper>