Browse Source

事件管理相关接口开发

jichaobo 2 years ago
parent
commit
1db67f7b45
30 changed files with 1483 additions and 90 deletions
  1. 6 0
      service-fire/service-fire-biz/pom.xml
  2. 8 6
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmDetectorController.java
  3. 80 3
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmElectricalFireController.java
  4. 15 4
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmFireController.java
  5. 3 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/PatrolInspectionContentController.java
  6. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/PatrolInspectionRecordController.java
  7. 16 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmElectricalFire.java
  8. 14 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmHydrantWater.java
  9. 14 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmSmokeControl.java
  10. 14 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmSprayWater.java
  11. 15 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmVideo.java
  12. 11 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/AlarmElectricalFireMapper.java
  13. 83 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmElectricalFireService.java
  14. 4 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmFireService.java
  15. 36 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmHydrantWaterService.java
  16. 37 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmSmokeControlService.java
  17. 36 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmSprayWaterService.java
  18. 36 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmVideoService.java
  19. 277 3
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmElectricalFireServiceImpl.java
  20. 59 7
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmFireServiceImpl.java
  21. 96 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmHydrantWaterServiceImpl.java
  22. 98 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmSmokeControlServiceImpl.java
  23. 97 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmSprayWaterServiceImpl.java
  24. 98 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmVideoServiceImpl.java
  25. 108 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java
  26. 43 37
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/AlarmFireVo.java
  27. 150 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/AlarmHiddenDangerVo.java
  28. 1 3
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/PatrolInspectionRecordExportVo.java
  29. 5 8
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/PatrolInspectionSiteExportVo.java
  30. 22 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/AlarmElectricalFireMapper.xml

+ 6 - 0
service-fire/service-fire-biz/pom.xml

@@ -40,6 +40,12 @@
             <version>0.0.1</version>
         </dependency>
 
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-spring-boot-starter</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+
 
     </dependencies>
 

+ 8 - 6
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmDetectorController.java

@@ -111,17 +111,19 @@ public class AlarmDetectorController {
      * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
      * @param exportTitle    导出标题
      * @throws IOException
+     * @return
      */
     @GetMapping("alarmDetectorLowerListExport")
-    public void export(HttpServletResponse response,
-                       @RequestParam(value = "handlingStatus", required = false) Integer handlingStatus,
-                       @RequestParam(value = "systemType", required = false) String systemType,
-                       @RequestParam(value = "startDate", required = false) String startDate,
-                       @RequestParam(value = "endDate", required = false) String endDate,
-                       @RequestParam(value = "exportTitle") String exportTitle) throws IOException {
+    public ApiResult<Void> export(HttpServletResponse response,
+                                  @RequestParam(value = "handlingStatus", required = false) Integer handlingStatus,
+                                  @RequestParam(value = "systemType", required = false) String systemType,
+                                  @RequestParam(value = "startDate", required = false) String startDate,
+                                  @RequestParam(value = "endDate", required = false) String endDate,
+                                  @RequestParam(value = "exportTitle") String exportTitle) throws IOException {
         List<AlarmDetectorVo> list = alarmDetectorService.alarmDetectorLowerListExport(handlingStatus, startDate, endDate, systemType);
         ExcelUtil<AlarmDetectorVo> util = new ExcelUtil<AlarmDetectorVo>(AlarmDetectorVo.class);
         util.exportExcel(response, list, exportTitle, exportTitle);
+        return ApiResult.success();
     }
 
     @GetMapping("getData")

+ 80 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmElectricalFireController.java

@@ -1,9 +1,16 @@
 package com.usky.fire.controller.web;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.log.annotation.Log;
+import com.usky.common.log.enums.BusinessType;
+import com.usky.fire.service.AlarmElectricalFireService;
+import com.usky.fire.service.vo.AlarmHiddenDangerVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.stereotype.Controller;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,9 +20,79 @@ import org.springframework.stereotype.Controller;
  * @author JCB
  * @since 2022-08-18
  */
-@Controller
+@RestController
 @RequestMapping("/alarmElectricalFire")
 public class AlarmElectricalFireController {
 
+    @Autowired
+    private AlarmElectricalFireService alarmElectricalFireService;
+
+    /**
+     * 事件管理-隐患管理-不同类型隐患-列表查询
+     *
+     * @param systemType     系统类型(2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param companyName    单位名称
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    @GetMapping("alarmHiddenDangerList")
+    public ApiResult<CommonPage<AlarmHiddenDangerVo>> alarmHiddenDangerList(@RequestParam(value = "systemType") Integer systemType,
+                                                                            @RequestParam(value = "companyName", required = false) String companyName,
+                                                                            @RequestParam(value = "handlingStatus", required = false) Integer handlingStatus,
+                                                                            @RequestParam(value = "startDate", required = false) String startDate,
+                                                                            @RequestParam(value = "endDate", required = false) String endDate,
+                                                                            @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
+                                                                            @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
+        return ApiResult.success(alarmElectricalFireService.alarmHiddenDangerList(systemType, companyName, handlingStatus, startDate, endDate, pageNum, pageSize));
+    }
+
+    /**
+     * 事件管理-隐患管理-不同类型隐患-左侧数据统计
+     *
+     * @param systemType  系统类型(2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param companyName 单位名称
+     * @param startDate   开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate     结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    @GetMapping("hiddenDangerStatistics")
+    public ApiResult<Map<String, Object>> hiddenDangerStatistics(@RequestParam(value = "systemType") Integer systemType,
+                                                                 @RequestParam(value = "companyName", required = false) String companyName,
+                                                                 @RequestParam(value = "startDate", required = false) String startDate,
+                                                                 @RequestParam(value = "endDate", required = false) String endDate) {
+        return ApiResult.success(alarmElectricalFireService.hiddenDangerStatistics(systemType, companyName, startDate, endDate));
+    }
+
+
+    /**
+     * 事件管理-隐患管理-不同类型隐患-统计图数据查询
+     *
+     * @param systemType 系统类型(2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param startDate  开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate    结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    @GetMapping("hiddenDangerStatisticalChart")
+    public ApiResult<Map<String, Object>> hiddenDangerStatisticalChart(@RequestParam(value = "systemType") Integer systemType,
+                                                                       @RequestParam(value = "startDate", required = false) String startDate,
+                                                                       @RequestParam(value = "endDate", required = false) String endDate) {
+        return ApiResult.success(alarmElectricalFireService.hiddenDangerStatisticalChart(systemType, startDate, endDate));
+    }
+
+    /**
+     *
+     * @param alarmHiddenDangerVo
+     * @return
+     */
+    @Log(title = "隐患管理-告警处理", businessType = BusinessType.UPDATE)
+    @PutMapping("updateHiddenDanger")
+    public ApiResult<Void> updateHiddenDanger(@RequestBody AlarmHiddenDangerVo alarmHiddenDangerVo) {
+        alarmElectricalFireService.updateHiddenDanger(alarmHiddenDangerVo);
+        return ApiResult.success();
+    }
 }
 

+ 15 - 4
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmFireController.java

@@ -61,8 +61,11 @@ public class AlarmFireController {
      * @return
      */
     @GetMapping("fireStatistics")
-    public ApiResult<Map<String, Object>> fireStatistics(@RequestParam(value = "alarmType", required = false) String alarmType) {
-        return ApiResult.success(alarmFireService.fireStatistics(alarmType));
+    public ApiResult<Map<String, Object>> fireStatistics(@RequestParam(value = "companyName", required = false) String companyName,
+                                                         @RequestParam(value = "alarmType", required = false) String alarmType,
+                                                         @RequestParam(value = "startDate", required = false) String startDate,
+                                                         @RequestParam(value = "endDate", required = false) String endDate) {
+        return ApiResult.success(alarmFireService.fireStatistics(companyName, alarmType, startDate, endDate));
     }
 
 
@@ -99,15 +102,23 @@ public class AlarmFireController {
     /**
      * 事件管理-/火警告警处置/隐患报警处理-火灾报警处置/故障告警处置-导出
      *
-     * @param response
      * @param companyName    单位名称
      * @param handlingStatus 处理状态(0、未处理 1、已处理)
      * @param alarmType      告警类型(2 火警、4 故障、16 监管等)
      * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
      * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
-     * @param exportTitle    导出标题
+     * @param exportTitle    文件名
      * @throws IOException
      */
+//    @GetMapping("alarmFireLowerListExport")
+//    public ApiResult<String> export(@RequestParam(value = "companyName", required = false) String companyName,
+//                                    @RequestParam(value = "handlingStatus", required = false) Integer handlingStatus,
+//                                    @RequestParam(value = "alarmType", required = false) String alarmType,
+//                                    @RequestParam(value = "startDate", required = false) String startDate,
+//                                    @RequestParam(value = "endDate", required = false) String endDate,
+//                                    @RequestParam(value = "exportTitle", required = false) String exportTitle) {
+//        return ApiResult.success(alarmFireService.alarmFireExport(companyName, handlingStatus, startDate, endDate, alarmType, exportTitle));
+//    }
     @GetMapping("alarmFireLowerListExport")
     public void export(HttpServletResponse response,
                        @RequestParam(value = "companyName", required = false) String companyName,

+ 3 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/PatrolInspectionContentController.java

@@ -91,11 +91,12 @@ public class PatrolInspectionContentController {
      * @param contentTitle 内容标题
      * @param idList 巡检内容ID
      * @throws IOException
+     * @return
      */
     @GetMapping("/contentListExport")
     public void export(HttpServletResponse response,
-                       @RequestParam(value = "contentTitle",required = false) String contentTitle,
-                       @RequestParam(value = "id",required = false) String idList) throws IOException {
+                                  @RequestParam(value = "contentTitle",required = false) String contentTitle,
+                                  @RequestParam(value = "id",required = false) String idList) throws IOException {
         List<PatrolInspectionContentExportVo> list = patrolInspectionContentService.contentListExport(contentTitle, idList);
         ExcelUtil<PatrolInspectionContentExportVo> util = new ExcelUtil<PatrolInspectionContentExportVo>(PatrolInspectionContentExportVo.class);
         util.exportExcel(response, list, "巡检内容列表", "巡检内容列表");

+ 1 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/PatrolInspectionRecordController.java

@@ -104,7 +104,7 @@ public class PatrolInspectionRecordController {
                        @RequestParam(value = "startDateTime", required = false) String startDateTime,
                        @RequestParam(value = "endDateTime", required = false) String endDateTime,
                        @RequestParam(value = "idList", required = false) String idList) throws IOException {
-        List<PatrolInspectionRecordExportVo> list = patrolInspectionRecordService.recordLsitExport(areaName, siteName, name, planType, startDateTime, endDateTime,idList);
+        List<PatrolInspectionRecordExportVo> list = patrolInspectionRecordService.recordLsitExport(areaName, siteName, name, planType, startDateTime, endDateTime, idList);
         ExcelUtil<PatrolInspectionRecordExportVo> util = new ExcelUtil<PatrolInspectionRecordExportVo>(PatrolInspectionRecordExportVo.class);
         util.exportExcel(response, list, "巡检记录", "巡检记录");
     }

+ 16 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmElectricalFire.java

@@ -1,12 +1,14 @@
 package com.usky.fire.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import java.io.Serializable;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
 /**
  * <p>
  * 电气火灾隐患告警
@@ -132,5 +134,17 @@ public class AlarmElectricalFire implements Serializable {
      */
     private String sitePhoto;
 
+    /**
+     * 报告内容
+     */
+    @TableField(exist = false)
+    private String reportContent;
+
+    /**
+     * 告警类型名称
+     */
+    @TableField(exist = false)
+    private String alarmTypeName;
+
 
 }

+ 14 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmHydrantWater.java

@@ -1,6 +1,7 @@
 package com.usky.fire.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -132,5 +133,18 @@ public class AlarmHydrantWater implements Serializable {
      */
     private String sitePhoto;
 
+    /**
+     * 报告内容
+     */
+    @TableField(exist = false)
+    private String reportContent;
+
+    /**
+     * 告警类型名称
+     */
+    @TableField(exist = false)
+    private String alarmTypeName;
+
+
 
 }

+ 14 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmSmokeControl.java

@@ -1,6 +1,7 @@
 package com.usky.fire.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -132,5 +133,18 @@ public class AlarmSmokeControl implements Serializable {
      */
     private String sitePhoto;
 
+    /**
+     * 报告内容
+     */
+    @TableField(exist = false)
+    private String reportContent;
+
+    /**
+     * 告警类型名称
+     */
+    @TableField(exist = false)
+    private String alarmTypeName;
+
+
 
 }

+ 14 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmSprayWater.java

@@ -1,6 +1,7 @@
 package com.usky.fire.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -132,5 +133,18 @@ public class AlarmSprayWater implements Serializable {
      */
     private String sitePhoto;
 
+    /**
+     * 报告内容
+     */
+    @TableField(exist = false)
+    private String reportContent;
+
+    /**
+     * 告警类型名称
+     */
+    @TableField(exist = false)
+    private String alarmTypeName;
+
+
 
 }

+ 15 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmVideo.java

@@ -1,6 +1,7 @@
 package com.usky.fire.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -133,4 +134,18 @@ public class AlarmVideo implements Serializable {
     private String sitePhoto;
 
 
+    /**
+     * 报告内容
+     */
+    @TableField(exist = false)
+    private String reportContent;
+
+    /**
+     * 告警类型名称
+     */
+    @TableField(exist = false)
+    private String alarmTypeName;
+
+
+
 }

+ 11 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/AlarmElectricalFireMapper.java

@@ -1,7 +1,12 @@
 package com.usky.fire.mapper;
 
-import com.usky.fire.domain.AlarmElectricalFire;
 import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.fire.domain.AlarmElectricalFire;
+import com.usky.fire.service.vo.AlarmFireStatisticalVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 /**
  * <p>
@@ -11,6 +16,10 @@ import com.usky.common.mybatis.core.CrudMapper;
  * @author JCB
  * @since 2022-08-18
  */
+@Repository
 public interface AlarmElectricalFireMapper extends CrudMapper<AlarmElectricalFire> {
-
+    List<AlarmFireStatisticalVo> selectElectricalFireStatistical(@Param("table") String table,
+                                                                 @Param("companyIdList") List<Integer> companyIdList,
+                                                                 @Param("startDate") String startDate,
+                                                                 @Param("endDate") String endDate);
 }

+ 83 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmElectricalFireService.java

@@ -1,7 +1,12 @@
 package com.usky.fire.service;
 
-import com.usky.fire.domain.AlarmElectricalFire;
+import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.AlarmElectricalFire;
+import com.usky.fire.service.vo.AlarmHiddenDangerVo;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +18,81 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface AlarmElectricalFireService extends CrudService<AlarmElectricalFire> {
 
+    /**
+     * 事件管理-隐患管理-电气火灾-列表查询
+     *
+     * @param companyName    单位名称
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    CommonPage<AlarmElectricalFire> alarmElectricalFireList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                            Integer pageNum, Integer pageSize);
+
+
+    /**
+     * 事件管理-隐患管理-不同类型隐患-列表查询
+     *
+     * @param systemType     系统类型(2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param companyName    单位名称
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    CommonPage<AlarmHiddenDangerVo> alarmHiddenDangerList(Integer systemType, String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                          Integer pageNum, Integer pageSize);
+
+
+    /**
+     * 事件管理-隐患管理-电气火灾-告警统计
+     *
+     * @param companyIdList  单位ID
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param companyName    单位名称
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    Integer electricalFireCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate);
+
+    /**
+     * 事件管理-隐患管理-不同类型隐患-左侧数据统计
+     *
+     * @param systemType  系统类型(2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param companyName 单位民称
+     * @param startDate   开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate     结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    Map<String, Object> hiddenDangerStatistics(Integer systemType, String companyName, String startDate, String endDate);
+
+    /**
+     * 事件管理-隐患管理-不同类型隐患-折线图数据
+     *
+     * @param systemType 系统类型(2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param startDate  开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate    结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    Map<String, Object> hiddenDangerStatisticalChart(Integer systemType, String startDate, String endDate);
+
+    /**
+     * 事件管理-隐患管理-电气火灾-告警处理
+     *
+     * @param alarmElectricalFire
+     */
+    void updateAlarmElectricalFire(AlarmElectricalFire alarmElectricalFire);
+
+    /**
+     * 事件管理-隐患管理-不同类型隐患-告警处理
+     *
+     * @param alarmHiddenDangerVo
+     */
+    void updateHiddenDanger(AlarmHiddenDangerVo alarmHiddenDangerVo);
 }

+ 4 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmFireService.java

@@ -21,7 +21,7 @@ public interface AlarmFireService extends CrudService<AlarmFire> {
     CommonPage<AlarmFireVo> alarmFireLowerList(String companyName, Integer handlingStatus, String startDate, String endDate,
                                                Integer pageNum, Integer pageSize, String alarmType);
 
-    Map<String, Object> fireStatistics(String alarmType);
+    Map<String, Object> fireStatistics(String companyName,String alarmType,String startDate,String endDate);
 
     Map<String, Object> fireStatisticalChart(String alarmType, String startDate, String endDate);
 
@@ -29,6 +29,8 @@ public interface AlarmFireService extends CrudService<AlarmFire> {
 
     List<AlarmFireVo> alarmFireLowerListExport(String companyName, Integer handlingStatus, String startDate, String endDate, String alarmType);
 
+    String alarmFireExport(String companyName, Integer handlingStatus, String startDate, String endDate, String alarmType,String exportTitle);
+
     /**
      * 火警告警处置/故障告警处置-数量统计
      *
@@ -37,7 +39,7 @@ public interface AlarmFireService extends CrudService<AlarmFire> {
      * @param alarmTypeList  告警类型(2 火警、4 故障、16 监管等)
      * @return
      */
-    Integer fireCount(List<Integer> companyIdList, Integer handlingStatus, List<String> alarmTypeList);
+    Integer fireCount(List<Integer> companyIdList, Integer handlingStatus, List<String> alarmTypeList,String companyName,String startDate,String endDate);
 
     /**
      * 火警告警处置/故障告警处置-列表数据查询

+ 36 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmHydrantWaterService.java

@@ -1,7 +1,10 @@
 package com.usky.fire.service;
 
-import com.usky.fire.domain.AlarmHydrantWater;
+import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.AlarmHydrantWater;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,36 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface AlarmHydrantWaterService extends CrudService<AlarmHydrantWater> {
 
+    /**
+     * 事件管理-隐患管理-消防给水及消火栓-列表查询
+     *
+     * @param companyName    单位名称
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    CommonPage<AlarmHydrantWater> alarmHydrantWaterList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                        Integer pageNum, Integer pageSize);
+
+
+    /**
+     * 事件管理-隐患管理-消防给水及消火栓-告警统计
+     *
+     * @param companyIdList  单位ID
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param companyName    单位名称
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    Integer hydrantWaterCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate);
+
+    /**
+     * 事件管理-隐患管理-消防给水及消火栓-告警处置
+     * @param alarmHydrantWater
+     */
+    void updateAlarmHydrantWater(AlarmHydrantWater alarmHydrantWater);
 }

+ 37 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmSmokeControlService.java

@@ -1,7 +1,10 @@
 package com.usky.fire.service;
 
-import com.usky.fire.domain.AlarmSmokeControl;
+import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.AlarmSmokeControl;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,37 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface AlarmSmokeControlService extends CrudService<AlarmSmokeControl> {
 
+    /**
+     * 事件管理-隐患管理-防排烟-列表查询
+     *
+     * @param companyName    单位名称
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    CommonPage<AlarmSmokeControl> alarmSmokeList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                 Integer pageNum, Integer pageSize);
+
+
+    /**
+     * 事件管理-隐患管理-防排烟-告警统计
+     *
+     * @param companyIdList  单位ID
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param companyName    单位名称
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    Integer smokeCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate);
+
+    /**
+     * 事件管理-隐患管理-防排烟-告警处置
+     *
+     * @param alarmSmokeControl
+     */
+    void updateAlarmSmokeControl(AlarmSmokeControl alarmSmokeControl);
 }

+ 36 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmSprayWaterService.java

@@ -1,7 +1,10 @@
 package com.usky.fire.service;
 
-import com.usky.fire.domain.AlarmSprayWater;
+import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.AlarmSprayWater;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,36 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface AlarmSprayWaterService extends CrudService<AlarmSprayWater> {
 
+    /**
+     * 事件管理-隐患管理-自动喷水灭火-列表查询
+     *
+     * @param companyName    单位名称
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    CommonPage<AlarmSprayWater> alarmSprayWaterList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                    Integer pageNum, Integer pageSize);
+
+    /**
+     * 事件管理-隐患管理-自动喷水灭火-告警统计
+     *
+     * @param companyIdList  单位ID
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param companyName    单位名称
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    Integer sprayWaterCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate);
+
+    /**
+     * 事件管理-隐患管理-自动喷水灭火-告警处置
+     *
+     * @param alarmSprayWater
+     */
+    void updateAlarmSmokeControl(AlarmSprayWater alarmSprayWater);
 }

+ 36 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmVideoService.java

@@ -1,7 +1,10 @@
 package com.usky.fire.service;
 
-import com.usky.fire.domain.AlarmVideo;
+import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.AlarmVideo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,36 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface AlarmVideoService extends CrudService<AlarmVideo> {
 
+    /**
+     * 事件管理-隐患管理-视频监控-列表查询
+     *
+     * @param companyName    单位名称
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:
+     * @param pageNum        当前页
+     * @param pageSize       每页条数
+     * @return
+     */
+    CommonPage<AlarmVideo> alarmVideoList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                          Integer pageNum, Integer pageSize);
+
+    /**
+     * 事件管理-隐患管理-视频监控-告警统计
+     *
+     * @param companyIdList  单位ID
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param companyName    单位名称
+     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
+     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    Integer videoCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate);
+
+    /**
+     * 事件管理-隐患管理-视频监控-告警处置
+     *
+     * @param alarmVideo
+     */
+    void updateAlarmVideo(AlarmVideo alarmVideo);
 }

+ 277 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmElectricalFireServiceImpl.java

@@ -1,11 +1,28 @@
 package com.usky.fire.service.impl;
 
-import com.usky.fire.domain.AlarmElectricalFire;
-import com.usky.fire.mapper.AlarmElectricalFireMapper;
-import com.usky.fire.service.AlarmElectricalFireService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.util.BeanMapperUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.fire.domain.*;
+import com.usky.fire.mapper.AlarmElectricalFireMapper;
+import com.usky.fire.service.*;
+import com.usky.fire.service.util.OnlineMethod;
+import com.usky.fire.service.vo.AlarmFireStatisticalVo;
+import com.usky.fire.service.vo.AlarmHiddenDangerVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 电气火灾隐患告警 服务实现类
@@ -17,4 +34,261 @@ import org.springframework.stereotype.Service;
 @Service
 public class AlarmElectricalFireServiceImpl extends AbstractCrudService<AlarmElectricalFireMapper, AlarmElectricalFire> implements AlarmElectricalFireService {
 
+    @Autowired
+    private BaseUserCompanyService baseUserCompanyService;
+
+    @Autowired
+    private AlarmHydrantWaterService alarmHydrantWaterService;
+
+    @Autowired
+    private AlarmSmokeControlService alarmSmokeControlService;
+
+    @Autowired
+    private AlarmSprayWaterService alarmSprayWaterService;
+
+    @Autowired
+    private AlarmVideoService alarmVideoService;
+
+    @Override
+    public CommonPage<AlarmElectricalFire> alarmElectricalFireList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                                   Integer pageNum, Integer pageSize) {
+        int total = 0;
+        List<AlarmElectricalFire> list = new ArrayList<>();
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = baseUserCompanyService.list(QueryWrapper);
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            List<Integer> companyIdList = new ArrayList<>();
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+            LambdaQueryWrapper<AlarmElectricalFire> queryWrapperOne = Wrappers.lambdaQuery();
+            queryWrapperOne.select(AlarmElectricalFire::getId, AlarmElectricalFire::getDeviceCode,
+                    AlarmElectricalFire::getDeviceName, AlarmElectricalFire::getAlarmType, AlarmElectricalFire::getAlarmTime,
+                    AlarmElectricalFire::getCompanyId, AlarmElectricalFire::getCompanyName, AlarmElectricalFire::getHandlingStatus,
+                    AlarmElectricalFire::getHandler, AlarmElectricalFire::getHandlingTime, AlarmElectricalFire::getHandlingContent,
+                    AlarmElectricalFire::getFalseAlarm, AlarmElectricalFire::getSitePhoto, AlarmElectricalFire::getAttributeValue4)
+                    .in(AlarmElectricalFire::getCompanyId, companyIdList)
+                    .like(StringUtils.isNotBlank(companyName), AlarmElectricalFire::getCompanyName, companyName)
+                    .eq(handlingStatus != null, AlarmElectricalFire::getHandlingStatus, handlingStatus)
+                    .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmElectricalFire::getAlarmTime, startDate, endDate);
+            total = this.count(queryWrapperOne);
+            queryWrapperOne.orderByDesc(AlarmElectricalFire::getId);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize);
+                queryWrapperOne.last("limit " + startFate + "," + pageSize);
+            }
+            list = this.list(queryWrapperOne);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setAlarmTypeName(OnlineMethod.alarmName(list.get(i).getAlarmType()));
+                    list.get(i).setReportContent(list.get(i).getDeviceName() + "," + OnlineMethod.alarmName(list.get(i).getAlarmType()) + ",高警值:" + list.get(i).getAttributeValue4() + "" + OnlineMethod.company(list.get(i).getAlarmType()));
+                }
+            }
+        }
+        return new CommonPage<>(list, total, pageSize, pageNum);
+    }
+
+    public CommonPage<AlarmHiddenDangerVo> alarmHiddenDangerList(Integer systemType, String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                                 Integer pageNum, Integer pageSize) {
+        CommonPage<AlarmHiddenDangerVo> list = new CommonPage<>();
+        list.setCurrent(pageNum);
+        list.setSize(pageSize);
+        switch (systemType) {
+            case 2:
+                CommonPage<AlarmSprayWater> list2 = alarmSprayWaterService.alarmSprayWaterList(companyName, handlingStatus, startDate, endDate, pageNum, pageSize);
+                list.setRecords(BeanMapperUtils.mapList(list2.getRecords(), AlarmSprayWater.class, AlarmHiddenDangerVo.class));
+                list.setTotal(list2.getTotal());
+                break;
+            case 3:
+                CommonPage<AlarmHydrantWater> list3 = alarmHydrantWaterService.alarmHydrantWaterList(companyName, handlingStatus, startDate, endDate, pageNum, pageSize);
+                list.setRecords(BeanMapperUtils.mapList(list3.getRecords(), AlarmHydrantWater.class, AlarmHiddenDangerVo.class));
+                list.setTotal(list3.getTotal());
+                break;
+            case 4:
+                CommonPage<AlarmSmokeControl> list4 = alarmSmokeControlService.alarmSmokeList(companyName, handlingStatus, startDate, endDate, pageNum, pageSize);
+                list.setRecords(BeanMapperUtils.mapList(list4.getRecords(), AlarmSmokeControl.class, AlarmHiddenDangerVo.class));
+                list.setTotal(list4.getTotal());
+                break;
+            case 5:
+                CommonPage<AlarmElectricalFire> list5 = this.alarmElectricalFireList(companyName, handlingStatus, startDate, endDate, pageNum, pageSize);
+                list.setRecords(BeanMapperUtils.mapList(list5.getRecords(), AlarmElectricalFire.class, AlarmHiddenDangerVo.class));
+                list.setTotal(list5.getTotal());
+                break;
+            case 6:
+                CommonPage<AlarmVideo> list6 = alarmVideoService.alarmVideoList(companyName, handlingStatus, startDate, endDate, pageNum, pageSize);
+                list.setRecords(BeanMapperUtils.mapList(list6.getRecords(), AlarmVideo.class, AlarmHiddenDangerVo.class));
+                list.setTotal(list6.getTotal());
+                break;
+        }
+        return list;
+    }
+
+    @Override
+    public Integer electricalFireCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate) {
+        LambdaQueryWrapper<AlarmElectricalFire> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.in(AlarmElectricalFire::getCompanyId, companyIdList)
+                .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmElectricalFire::getAlarmTime, startDate, endDate)
+                .like(StringUtils.isNotBlank(companyName), AlarmElectricalFire::getCompanyName, companyName)
+                .eq(handlingStatus != null, AlarmElectricalFire::getHandlingStatus, handlingStatus);
+        int total = this.count(queryWrapper);
+        return total;
+    }
+
+
+    @Override
+    public Map<String, Object> hiddenDangerStatistics(Integer systemType, String companyName, String startDate, String endDate) {
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = baseUserCompanyService.list(QueryWrapper);
+        int untreated = 0;
+        int processed = 0;
+        Integer count = 0;
+        String disposalRate = "0.00%";
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            List<Integer> companyIdList = new ArrayList<>();
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+            switch (systemType) {
+                case 2:
+                    untreated = alarmSprayWaterService.sprayWaterCount(companyIdList, 0, companyName, startDate, endDate);
+                    processed = alarmSprayWaterService.sprayWaterCount(companyIdList, 1, companyName, startDate, endDate);
+                    break;
+                case 3:
+                    untreated = alarmHydrantWaterService.hydrantWaterCount(companyIdList, 0, companyName, startDate, endDate);
+                    processed = alarmHydrantWaterService.hydrantWaterCount(companyIdList, 1, companyName, startDate, endDate);
+                    break;
+                case 4:
+                    untreated = alarmSmokeControlService.smokeCount(companyIdList, 0, companyName, startDate, endDate);
+                    processed = alarmSmokeControlService.smokeCount(companyIdList, 1, companyName, startDate, endDate);
+                    break;
+                case 5:
+                    untreated = this.electricalFireCount(companyIdList, 0, companyName, startDate, endDate);
+                    processed = this.electricalFireCount(companyIdList, 1, companyName, startDate, endDate);
+                    break;
+                case 6:
+                    untreated = alarmVideoService.videoCount(companyIdList, 0, companyName, startDate, endDate);
+                    processed = alarmVideoService.videoCount(companyIdList, 1, companyName, startDate, endDate);
+                    break;
+            }
+            count = untreated + processed;
+            disposalRate = OnlineMethod.myPercent(processed, count);
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("untreated", untreated);//告警未处理数
+        map.put("processed", processed);//告警未处理数
+        map.put("disposalRate", disposalRate);//告警处理率
+        map.put("alarmCount", count);//告警总数
+        return map;
+    }
+
+
+    @Override
+    public Map<String, Object> hiddenDangerStatisticalChart(Integer systemType, String startDate, String endDate) {
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = baseUserCompanyService.list(QueryWrapper);
+        List<Integer> alarmCountList = new ArrayList<>();
+        List<Integer> handleCountList = new ArrayList<>();
+        List<String> alarmTimeList = new ArrayList<>();
+        List<String> handleRateList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            List<Integer> companyIdList = new ArrayList<>();
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+            String table = "";
+            switch (systemType) {
+                case 2:
+                    table = "alarm_spray_water";
+                    break;
+                case 3:
+                    table = "alarm_hydrant_water";
+                    break;
+                case 4:
+                    table = "alarm_smoke_control";
+                    break;
+                case 5:
+                    table = "alarm_electrical_fire";
+                    break;
+                case 6:
+                    table = "alarm_video";
+                    break;
+            }
+            List<AlarmFireStatisticalVo> list = baseMapper.selectElectricalFireStatistical(table, companyIdList, startDate, endDate);
+            for (int i = 0; i < list.size(); i++) {
+                alarmCountList.add(list.get(i).getCount());
+                handleCountList.add(list.get(i).getSum());
+                alarmTimeList.add(list.get(i).getAlarmTime());
+                handleRateList.add(OnlineMethod.myPercent(list.get(i).getSum(), list.get(i).getCount()));
+            }
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("alarmCountList", alarmCountList);
+        map.put("handleCountList", handleCountList);
+        map.put("alarmTimeList", alarmTimeList);
+        map.put("handleRateList", handleRateList);
+        return map;
+    }
+
+
+    @Override
+    public void updateAlarmElectricalFire(AlarmElectricalFire alarmElectricalFire) {
+        if (alarmElectricalFire.getId() == 0) {
+            LambdaQueryWrapper<AlarmElectricalFire> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.eq(AlarmElectricalFire::getAlarmType, alarmElectricalFire.getAlarmType())
+                    .eq(AlarmElectricalFire::getDeviceCode, alarmElectricalFire.getDeviceCode());
+            List<AlarmElectricalFire> list = this.list(queryWrapper);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setHandler(SecurityUtils.getUsername());
+                    list.get(i).setHandlingTime(LocalDateTime.now());
+                    list.get(i).setHandlingStatus(1);
+                    list.get(i).setHandlingContent(alarmElectricalFire.getHandlingContent());
+                    list.get(i).setHandlerPhone("未定义");
+                    list.get(i).setFalseAlarm(alarmElectricalFire.getFalseAlarm());
+                    this.updateById(list.get(i));
+                }
+            }
+        } else {
+            alarmElectricalFire.setHandler(SecurityUtils.getUsername());
+            alarmElectricalFire.setHandlingTime(LocalDateTime.now());
+            alarmElectricalFire.setHandlingStatus(1);
+            alarmElectricalFire.setHandlerPhone("未定义");
+            this.updateById(alarmElectricalFire);
+        }
+    }
+
+
+    @Override
+    public void updateHiddenDanger(AlarmHiddenDangerVo alarmHiddenDangerVo) {
+        switch (alarmHiddenDangerVo.getSystemType()) {
+            case 2:
+                AlarmSprayWater alarmSprayWater = BeanMapperUtils.map(alarmHiddenDangerVo, AlarmSprayWater.class);
+                alarmSprayWaterService.updateAlarmSmokeControl(alarmSprayWater);
+                break;
+            case 3:
+                AlarmHydrantWater alarmHydrantWater = BeanMapperUtils.map(alarmHiddenDangerVo, AlarmHydrantWater.class);
+                alarmHydrantWaterService.updateAlarmHydrantWater(alarmHydrantWater);
+                break;
+            case 4:
+                AlarmSmokeControl alarmSmokeControl = BeanMapperUtils.map(alarmHiddenDangerVo, AlarmSmokeControl.class);
+                alarmSmokeControlService.updateAlarmSmokeControl(alarmSmokeControl);
+                break;
+            case 5:
+                AlarmElectricalFire alarmElectricalFire = BeanMapperUtils.map(alarmHiddenDangerVo, AlarmElectricalFire.class);
+                this.updateAlarmElectricalFire(alarmElectricalFire);
+                break;
+            case 6:
+                AlarmVideo alarmVideo = BeanMapperUtils.map(alarmHiddenDangerVo, AlarmVideo.class);
+                alarmVideoService.updateAlarmVideo(alarmVideo);
+                break;
+        }
+    }
+
+
 }

+ 59 - 7
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmFireServiceImpl.java

@@ -1,10 +1,16 @@
 package com.usky.fire.service.impl;
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.core.util.BeanMapperUtils;
+import com.usky.common.core.util.FileUtils;
+import com.usky.common.core.util.GlobalUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.fire.domain.AlarmFire;
@@ -15,9 +21,15 @@ import com.usky.fire.service.BaseUserCompanyService;
 import com.usky.fire.service.util.OnlineMethod;
 import com.usky.fire.service.vo.AlarmFireStatisticalVo;
 import com.usky.fire.service.vo.AlarmFireVo;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -85,6 +97,7 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
                 alarmFireVo.setHostNum(alarmFireList.getRecords().get(i).getHostNum());
                 alarmFireVo.setLoopNum(alarmFireList.getRecords().get(i).getLoopNum());
                 alarmFireVo.setPtNum(alarmFireList.getRecords().get(i).getPtNum());
+                alarmFireVo.setAlarmTypeName(OnlineMethod.alarmName(alarmFireList.getRecords().get(i).getAlarmType()));
 //            alarmFireVo.setSystemType(alarmFireList.getRecords().get(i).getSystemType());
 //            alarmFireVo.setAddress(alarmFireList.getRecords().get(i).getAddress());
 //            alarmFireVo.setAlarmStatus(alarmFireList.getRecords().get(i).getAlarmStatus());
@@ -98,7 +111,7 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
 
 
     @Override
-    public Map<String, Object> fireStatistics(String alarmType) {
+    public Map<String, Object> fireStatistics(String companyName, String alarmType, String startDate, String endDate) {
         List<String> alarmTypeList = new ArrayList<>();
         if (StringUtils.isNotBlank(alarmType)) {
             String[] alarmTypeArray = alarmType.split(",");
@@ -119,8 +132,8 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
             for (int i = 0; i < comoanyList.size(); i++) {
                 companyIdList.add(comoanyList.get(i).getCompanyId());
             }
-            untreated = this.fireCount(companyIdList, 0, alarmTypeList);
-            processed = this.fireCount(companyIdList, 1, alarmTypeList);
+            untreated = this.fireCount(companyIdList, 0, alarmTypeList, companyName, startDate, endDate);
+            processed = this.fireCount(companyIdList, 1, alarmTypeList, companyName, startDate, endDate);
             count = untreated + processed;
             disposalRate = OnlineMethod.myPercent(processed, count);
         }
@@ -208,6 +221,7 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
             alarmFire.setHandler(SecurityUtils.getUsername());
             alarmFire.setHandlingTime(LocalDateTime.now());
             alarmFire.setHandlingStatus(1);
+            alarmFire.setHandlerPhone("未定义");
             this.updateById(alarmFire);
         }
     }
@@ -252,21 +266,56 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
                 }
                 alarmFireVo.setFalseAlarm(alarmFireList.getRecords().get(i).getFalseAlarm());
                 alarmFireVo.setHandlingContent(alarmFireList.getRecords().get(i).getHandlingContent());
+                alarmFireVo.setAlarmTypeName(OnlineMethod.alarmName(alarmFireList.getRecords().get(i).getAlarmType()));
                 list.add(alarmFireVo);
             }
         }
         return list;
     }
 
+
     @Override
-    public Integer fireCount(List<Integer> companyIdList, Integer handlingStatus, List<String> alarmTypeList) {
+    public String alarmFireExport(String companyName, Integer handlingStatus, String startDate, String endDate, String alarmType,String exportTitle) {
+        DateFormat dFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
+        Workbook workbook = null;
+        File file = null;
+        try {
+            ExportParams params = new ExportParams(null, exportTitle);
+            workbook = ExcelExportUtil.exportBigExcel(params, AlarmFireVo.class,
+                    (o, i) -> {
+                        List<AlarmFireVo> list = this.alarmFireLowerListExport(companyName, handlingStatus, startDate, endDate, alarmType);
+                        return new ArrayList<>(BeanMapperUtils.mapList(list, AlarmFireVo.class, AlarmFireVo.class));
+                    }, null);
+            if (null != workbook) {
+                file = FileUtils.getFile(GlobalUtils.getTempBaseDir(), String.format("%s-%s.xlsx", exportTitle, dFormat.format(System.currentTimeMillis()) + ""));
+                FileUtils.createFile(file.getAbsolutePath());
+                FileOutputStream allListingFileOutputStream = new FileOutputStream(file);
+                workbook.write(allListingFileOutputStream);
+            } else {
+                throw new BusinessException("表格数据为空");
+            }
+        } catch (Exception e) {
+            log.error("导出文件失败", e);
+            throw new BusinessException("导出文件失败");
+        } finally {
+            if (workbook != null) {
+                try {
+                    workbook.close();
+                } catch (IOException e) {
+                    log.error("===export spec=== 关闭workbook失败", e);
+                }
+            }
+        }
+        return file.getName();
+    }
+
+
+    @Override
+    public Integer fireCount(List<Integer> companyIdList, Integer handlingStatus, List<String> alarmTypeList, String companyName, String startDate, String endDate) {
         LambdaQueryWrapper<AlarmFire> queryWrapper = Wrappers.lambdaQuery();
         if (companyIdList.size() > 0) {
             queryWrapper.in(AlarmFire::getCompanyId, companyIdList);
         }
-        if (handlingStatus != null) {
-            queryWrapper.eq(AlarmFire::getHandlingStatus, handlingStatus);
-        }
         if (alarmTypeList.size() > 0) {
             if (alarmTypeList.contains("100")) {
                 List<String> alarmTypeList1 = new ArrayList<>();
@@ -277,6 +326,9 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
                 queryWrapper.in(AlarmFire::getAlarmType, alarmTypeList);
             }
         }
+        queryWrapper.between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmFire::getAlarmTime, startDate, endDate)
+                .like(StringUtils.isNotBlank(companyName), AlarmFire::getCompanyName, companyName)
+                .eq(handlingStatus != null, AlarmFire::getHandlingStatus, handlingStatus);
         int total = this.count(queryWrapper);
         return total;
     }

+ 96 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmHydrantWaterServiceImpl.java

@@ -1,11 +1,25 @@
 package com.usky.fire.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.fire.domain.AlarmHydrantWater;
+import com.usky.fire.domain.BaseUserCompany;
 import com.usky.fire.mapper.AlarmHydrantWaterMapper;
 import com.usky.fire.service.AlarmHydrantWaterService;
-import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.service.BaseUserCompanyService;
+import com.usky.fire.service.util.OnlineMethod;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 消防给水及消火栓隐患告警 服务实现类
@@ -17,4 +31,85 @@ import org.springframework.stereotype.Service;
 @Service
 public class AlarmHydrantWaterServiceImpl extends AbstractCrudService<AlarmHydrantWaterMapper, AlarmHydrantWater> implements AlarmHydrantWaterService {
 
+    @Autowired
+    private BaseUserCompanyService baseUserCompanyService;
+
+    @Override
+    public CommonPage<AlarmHydrantWater> alarmHydrantWaterList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                               Integer pageNum, Integer pageSize) {
+        int total = 0;
+        List<AlarmHydrantWater> list = new ArrayList<>();
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = baseUserCompanyService.list(QueryWrapper);
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            List<Integer> companyIdList = new ArrayList<>();
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+            LambdaQueryWrapper<AlarmHydrantWater> queryWrapperOne = Wrappers.lambdaQuery();
+            queryWrapperOne.select(AlarmHydrantWater::getId, AlarmHydrantWater::getDeviceCode,
+                    AlarmHydrantWater::getDeviceName, AlarmHydrantWater::getAlarmType, AlarmHydrantWater::getAlarmTime,
+                    AlarmHydrantWater::getCompanyId, AlarmHydrantWater::getCompanyName, AlarmHydrantWater::getHandlingStatus,
+                    AlarmHydrantWater::getHandler, AlarmHydrantWater::getHandlingTime, AlarmHydrantWater::getHandlingContent,
+                    AlarmHydrantWater::getFalseAlarm, AlarmHydrantWater::getSitePhoto, AlarmHydrantWater::getAttributeValue4)
+                    .in(AlarmHydrantWater::getCompanyId, companyIdList)
+                    .like(StringUtils.isNotBlank(companyName), AlarmHydrantWater::getCompanyName, companyName)
+                    .eq(handlingStatus != null, AlarmHydrantWater::getHandlingStatus, handlingStatus)
+                    .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmHydrantWater::getAlarmTime, startDate, endDate);
+            total = this.count(queryWrapperOne);
+            queryWrapperOne.orderByDesc(AlarmHydrantWater::getId);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize);
+                queryWrapperOne.last("limit " + startFate + "," + pageSize);
+            }
+            list = this.list(queryWrapperOne);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setAlarmTypeName(OnlineMethod.alarmName(list.get(i).getAlarmType()));
+                    list.get(i).setReportContent(list.get(i).getDeviceName() + "," + OnlineMethod.alarmName(list.get(i).getAlarmType()) + ",高警值:" + list.get(i).getAttributeValue4() + "" + OnlineMethod.company(list.get(i).getAlarmType()));
+                }
+            }
+        }
+        return new CommonPage<>(list, total, pageSize, pageNum);
+    }
+
+    @Override
+    public Integer hydrantWaterCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate) {
+        LambdaQueryWrapper<AlarmHydrantWater> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.in(AlarmHydrantWater::getCompanyId, companyIdList)
+                .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmHydrantWater::getAlarmTime, startDate, endDate)
+                .like(StringUtils.isNotBlank(companyName), AlarmHydrantWater::getCompanyName, companyName)
+                .eq(handlingStatus != null, AlarmHydrantWater::getHandlingStatus, handlingStatus);
+        int total = this.count(queryWrapper);
+        return total;
+    }
+
+    @Override
+    public void updateAlarmHydrantWater(AlarmHydrantWater alarmHydrantWater) {
+        if (alarmHydrantWater.getId() == 0) {
+            LambdaQueryWrapper<AlarmHydrantWater> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.eq(AlarmHydrantWater::getAlarmType, alarmHydrantWater.getAlarmType())
+                    .eq(AlarmHydrantWater::getDeviceCode, alarmHydrantWater.getDeviceCode());
+            List<AlarmHydrantWater> list = this.list(queryWrapper);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setHandler(SecurityUtils.getUsername());
+                    list.get(i).setHandlingTime(LocalDateTime.now());
+                    list.get(i).setHandlingStatus(1);
+                    list.get(i).setHandlingContent(alarmHydrantWater.getHandlingContent());
+                    list.get(i).setHandlerPhone("未定义");
+                    list.get(i).setFalseAlarm(alarmHydrantWater.getFalseAlarm());
+                    this.updateById(list.get(i));
+                }
+            }
+        } else {
+            alarmHydrantWater.setHandler(SecurityUtils.getUsername());
+            alarmHydrantWater.setHandlingTime(LocalDateTime.now());
+            alarmHydrantWater.setHandlingStatus(1);
+            alarmHydrantWater.setHandlerPhone("未定义");
+            this.updateById(alarmHydrantWater);
+        }
+    }
 }

+ 98 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmSmokeControlServiceImpl.java

@@ -1,11 +1,26 @@
 package com.usky.fire.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.fire.domain.AlarmHydrantWater;
 import com.usky.fire.domain.AlarmSmokeControl;
+import com.usky.fire.domain.BaseUserCompany;
 import com.usky.fire.mapper.AlarmSmokeControlMapper;
 import com.usky.fire.service.AlarmSmokeControlService;
-import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.service.BaseUserCompanyService;
+import com.usky.fire.service.util.OnlineMethod;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 防排烟隐患告警 服务实现类
@@ -17,4 +32,86 @@ import org.springframework.stereotype.Service;
 @Service
 public class AlarmSmokeControlServiceImpl extends AbstractCrudService<AlarmSmokeControlMapper, AlarmSmokeControl> implements AlarmSmokeControlService {
 
+    @Autowired
+    private BaseUserCompanyService baseUserCompanyService;
+
+    @Override
+    public CommonPage<AlarmSmokeControl> alarmSmokeList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                        Integer pageNum, Integer pageSize) {
+        int total = 0;
+        List<AlarmSmokeControl> list = new ArrayList<>();
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = baseUserCompanyService.list(QueryWrapper);
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            List<Integer> companyIdList = new ArrayList<>();
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+            LambdaQueryWrapper<AlarmSmokeControl> queryWrapperOne = Wrappers.lambdaQuery();
+            queryWrapperOne.select(AlarmSmokeControl::getId, AlarmSmokeControl::getDeviceCode,
+                    AlarmSmokeControl::getDeviceName, AlarmSmokeControl::getAlarmType, AlarmSmokeControl::getAlarmTime,
+                    AlarmSmokeControl::getCompanyId, AlarmSmokeControl::getCompanyName, AlarmSmokeControl::getHandlingStatus,
+                    AlarmSmokeControl::getHandler, AlarmSmokeControl::getHandlingTime, AlarmSmokeControl::getHandlingContent,
+                    AlarmSmokeControl::getFalseAlarm, AlarmSmokeControl::getSitePhoto)
+                    .in(AlarmSmokeControl::getCompanyId, companyIdList)
+                    .like(StringUtils.isNotBlank(companyName), AlarmSmokeControl::getCompanyName, companyName)
+                    .eq(handlingStatus != null, AlarmSmokeControl::getHandlingStatus, handlingStatus)
+                    .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmSmokeControl::getAlarmTime, startDate, endDate);
+            total = this.count(queryWrapperOne);
+            queryWrapperOne.orderByDesc(AlarmSmokeControl::getId);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize);
+                queryWrapperOne.last("limit " + startFate + "," + pageSize);
+            }
+            list = this.list(queryWrapperOne);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setAlarmTypeName(OnlineMethod.alarmName(list.get(i).getAlarmType()));
+                    list.get(i).setReportContent(list.get(i).getDeviceName() + "," + OnlineMethod.alarmName(list.get(i).getAlarmType()));
+                }
+            }
+        }
+        return new CommonPage<>(list, total, pageSize, pageNum);
+    }
+
+
+    @Override
+    public Integer smokeCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate) {
+        LambdaQueryWrapper<AlarmSmokeControl> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.in(AlarmSmokeControl::getCompanyId, companyIdList)
+                .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmSmokeControl::getAlarmTime, startDate, endDate)
+                .like(StringUtils.isNotBlank(companyName), AlarmSmokeControl::getCompanyName, companyName)
+                .eq(handlingStatus != null, AlarmSmokeControl::getHandlingStatus, handlingStatus);
+        int total = this.count(queryWrapper);
+        return total;
+    }
+
+    @Override
+    public void updateAlarmSmokeControl(AlarmSmokeControl alarmSmokeControl) {
+        if (alarmSmokeControl.getId() == 0) {
+            LambdaQueryWrapper<AlarmSmokeControl> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.eq(AlarmSmokeControl::getAlarmType, alarmSmokeControl.getAlarmType())
+                    .eq(AlarmSmokeControl::getDeviceCode, alarmSmokeControl.getDeviceCode());
+            List<AlarmSmokeControl> list = this.list(queryWrapper);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setHandler(SecurityUtils.getUsername());
+                    list.get(i).setHandlingTime(LocalDateTime.now());
+                    list.get(i).setHandlingStatus(1);
+                    list.get(i).setHandlingContent(alarmSmokeControl.getHandlingContent());
+                    list.get(i).setHandlerPhone("未定义");
+                    list.get(i).setFalseAlarm(alarmSmokeControl.getFalseAlarm());
+                    this.updateById(list.get(i));
+                }
+            }
+        } else {
+            alarmSmokeControl.setHandler(SecurityUtils.getUsername());
+            alarmSmokeControl.setHandlingTime(LocalDateTime.now());
+            alarmSmokeControl.setHandlingStatus(1);
+            alarmSmokeControl.setHandlerPhone("未定义");
+            this.updateById(alarmSmokeControl);
+        }
+    }
 }

+ 97 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmSprayWaterServiceImpl.java

@@ -1,11 +1,27 @@
 package com.usky.fire.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.fire.domain.AlarmElectricalFire;
+import com.usky.fire.domain.AlarmSmokeControl;
 import com.usky.fire.domain.AlarmSprayWater;
+import com.usky.fire.domain.BaseUserCompany;
 import com.usky.fire.mapper.AlarmSprayWaterMapper;
 import com.usky.fire.service.AlarmSprayWaterService;
-import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.service.BaseUserCompanyService;
+import com.usky.fire.service.util.OnlineMethod;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 自动喷水灭火隐患告警 服务实现类
@@ -16,5 +32,85 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class AlarmSprayWaterServiceImpl extends AbstractCrudService<AlarmSprayWaterMapper, AlarmSprayWater> implements AlarmSprayWaterService {
+    @Autowired
+    private BaseUserCompanyService baseUserCompanyService;
+
+    @Override
+    public CommonPage<AlarmSprayWater> alarmSprayWaterList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                           Integer pageNum, Integer pageSize) {
+        int total = 0;
+        List<AlarmSprayWater> list = new ArrayList<>();
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = baseUserCompanyService.list(QueryWrapper);
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            List<Integer> companyIdList = new ArrayList<>();
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+            LambdaQueryWrapper<AlarmSprayWater> queryWrapperOne = Wrappers.lambdaQuery();
+            queryWrapperOne.select(AlarmSprayWater::getId, AlarmSprayWater::getDeviceCode,
+                    AlarmSprayWater::getDeviceName, AlarmSprayWater::getAlarmType, AlarmSprayWater::getAlarmTime,
+                    AlarmSprayWater::getCompanyId, AlarmSprayWater::getCompanyName, AlarmSprayWater::getHandlingStatus,
+                    AlarmSprayWater::getHandler, AlarmSprayWater::getHandlingTime, AlarmSprayWater::getHandlingContent,
+                    AlarmSprayWater::getFalseAlarm, AlarmSprayWater::getSitePhoto, AlarmSprayWater::getAttributeValue4)
+                    .in(AlarmSprayWater::getCompanyId, companyIdList)
+                    .like(StringUtils.isNotBlank(companyName), AlarmSprayWater::getCompanyName, companyName)
+                    .eq(handlingStatus != null, AlarmSprayWater::getHandlingStatus, handlingStatus)
+                    .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmSprayWater::getAlarmTime, startDate, endDate);
+            total = this.count(queryWrapperOne);
+            queryWrapperOne.orderByDesc(AlarmSprayWater::getId);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize);
+                queryWrapperOne.last("limit " + startFate + "," + pageSize);
+            }
+            list = this.list(queryWrapperOne);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setAlarmTypeName(OnlineMethod.alarmName(list.get(i).getAlarmType()));
+                    list.get(i).setReportContent(list.get(i).getDeviceName() + "," + OnlineMethod.alarmName(list.get(i).getAlarmType()) + ",高警值:" + list.get(i).getAttributeValue4() + "" + OnlineMethod.company(list.get(i).getAlarmType()));
+                }
+            }
+        }
+        return new CommonPage<>(list, total, pageSize, pageNum);
+    }
+
+    @Override
+    public Integer sprayWaterCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate) {
+        LambdaQueryWrapper<AlarmSprayWater> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.in(AlarmSprayWater::getCompanyId, companyIdList)
+                .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmSprayWater::getAlarmTime, startDate, endDate)
+                .like(StringUtils.isNotBlank(companyName), AlarmSprayWater::getCompanyName, companyName)
+                .eq(handlingStatus != null, AlarmSprayWater::getHandlingStatus, handlingStatus);
+        int total = this.count(queryWrapper);
+        return total;
+    }
 
+    @Override
+    public void updateAlarmSmokeControl(AlarmSprayWater alarmSprayWater) {
+        if (alarmSprayWater.getId() == 0) {
+            LambdaQueryWrapper<AlarmSprayWater> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.eq(AlarmSprayWater::getAlarmType, alarmSprayWater.getAlarmType())
+                    .eq(AlarmSprayWater::getDeviceCode, alarmSprayWater.getDeviceCode());
+            List<AlarmSprayWater> list = this.list(queryWrapper);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setHandler(SecurityUtils.getUsername());
+                    list.get(i).setHandlingTime(LocalDateTime.now());
+                    list.get(i).setHandlingStatus(1);
+                    list.get(i).setHandlingContent(alarmSprayWater.getHandlingContent());
+                    list.get(i).setHandlerPhone("未定义");
+                    list.get(i).setFalseAlarm(alarmSprayWater.getFalseAlarm());
+                    this.updateById(list.get(i));
+                }
+            }
+        } else {
+            alarmSprayWater.setHandler(SecurityUtils.getUsername());
+            alarmSprayWater.setHandlingTime(LocalDateTime.now());
+            alarmSprayWater.setHandlingStatus(1);
+            alarmSprayWater.setHandlerPhone("未定义");
+            this.updateById(alarmSprayWater);
+        }
+    }
 }

+ 98 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmVideoServiceImpl.java

@@ -1,11 +1,25 @@
 package com.usky.fire.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.fire.domain.AlarmVideo;
+import com.usky.fire.domain.BaseUserCompany;
 import com.usky.fire.mapper.AlarmVideoMapper;
 import com.usky.fire.service.AlarmVideoService;
-import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.service.BaseUserCompanyService;
+import com.usky.fire.service.util.OnlineMethod;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 视频监控隐患告警 服务实现类
@@ -17,4 +31,87 @@ import org.springframework.stereotype.Service;
 @Service
 public class AlarmVideoServiceImpl extends AbstractCrudService<AlarmVideoMapper, AlarmVideo> implements AlarmVideoService {
 
+    @Autowired
+    private BaseUserCompanyService baseUserCompanyService;
+
+    @Override
+    public CommonPage<AlarmVideo> alarmVideoList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                                 Integer pageNum, Integer pageSize) {
+        int total = 0;
+        List<AlarmVideo> list = new ArrayList<>();
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = baseUserCompanyService.list(QueryWrapper);
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            List<Integer> companyIdList = new ArrayList<>();
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+            LambdaQueryWrapper<AlarmVideo> queryWrapperOne = Wrappers.lambdaQuery();
+            queryWrapperOne.select(AlarmVideo::getId, AlarmVideo::getDeviceCode,
+                    AlarmVideo::getDeviceName, AlarmVideo::getAlarmType, AlarmVideo::getAlarmTime,
+                    AlarmVideo::getCompanyId, AlarmVideo::getCompanyName, AlarmVideo::getHandlingStatus,
+                    AlarmVideo::getHandler, AlarmVideo::getHandlingTime, AlarmVideo::getHandlingContent,
+                    AlarmVideo::getFalseAlarm, AlarmVideo::getSitePhoto, AlarmVideo::getPortNum)
+                    .in(AlarmVideo::getCompanyId, companyIdList)
+                    .like(StringUtils.isNotBlank(companyName), AlarmVideo::getCompanyName, companyName)
+                    .eq(handlingStatus != null, AlarmVideo::getHandlingStatus, handlingStatus)
+                    .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmVideo::getAlarmTime, startDate, endDate);
+            total = this.count(queryWrapperOne);
+            queryWrapperOne.orderByDesc(AlarmVideo::getId);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize);
+                queryWrapperOne.last("limit " + startFate + "," + pageSize);
+            }
+            list = this.list(queryWrapperOne);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setAlarmTypeName(OnlineMethod.alarmName(list.get(i).getAlarmType()));
+                    list.get(i).setReportContent(list.get(i).getDeviceName() + ",端口号:" + OnlineMethod.alarmName(list.get(i).getPortNum()));
+                }
+            }
+        }
+        return new CommonPage<>(list, total, pageSize, pageNum);
+    }
+
+
+    @Override
+    public Integer videoCount(List<Integer> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate) {
+        LambdaQueryWrapper<AlarmVideo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.in(AlarmVideo::getCompanyId, companyIdList)
+                .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate), AlarmVideo::getAlarmTime, startDate, endDate)
+                .like(StringUtils.isNotBlank(companyName), AlarmVideo::getCompanyName, companyName)
+                .eq(handlingStatus != null, AlarmVideo::getHandlingStatus, handlingStatus);
+        int total = this.count(queryWrapper);
+        return total;
+    }
+
+
+    @Override
+    public void updateAlarmVideo(AlarmVideo alarmVideo) {
+        if (alarmVideo.getId() == 0) {
+            LambdaQueryWrapper<AlarmVideo> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.eq(AlarmVideo::getAlarmType, alarmVideo.getAlarmType())
+                    .eq(AlarmVideo::getDeviceCode, alarmVideo.getDeviceCode());
+            List<AlarmVideo> list = this.list(queryWrapper);
+            if (CollectionUtils.isNotEmpty(list)) {
+                for (int i = 0; i < list.size(); i++) {
+                    list.get(i).setHandler(SecurityUtils.getUsername());
+                    list.get(i).setHandlingTime(LocalDateTime.now());
+                    list.get(i).setHandlingStatus(1);
+                    list.get(i).setHandlingContent(alarmVideo.getHandlingContent());
+                    list.get(i).setHandlerPhone("未定义");
+                    list.get(i).setFalseAlarm(alarmVideo.getFalseAlarm());
+                    this.updateById(list.get(i));
+                }
+            }
+        } else {
+            alarmVideo.setHandler(SecurityUtils.getUsername());
+            alarmVideo.setHandlingTime(LocalDateTime.now());
+            alarmVideo.setHandlingStatus(1);
+            alarmVideo.setHandlerPhone("未定义");
+            this.updateById(alarmVideo);
+        }
+    }
 }

+ 108 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java

@@ -16,6 +16,113 @@ import java.util.*;
 
 public class OnlineMethod {
 
+
+    public static String alarmName(String alarmType) {
+        String alarmName = alarmType;
+        switch (alarmType) {
+            case "2":
+                alarmName = "火警";
+                break;
+            case "4":
+                alarmName = "故障";
+                break;
+            case "16":
+                alarmName = "监管";
+                break;
+            case "EF0":
+                alarmName = "正常/报警撤销";
+                break;
+            case "EF1":
+                alarmName = "欠压报警";
+                break;
+            case "EF2":
+                alarmName = "过压报警";
+                break;
+            case "EF3":
+                alarmName = "过流报警";
+                break;
+            case "EF4":
+                alarmName = "漏电报警";
+                break;
+            case "EF5":
+                alarmName = "温度1超高报警";
+                break;
+            case "EF6":
+                alarmName = "温度2超高报警";
+                break;
+            case "EF7":
+                alarmName = "温度3超高报警";
+                break;
+            case "EF8":
+                alarmName = "温度4超高报警";
+                break;
+            case "EF9":
+            case "WP4":
+                alarmName = "离线";
+                break;
+            case "WP0":
+            case "LL0":
+                alarmName = "正常";
+                break;
+            case "WP1":
+                alarmName = "低压";
+                break;
+            case "WP2":
+                alarmName = "高压";
+                break;
+            case "WP3":
+            case "LL3":
+                alarmName = "故障";
+                break;
+            case "LL1":
+                alarmName = "低水位";
+                break;
+            case "LL2":
+                alarmName = "高湿度";
+                break;
+        }
+        return alarmName;
+    }
+
+
+    public static String company(String alarmType) {
+        String company = "";
+        switch (alarmType) {
+            case "EF0":
+            case "EF9":
+                company = "";
+                break;
+            case "EF1":
+            case "EF2":
+                company = "V";
+                break;
+            case "EF3":
+            case "EF4":
+                company = "mA";
+                break;
+            case "EF5":
+            case "EF6":
+            case "EF7":
+            case "EF8":
+                company = "℃";
+                break;
+            case "WP0":
+            case "WP1":
+            case "WP2":
+            case "WP3":
+            case "WP4":
+                company = "MPa";
+                break;
+            case "LL0":
+            case "LL1":
+            case "LL2":
+            case "LL3":
+                company = "m";
+                break;
+        }
+        return company;
+    }
+
     /**
      * 占比率计算
      *
@@ -27,7 +134,7 @@ public class OnlineMethod {
         String baifenbi = "";// 接受百分比的值
         if (y == 0 && z == 0) {
             baifenbi = "0.00%";
-        }else {
+        } else {
             double baiy = y * 1.0;
             double baiz = z * 1.0;
             double fen = baiy / baiz;

+ 43 - 37
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/AlarmFireVo.java

@@ -8,7 +8,6 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
-import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -43,6 +42,49 @@ public class AlarmFireVo implements Serializable {
     @Excel(name = "设备编号")
     private String deviceCode;
 
+    /**
+     * 单位名称
+     */
+    @Excel(name = "单位名称")
+    private String companyName;
+
+
+    /**
+     * 告警时间
+     */
+    @Excel(name = "报告时间")
+    private String alarmTime;
+
+    /**
+     * 报告数据
+     */
+    @Excel(name = "报告数据")
+    private String alarmTypeName;
+
+    /**
+     * 报告内容
+     */
+    @Excel(name = "报告内容")
+    private String conten;
+
+    /**
+     * 处理状态(0、未处理 1、已处理)
+     */
+    @Excel(name = "处理状态(0、未处理 1、已处理)")
+    private Integer handlingStatus;
+
+    /**
+     * 处理人
+     */
+    @Excel(name = "处理人")
+    private String handler;
+
+    /**
+     * 处理时间
+     */
+    @Excel(name = "处理时间")
+    private String handlingTime;
+
     /**
      * 设备名称
      */
@@ -51,15 +93,8 @@ public class AlarmFireVo implements Serializable {
     /**
      * 告警类型(2 火警、4 故障、16 监管等)
      */
-    @Excel(name = "报告数据", readConverterExp = "2=火警,4=故障,16=监管")
     private String alarmType;
 
-    /**
-     * 告警时间
-     */
-    @Excel(name = "告警时间")
-    private String alarmTime;
-
     /**
      * 上报地址
      */
@@ -85,12 +120,6 @@ public class AlarmFireVo implements Serializable {
      */
     private Integer companyId;
 
-    /**
-     * 单位名称
-     */
-    @Excel(name = "单位名称")
-    private String companyName;
-
     /**
      * 原始告警类型
      */
@@ -131,18 +160,6 @@ public class AlarmFireVo implements Serializable {
      */
     private Integer ptNum;
 
-    /**
-     * 处理人
-     */
-    @Excel(name = "处理人")
-    private String handler;
-
-    /**
-     * 处理时间
-     */
-    @Excel(name = "处理时间")
-    private String handlingTime;
-
     /**
      * 处理内容
      */
@@ -153,12 +170,6 @@ public class AlarmFireVo implements Serializable {
      */
     private String handlerPhone;
 
-    /**
-     * 处理状态(0、未处理 1、已处理)
-     */
-    @Excel(name = "处理状态", readConverterExp = "0=未处理,1=已处理")
-    private Integer handlingStatus;
-
     /**
      * 是否误报(0、非误报 1、误报)
      */
@@ -169,9 +180,4 @@ public class AlarmFireVo implements Serializable {
      */
     private String sitePhoto;
 
-    /**
-     * 报告内容
-     */
-    @Excel(name = "报告内容")
-    private String conten;
 }

+ 150 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/AlarmHiddenDangerVo.java

@@ -0,0 +1,150 @@
+package com.usky.fire.service.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 电气火灾隐患告警
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class AlarmHiddenDangerVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 告警类型
+     */
+    private String alarmType;
+
+    /**
+     * 告警时间
+     */
+    private LocalDateTime alarmTime;
+
+    /**
+     * 上报地址
+     */
+    private String address;
+
+    /**
+     * 告警状态
+     */
+    private String alarmStatus;
+
+    /**
+     * 系统类型
+     */
+    private Integer systemType;
+
+    /**
+     * 端口号
+     */
+    private String portNum;
+
+    /**
+     * 单位ID
+     */
+    private Integer companyId;
+
+    /**
+     * 单位名称
+     */
+    private String companyName;
+
+    /**
+     * 属性值1
+     */
+    private String attributeValue1;
+
+    /**
+     * 属性值2
+     */
+    private String attributeValue2;
+
+    /**
+     * 属性值3
+     */
+    private String attributeValue3;
+
+    /**
+     * 属性值4
+     */
+    private String attributeValue4;
+
+    /**
+     * 处理人
+     */
+    private String handler;
+
+    /**
+     * 处理时间
+     */
+    private LocalDateTime handlingTime;
+
+    /**
+     * 处理内容
+     */
+    private String handlingContent;
+
+    /**
+     * 处理人电话
+     */
+    private String handlerPhone;
+
+    /**
+     * 处理状态(0、未处理 1、已处理)
+     */
+    private Integer handlingStatus;
+
+    /**
+     * 是否误报(0、非误报 1、误报)
+     */
+    private Integer falseAlarm;
+
+    /**
+     * 现场照片
+     */
+    private String sitePhoto;
+
+    /**
+     * 报告内容
+     */
+    @TableField(exist = false)
+    private String reportContent;
+
+    /**
+     * 告警类型名称
+     */
+    @TableField(exist = false)
+    private String alarmTypeName;
+
+
+}

+ 1 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/PatrolInspectionRecordExportVo.java

@@ -8,7 +8,6 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
-import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -23,7 +22,7 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 public class PatrolInspectionRecordExportVo implements Serializable {
 
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      * 巡检记录表主键ID
@@ -145,5 +144,4 @@ public class PatrolInspectionRecordExportVo implements Serializable {
     private String creator;
 
 
-
 }

+ 5 - 8
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/PatrolInspectionSiteExportVo.java

@@ -1,18 +1,15 @@
 package com.usky.fire.service.vo;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.ruoyi.common.core.annotation.Excel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
-import java.time.LocalDateTime;
 
 /**
  * <p>
- * 
+ *
  * </p>
  *
  * @author JCB
@@ -49,25 +46,25 @@ public class PatrolInspectionSiteExportVo implements Serializable {
     /**
      * 经度
      */
-    @Excel(name = "经度",  width = 20)
+    @Excel(name = "经度", width = 20)
     private String longitude;
 
     /**
      * 纬度
      */
-    @Excel(name = "纬度",  width = 20)
+    @Excel(name = "纬度", width = 20)
     private String latitude;
 
     /**
      * 图片地址
      */
-    @Excel(name = "图片地址",  width = 50)
+    @Excel(name = "图片地址", width = 50)
     private String pictureUrl;
 
     /**
      * 创建时间
      */
-    @Excel(name = "创建时间",  width = 20)
+    @Excel(name = "创建时间", width = 20)
     private String createTime;
 
 }

+ 22 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/AlarmElectricalFireMapper.xml

@@ -28,4 +28,26 @@
         <result column="site_photo" property="sitePhoto" />
     </resultMap>
 
+    <select id="selectElectricalFireStatistical" resultType="com.usky.fire.service.vo.AlarmFireStatisticalVo">
+        SELECT
+        DATE_FORMAT(alarm_time, "%Y-%m-%d") AS alarmTime,
+        count(*) AS `count`,
+        sum(handling_status) AS `sum`
+        FROM
+        ${table}
+        <where>
+            <if test="companyIdList != null and companyIdList.size() > 0">
+                AND company_id in
+                <foreach item="item" collection="companyIdList" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="startDate != null and startDate != '' and startDate != null and startDate != ''">
+                and  alarm_time BETWEEN  #{startDate} AND  #{endDate}
+            </if>
+        </where>
+        GROUP BY
+        alarmTime
+    </select>
+
 </mapper>