Forráskód Böngészése

事件管理-火警告警处置/隐患报警处理-火灾报警处置/故障告警处置 告警相关接口开发

jichaobo 2 éve
szülő
commit
12dd251868

+ 3 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/MybatisGeneratorUtils.java

@@ -52,12 +52,12 @@ public class MybatisGeneratorUtils {
         // 3、包配置
         PackageConfig pc = new PackageConfig();
         pc.setParent("com.usky.fire");
-        pc.setController("controller.web");
+//        pc.setController("controller.web");
         pc.setEntity("domain");
         pc.setMapper("mapper");
         pc.setService("service");
         pc.setServiceImpl("service.impl");
-//        pc.setXml("mapper.demo");
+        pc.setXml("mapper.demo");
         //pc.setModuleName("test");
         mpg.setPackageInfo(pc);
 
@@ -71,7 +71,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("base_device");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("alarm_fire");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

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

@@ -1,20 +1,24 @@
 package com.usky.fire.controller.web;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.util.HttpUtils;
+import com.usky.common.influx.core.InfluxDbUtils;
+import com.usky.common.log.annotation.Log;
 import com.usky.common.log.enums.BusinessType;
 import com.usky.fire.domain.AlarmDetector;
 import com.usky.fire.service.AlarmDetectorService;
 import com.usky.fire.service.vo.AlarmDetectorVo;
-import com.usky.common.log.annotation.Log;
+import org.influxdb.dto.QueryResult;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -33,6 +37,9 @@ public class AlarmDetectorController {
     @Autowired
     private AlarmDetectorService alarmDetectorService;
 
+    @Autowired
+    private InfluxDbUtils influxDbUtils;
+
     /**
      * 事件管理-隐患管理-自动喷水灭火系统-列表查询
      *
@@ -117,8 +124,8 @@ public class AlarmDetectorController {
         util.exportExcel(response, list, exportTitle, exportTitle);
     }
 
-//    @GetMapping("getData")
-//    public Object getData(){
+    @GetMapping("getData")
+    public Object getData() throws IOException {
 //        Request request = Request.Post("http://172.16.120.69:8086/query?db=USKTSDB&u=root&p=root");
 //        String body = "q=SELECT * FROM sp_d00000320040040&epoch=s";
 //        request.bodyString(body,ContentType.APPLICATION_FORM_URLENCODED);
@@ -130,11 +137,30 @@ public class AlarmDetectorController {
 //            String html = EntityUtils.toString(httpResponse.getEntity());
 //            System.out.println(html);
 //        }
-//        String url = "http://172.16.120.69:8086/query?db=USKTSDB&u=root&p=root";
-//        String body = "q=SELECT * FROM sp_d00000320040040&epoch=s";
-//        HttpUtils.postForm(url, body,);
-//        return ApiResult.success();
-//    }
+        String url = "http://172.16.120.69:8086/query?db=USKTSDB&u=root&p=root";
+        Map<String, String> map = new HashMap<>();
+        map.put("User-Agent", "Apipost client Runtime/+https://www.apipost.cn/");
+        map.put("Content-Type", "application/x-www-form-urlencoded");
+        JSONObject object = new JSONObject();
+        object.put("q", "SELECT * FROM sp_d00000320040040 order by time desc");
+        object.put("epoch", "s");
+        String res = HttpUtils.postForm(url, object, map);
+//        JSONObject jsonObject = JSONObject.parseObject(res);
+//        JSONArray result = jsonObject.getJSONArray(jsonObject.get("result").toString());
+//        result.stream().forEach(jo -> {
+//
+//        });
+        System.out.println(res);
+        return res;
+    }
+
+
+    @GetMapping("select")
+    public QueryResult select(){
+        String command="SELECT * FROM sp_d868474049166828 WHERE time > now() - 7d order by time desc";
+        QueryResult query = influxDbUtils.query(command);
+        return query;
+    }
 
 
 }

+ 14 - 11
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmFireController.java

@@ -9,7 +9,6 @@ import com.usky.common.log.enums.BusinessType;
 import com.usky.fire.domain.AlarmFire;
 import com.usky.fire.service.AlarmFireService;
 import com.usky.fire.service.vo.AlarmFireVo;
-import com.usky.fire.service.vo.PatrolInspectionSiteExportVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -32,29 +31,31 @@ public class AlarmFireController {
     private AlarmFireService alarmFireService;
 
     /**
-     * 事件管理-/火警告警处置/故障告警处置/隐患报警处理-火灾报警处置/-列表查询
+     * 事件管理-火警告警处置/隐患报警处理-火灾报警处置/故障告警处置-列表查询
      *
+     * @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       每页条数
-     * @param alarmType      告警类型(2 火警、4 故障、16 监管等)
+     * @param alarmType      告警类型(2 火警、4 故障、16 监管、100 火警隐患等)
      * @return
      */
     @GetMapping("alarmFireLowerList")
-    public ApiResult<CommonPage<AlarmFireVo>> alarmFireLowerList(@RequestParam(value = "handlingStatus", required = false) Integer handlingStatus,
+    public ApiResult<CommonPage<AlarmFireVo>> alarmFireLowerList(@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 = "pageNum", required = false, defaultValue = "1") Integer pageNum,
                                                                  @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
-        return ApiResult.success(alarmFireService.alarmFireLowerList(handlingStatus, startDate, endDate, pageNum, pageSize, alarmType));
+        return ApiResult.success(alarmFireService.alarmFireLowerList(companyName, handlingStatus, startDate, endDate, pageNum, pageSize, alarmType));
     }
 
 
     /**
-     * 事件管理-/火警告警处置/故障告警处置/隐患报警处理-火灾报警处置/-左侧数据统计
+     * 事件管理-火警告警处置/隐患报警处理-火灾报警处置/故障告警处置-左侧数据统计
      *
      * @param alarmType 告警类型(2 火警、4 故障、16 监管等)
      * @return
@@ -66,9 +67,9 @@ public class AlarmFireController {
 
 
     /**
-     * 事件管理-/火警告警处置/故障告警处置/隐患报警处理-火灾报警处置/-数据统计图
+     * 事件管理-火警告警处置/隐患报警处理-火灾报警处置/故障告警处置-数据统计图
      *
-     * @param alarmType 告警类型(2 火警、4 故障、16 监管等)
+     * @param alarmType 告警类型(2 火警、4 故障、16 监管、100火警隐患等)
      * @param startDate 开始时间  格式:yyyy-MM-dd HH:mm:ss
      * @param endDate   结束时间  格式:yyyy-MM-dd HH:mm:ss
      * @return
@@ -82,7 +83,7 @@ public class AlarmFireController {
 
 
     /**
-     * 事件管理-/火警告警处置/故障告警处置/隐患报警处理-火灾报警处置/-告警处理
+     * 事件管理-火警告警处置/隐患报警处理-火灾报警处置/故障告警处置-告警处理
      *
      * @param alarmFire
      * @return
@@ -96,9 +97,10 @@ public class AlarmFireController {
 
 
     /**
-     * 事件管理-/火警告警处置/故障告警处置/隐患报警处理-火灾报警处置/-导出
+     * 事件管理-/火警告警处置/隐患报警处理-火灾报警处置/故障告警处置-导出
      *
      * @param response
+     * @param companyName    单位名称
      * @param handlingStatus 处理状态(0、未处理 1、已处理)
      * @param alarmType      告警类型(2 火警、4 故障、16 监管等)
      * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
@@ -108,12 +110,13 @@ public class AlarmFireController {
      */
     @GetMapping("alarmFireLowerListExport")
     public void export(HttpServletResponse response,
+                       @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") String exportTitle) throws IOException {
-        List<AlarmFireVo> list = alarmFireService.alarmFireLowerListExport(handlingStatus, startDate, endDate, alarmType);
+        List<AlarmFireVo> list = alarmFireService.alarmFireLowerListExport(companyName, handlingStatus, startDate, endDate, alarmType);
         ExcelUtil<AlarmFireVo> util = new ExcelUtil<AlarmFireVo>(AlarmFireVo.class);
         util.exportExcel(response, list, exportTitle, exportTitle);
     }

+ 39 - 18
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmFire.java

@@ -6,23 +6,24 @@ import java.time.LocalDateTime;
 import java.io.Serializable;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
 
 /**
  * <p>
- * 火灾报警系统报警信息表
+ * 
  * </p>
  *
  * @author JCB
- * @since 2022-07-29
+ * @since 2022-08-18
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
 public class AlarmFire implements Serializable {
 
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
+    /**
+     * 主键
+     */
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
@@ -32,9 +33,14 @@ public class AlarmFire implements Serializable {
     private String deviceCode;
 
     /**
-     * 告警类型(2 火警、4 故障、16 监管等)
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 告警类型(2 火警、4 故障、16 监管等)
      */
-    private Integer alarmType;
+    private String alarmType;
 
     /**
      * 告警时间
@@ -52,34 +58,49 @@ public class AlarmFire implements Serializable {
     private String alarmStatus;
 
     /**
-     * 原始告警类型
+     * 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
      */
-    private String originalType;
+    private Integer systemType;
 
     /**
-     * 告警名称
+     * 端口号
      */
-    private String alarmName;
+    private String portNum;
 
     /**
-     * 原始点位地址
+     * 单位ID
      */
-    private String originalPoint;
+    private Integer companyId;
 
     /**
-     * 点位类型(0 通用设备、1 火灾报警控制器、10 可燃气体探测器、11 点型可燃气体探测器等)
+     * 单位名称
      */
-    private Integer pointType;
+    private String companyName;
+
+    /**
+     * 原始告警类型
+     */
+    private String attributeValue1;
+
+    /**
+     * 告警名称
+     */
+    private String attributeValue2;
+
+    /**
+     * 原始点位地址
+     */
+    private String attributeValue3;
 
     /**
      * 点位描述
      */
-    private String pointDescribe;
+    private String attributeValue4;
 
     /**
-     * 端口号
+     * 点位类型(0 通用设备、1 火灾报警控制器、10 可燃气体探测器、11 点型可燃气体探测器等)
      */
-    private Integer portNum;
+    private Integer pointType;
 
     /**
      * 主机号

+ 4 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/AlarmFireMapper.java

@@ -1,5 +1,6 @@
 package com.usky.fire.mapper;
 
+import com.usky.fire.domain.AlarmFire;
 import com.usky.common.mybatis.core.CrudMapper;
 import com.usky.fire.domain.AlarmFire;
 import com.usky.fire.service.vo.AlarmFireStatisticalVo;
@@ -14,13 +15,13 @@ import java.util.List;
  * </p>
  *
  * @author JCB
- * @since 2022-07-29
+ * @since 2022-08-18
  */
 @Repository
 public interface AlarmFireMapper extends CrudMapper<AlarmFire> {
 
-    List<AlarmFireStatisticalVo> selectAlarmFireStatistical(@Param("deviceList") List<String> deviceList,
-                                                            @Param("alarmTypeList") List<Integer> alarmTypeList,
+    List<AlarmFireStatisticalVo> selectAlarmFireStatistical(@Param("companyIdList") List<Integer> companyIdList,
+                                                            @Param("alarmTypeList") List<String> alarmTypeList,
                                                             @Param("startDate") String startDate,
                                                             @Param("endDate") String endDate,
                                                             @Param("selectStatus") Integer selectStatus);

+ 30 - 9
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmFireService.java

@@ -14,12 +14,12 @@ import java.util.Map;
  * </p>
  *
  * @author JCB
- * @since 2022-07-29
+ * @since 2022-08-18
  */
 public interface AlarmFireService extends CrudService<AlarmFire> {
 
-    CommonPage<AlarmFireVo> alarmFireLowerList(Integer handlingStatus, String startDate, String endDate,
-                                               Integer pageNum, Integer pageSize,String alarmType);
+    CommonPage<AlarmFireVo> alarmFireLowerList(String companyName, Integer handlingStatus, String startDate, String endDate,
+                                               Integer pageNum, Integer pageSize, String alarmType);
 
     Map<String, Object> fireStatistics(String alarmType);
 
@@ -27,10 +27,31 @@ public interface AlarmFireService extends CrudService<AlarmFire> {
 
     void updateAlarmFire(AlarmFire alarmFire);
 
-    List<AlarmFireVo> alarmFireLowerListExport(Integer handlingStatus, String startDate, String endDate, String alarmType);
-
-    Integer fireCount(List<String> deviceCodeList, Integer handlingStatus,List<Integer> alarmTypeList);
-
-    CommonPage<AlarmFire> alarmFireList(List<String> deviceCodeList, Integer handlingStatus, String startDate,
-                                        String endDate, Integer pageNum, Integer pageSize,List<Integer> alarmTypeList);
+    List<AlarmFireVo> alarmFireLowerListExport(String companyName, Integer handlingStatus, String startDate, String endDate, String alarmType);
+
+    /**
+     * 火警告警处置/故障告警处置-数量统计
+     *
+     * @param companyIdList  单位ID
+     * @param handlingStatus 处理状态(0、未处理 1、已处理)
+     * @param alarmTypeList  告警类型(2 火警、4 故障、16 监管等)
+     * @return
+     */
+    Integer fireCount(List<Integer> companyIdList, Integer handlingStatus, List<String> alarmTypeList);
+
+    /**
+     * 火警告警处置/故障告警处置-列表数据查询
+     *
+     * @param companyIdList  单位ID
+     * @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       每页条数
+     * @param alarmTypeList  告警类型(2 火警、4 故障、16 监管等、100隐患)
+     * @return
+     */
+    CommonPage<AlarmFire> alarmFireList(List<Integer> companyIdList, String companyName, Integer handlingStatus, String startDate,
+                                        String endDate, Integer pageNum, Integer pageSize, List<String> alarmTypeList);
 }

+ 122 - 116
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmFireServiceImpl.java

@@ -1,6 +1,8 @@
 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;
@@ -16,28 +18,31 @@ import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
- * 火灾报警系统报警信息表 服务实现类
+ * 服务实现类
  * </p>
  *
  * @author JCB
- * @since 2022-07-29
+ * @since 2022-08-18
  */
 @Service
 public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, AlarmFire> implements AlarmFireService {
 
     @Override
-    public CommonPage<AlarmFireVo> alarmFireLowerList(Integer handlingStatus, String startDate, String endDate,
+    public CommonPage<AlarmFireVo> alarmFireLowerList(String companyName, Integer handlingStatus, String startDate, String endDate,
                                                       Integer pageNum, Integer pageSize, String alarmType) {
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        List<Integer> alarmTypeList = new ArrayList<>();
-        if (alarmType != null && !"".equals(alarmType)) {
+        List<String> alarmTypeList = new ArrayList<>();
+        if (StringUtils.isNotBlank(alarmType)) {
             String[] alarmTypeArray = alarmType.split(",");
             for (int i = 0; i < alarmTypeArray.length; i++) {
-                alarmTypeList.add(Integer.parseInt(alarmTypeArray[i]));
+                alarmTypeList.add(alarmTypeArray[i]);
             }
         }
         String userType = null;
@@ -45,39 +50,38 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
         if (loginUser != null && !"".equals(loginUser)) {
             userType = loginUser.getUserType();
         }
-        //缺少维保单位部分代码
-        List<String> devcieCodeList = new ArrayList<>();
-        CommonPage<AlarmFire> alarmFireList = this.alarmFireList(devcieCodeList, handlingStatus, startDate, endDate, pageNum, pageSize, alarmTypeList);
+        //缺少单位ID部分代码
+        List<Integer> companyIdList = new ArrayList<>();
+        CommonPage<AlarmFire> alarmFireList = this.alarmFireList(companyIdList, companyName, handlingStatus, startDate, endDate, pageNum, pageSize, alarmTypeList);
         List<AlarmFireVo> list = new ArrayList<>();
         for (int i = 0; i < alarmFireList.getRecords().size(); i++) {
             AlarmFireVo alarmFireVo = new AlarmFireVo();
             alarmFireVo.setId(alarmFireList.getRecords().get(i).getId());
             alarmFireVo.setDeviceCode(alarmFireList.getRecords().get(i).getDeviceCode());
-            alarmFireVo.setAlarmType(alarmFireList.getRecords().get(i).getAlarmType());
+            alarmFireVo.setCompanyName(alarmFireList.getRecords().get(i).getCompanyName());
+            alarmFireVo.setCompanyId(alarmFireList.getRecords().get(i).getCompanyId());
             alarmFireVo.setAlarmTime(df.format(alarmFireList.getRecords().get(i).getAlarmTime()));
-            alarmFireVo.setAddress(alarmFireList.getRecords().get(i).getAddress());
-            alarmFireVo.setAlarmStatus(alarmFireList.getRecords().get(i).getAlarmStatus());
-            alarmFireVo.setOriginalType(alarmFireList.getRecords().get(i).getOriginalType());
-            alarmFireVo.setAlarmName(alarmFireList.getRecords().get(i).getAlarmName());
-            alarmFireVo.setOriginalPoint(alarmFireList.getRecords().get(i).getOriginalPoint());
-            alarmFireVo.setPointType(alarmFireList.getRecords().get(i).getPointType());
-            alarmFireVo.setPointDescribe(alarmFireList.getRecords().get(i).getPointDescribe());
-            alarmFireVo.setPortNum(alarmFireList.getRecords().get(i).getPortNum());
-            alarmFireVo.setHostNum(alarmFireList.getRecords().get(i).getHostNum());
-            alarmFireVo.setLoopNum(alarmFireList.getRecords().get(i).getLoopNum());
-            alarmFireVo.setPtNum(alarmFireList.getRecords().get(i).getPtNum());
+            alarmFireVo.setAlarmType(alarmFireList.getRecords().get(i).getAlarmType());
+            alarmFireVo.setConten(alarmFireList.getRecords().get(i).getDeviceName() + "," + alarmFireList.getRecords().get(i).getAttributeValue4());
+            alarmFireVo.setHandlingStatus(alarmFireList.getRecords().get(i).getHandlingStatus());
             alarmFireVo.setHandler(alarmFireList.getRecords().get(i).getHandler());
-            if (alarmFireList.getRecords().get(i).getHandlingTime()!=null){
+            if (alarmFireList.getRecords().get(i).getHandlingTime() != null) {
                 alarmFireVo.setHandlingTime(df.format(alarmFireList.getRecords().get(i).getHandlingTime()));
-            }else {
+            } else {
                 alarmFireVo.setHandlingTime(null);
             }
-            alarmFireVo.setHandlingContent(alarmFireList.getRecords().get(i).getHandlingContent());
-            alarmFireVo.setHandlerPhone(alarmFireList.getRecords().get(i).getHandlerPhone());
-            alarmFireVo.setHandlingStatus(alarmFireList.getRecords().get(i).getHandlingStatus());
             alarmFireVo.setFalseAlarm(alarmFireList.getRecords().get(i).getFalseAlarm());
+            alarmFireVo.setHandlingContent(alarmFireList.getRecords().get(i).getHandlingContent());
             alarmFireVo.setSitePhoto(alarmFireList.getRecords().get(i).getSitePhoto());
-            alarmFireVo.setCompanyName("未定义单位表");
+            alarmFireVo.setPortNum(alarmFireList.getRecords().get(i).getPortNum());
+            alarmFireVo.setHostNum(alarmFireList.getRecords().get(i).getHostNum());
+            alarmFireVo.setLoopNum(alarmFireList.getRecords().get(i).getLoopNum());
+            alarmFireVo.setPtNum(alarmFireList.getRecords().get(i).getPtNum());
+//            alarmFireVo.setSystemType(alarmFireList.getRecords().get(i).getSystemType());
+//            alarmFireVo.setAddress(alarmFireList.getRecords().get(i).getAddress());
+//            alarmFireVo.setAlarmStatus(alarmFireList.getRecords().get(i).getAlarmStatus());
+//            alarmFireVo.setPointType(alarmFireList.getRecords().get(i).getPointType());
+//            alarmFireVo.setHandlerPhone(alarmFireList.getRecords().get(i).getHandlerPhone());
             list.add(alarmFireVo);
         }
         return new CommonPage<>(list, alarmFireList.getTotal(), pageSize, pageNum);
@@ -86,12 +90,11 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
 
     @Override
     public Map<String, Object> fireStatistics(String alarmType) {
-
-        List<Integer> alarmTypeList = new ArrayList<>();
-        if (alarmType != null && !"".equals(alarmType)) {
+        List<String> alarmTypeList = new ArrayList<>();
+        if (StringUtils.isNotBlank(alarmType)) {
             String[] alarmTypeArray = alarmType.split(",");
             for (int i = 0; i < alarmTypeArray.length; i++) {
-                alarmTypeList.add(Integer.parseInt(alarmTypeArray[i]));
+                alarmTypeList.add(alarmTypeArray[i]);
             }
         }
 
@@ -101,10 +104,10 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
             userType = loginUser.getUserType();
         }
         //缺少维保单位部分代码
-        List<String> devcieCodeList = new ArrayList<>();
+        List<Integer> companyIdList = new ArrayList<>();
 
-        int untreated = this.fireCount(devcieCodeList, 0, alarmTypeList);
-        int processed = this.fireCount(devcieCodeList, 1, alarmTypeList);
+        int untreated = this.fireCount(companyIdList, 0, alarmTypeList);
+        int processed = this.fireCount(companyIdList, 1, alarmTypeList);
 //        String disposalRate =  processed / (untreated + processed) + "%";
         Integer count = untreated + processed;
         String disposalRate = OnlineMethod.myPercent(processed, count);
@@ -125,11 +128,11 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
 
     @Override
     public Map<String, Object> fireStatisticalChart(String alarmType, String startDate, String endDate) {
-        List<Integer> alarmTypeList = new ArrayList<>();
-        if (alarmType != null && !"".equals(alarmType)) {
+        List<String> alarmTypeList = new ArrayList<>();
+        if (StringUtils.isNotBlank(alarmType)) {
             String[] alarmTypeArray = alarmType.split(",");
             for (int i = 0; i < alarmTypeArray.length; i++) {
-                alarmTypeList.add(Integer.parseInt(alarmTypeArray[i]));
+                alarmTypeList.add(alarmTypeArray[i]);
             }
         }
 
@@ -139,17 +142,17 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
             userType = loginUser.getUserType();
         }
         //缺少维保单位部分代码
-        List<String> devcieCodeList = new ArrayList<>();
-        List<Integer> alarmTypeListOne = new ArrayList<>();
+        List<Integer> companyIdList = new ArrayList<>();
+        List<String> alarmTypeListOne = new ArrayList<>();
         Integer selectStatus = 0;
-        if (alarmTypeList.contains(100)){
+        if (alarmTypeList.contains("100")) {
             selectStatus = 1;
-            alarmTypeListOne.add(2);
-            alarmTypeListOne.add(4);
-        }else {
+            alarmTypeListOne.add("2");
+            alarmTypeListOne.add("4");
+        } else {
             alarmTypeListOne = alarmTypeList;
         }
-        List<AlarmFireStatisticalVo> list = baseMapper.selectAlarmFireStatistical(devcieCodeList, alarmTypeListOne, startDate, endDate,selectStatus);
+        List<AlarmFireStatisticalVo> list = baseMapper.selectAlarmFireStatistical(companyIdList, alarmTypeListOne, startDate, endDate, selectStatus);
         List<Integer> alarmCountList = new ArrayList<>();
         List<Integer> handleCountList = new ArrayList<>();
         List<String> alarmTimeList = new ArrayList<>();
@@ -171,22 +174,44 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
 
     @Override
     public void updateAlarmFire(AlarmFire alarmFire) {
-        alarmFire.setHandler(SecurityUtils.getUsername());
-        alarmFire.setHandlingTime(LocalDateTime.now());
-        alarmFire.setHandlingStatus(1);
-        this.updateById(alarmFire);
+        if (alarmFire.getId() == 0) {
+            LambdaQueryWrapper<AlarmFire> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.select(AlarmFire::getId)
+                    .eq(AlarmFire::getDeviceCode, alarmFire.getDeviceCode())
+                    .eq(AlarmFire::getAlarmType, alarmFire.getAlarmType())
+                    .eq(AlarmFire::getHostNum, alarmFire.getHostNum())
+                    .eq(AlarmFire::getLoopNum, alarmFire.getLoopNum())
+                    .eq(AlarmFire::getPtNum, alarmFire.getPtNum())
+                    .eq(AlarmFire::getPortNum, alarmFire.getPortNum());
+            List<AlarmFire> 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(alarmFire.getHandlingContent());
+                    list.get(i).setHandlerPhone("未定义");
+                    list.get(i).setFalseAlarm(alarmFire.getFalseAlarm());
+                    this.updateById(list.get(i));
+                }
+            }
+        } else {
+            alarmFire.setHandler(SecurityUtils.getUsername());
+            alarmFire.setHandlingTime(LocalDateTime.now());
+            alarmFire.setHandlingStatus(1);
+            this.updateById(alarmFire);
+        }
     }
 
 
-
     @Override
-    public List<AlarmFireVo> alarmFireLowerListExport(Integer handlingStatus, String startDate, String endDate, String alarmType) {
+    public List<AlarmFireVo> alarmFireLowerListExport(String companyName, Integer handlingStatus, String startDate, String endDate, String alarmType) {
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        List<Integer> alarmTypeList = new ArrayList<>();
-        if (alarmType != null && !"".equals(alarmType)) {
+        List<String> alarmTypeList = new ArrayList<>();
+        if (StringUtils.isNotBlank(alarmType)) {
             String[] alarmTypeArray = alarmType.split(",");
             for (int i = 0; i < alarmTypeArray.length; i++) {
-                alarmTypeList.add(Integer.parseInt(alarmTypeArray[i]));
+                alarmTypeList.add(alarmTypeArray[i]);
             }
         }
         String userType = null;
@@ -194,70 +219,59 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
         if (loginUser != null && !"".equals(loginUser)) {
             userType = loginUser.getUserType();
         }
-        //缺少维保单位部分代码
-        List<String> devcieCodeList = new ArrayList<>();
-        CommonPage<AlarmFire> alarmFireList = this.alarmFireList(devcieCodeList, handlingStatus, startDate, endDate, 0, 0, alarmTypeList);
+        //缺少单位ID部分代码
+        List<Integer> companyIdList = new ArrayList<>();
+        CommonPage<AlarmFire> alarmFireList = this.alarmFireList(companyIdList, companyName, handlingStatus, startDate, endDate, 0, 0, alarmTypeList);
         List<AlarmFireVo> list = new ArrayList<>();
         for (int i = 0; i < alarmFireList.getRecords().size(); i++) {
             AlarmFireVo alarmFireVo = new AlarmFireVo();
-            alarmFireVo.setXh(i + 1);
             alarmFireVo.setId(alarmFireList.getRecords().get(i).getId());
             alarmFireVo.setDeviceCode(alarmFireList.getRecords().get(i).getDeviceCode());
-            alarmFireVo.setAlarmType(alarmFireList.getRecords().get(i).getAlarmType());
+            alarmFireVo.setCompanyName(alarmFireList.getRecords().get(i).getCompanyName());
+            alarmFireVo.setCompanyId(alarmFireList.getRecords().get(i).getCompanyId());
             alarmFireVo.setAlarmTime(df.format(alarmFireList.getRecords().get(i).getAlarmTime()));
-            alarmFireVo.setAddress(alarmFireList.getRecords().get(i).getAddress());
-            alarmFireVo.setAlarmStatus(alarmFireList.getRecords().get(i).getAlarmStatus());
-            alarmFireVo.setOriginalType(alarmFireList.getRecords().get(i).getOriginalType());
-            alarmFireVo.setAlarmName(alarmFireList.getRecords().get(i).getAlarmName());
-            alarmFireVo.setOriginalPoint(alarmFireList.getRecords().get(i).getOriginalPoint());
-            alarmFireVo.setPointType(alarmFireList.getRecords().get(i).getPointType());
-            alarmFireVo.setPointDescribe(alarmFireList.getRecords().get(i).getPointDescribe());
-            alarmFireVo.setPortNum(alarmFireList.getRecords().get(i).getPortNum());
-            alarmFireVo.setHostNum(alarmFireList.getRecords().get(i).getHostNum());
-            alarmFireVo.setLoopNum(alarmFireList.getRecords().get(i).getLoopNum());
-            alarmFireVo.setPtNum(alarmFireList.getRecords().get(i).getPtNum());
+            alarmFireVo.setAlarmType(alarmFireList.getRecords().get(i).getAlarmType());
+            alarmFireVo.setConten(alarmFireList.getRecords().get(i).getDeviceName() + "," + alarmFireList.getRecords().get(i).getAttributeValue4());
+            alarmFireVo.setHandlingStatus(alarmFireList.getRecords().get(i).getHandlingStatus());
             alarmFireVo.setHandler(alarmFireList.getRecords().get(i).getHandler());
-            if (alarmFireList.getRecords().get(i).getHandlingTime()!=null){
+            if (alarmFireList.getRecords().get(i).getHandlingTime() != null) {
                 alarmFireVo.setHandlingTime(df.format(alarmFireList.getRecords().get(i).getHandlingTime()));
-            }else {
+            } else {
                 alarmFireVo.setHandlingTime(null);
             }
-            alarmFireVo.setHandlingContent(alarmFireList.getRecords().get(i).getHandlingContent());
-            alarmFireVo.setHandlerPhone(alarmFireList.getRecords().get(i).getHandlerPhone());
-            alarmFireVo.setHandlingStatus(alarmFireList.getRecords().get(i).getHandlingStatus());
             alarmFireVo.setFalseAlarm(alarmFireList.getRecords().get(i).getFalseAlarm());
-            alarmFireVo.setSitePhoto(alarmFireList.getRecords().get(i).getSitePhoto());
-            alarmFireVo.setCompanyName("未定义单位表");
+            alarmFireVo.setHandlingContent(alarmFireList.getRecords().get(i).getHandlingContent());
+//            alarmFireVo.setSystemType(alarmFireList.getRecords().get(i).getSystemType());
+//            alarmFireVo.setAddress(alarmFireList.getRecords().get(i).getAddress());
+//            alarmFireVo.setAlarmStatus(alarmFireList.getRecords().get(i).getAlarmStatus());
+//            alarmFireVo.setPointType(alarmFireList.getRecords().get(i).getPointType());
+//            alarmFireVo.setPortNum(alarmFireList.getRecords().get(i).getPortNum());
+//            alarmFireVo.setHostNum(alarmFireList.getRecords().get(i).getHostNum());
+//            alarmFireVo.setLoopNum(alarmFireList.getRecords().get(i).getLoopNum());
+//            alarmFireVo.setPtNum(alarmFireList.getRecords().get(i).getPtNum());
+//            alarmFireVo.setHandlerPhone(alarmFireList.getRecords().get(i).getHandlerPhone());
+//            alarmFireVo.setSitePhoto(alarmFireList.getRecords().get(i).getSitePhoto());
             list.add(alarmFireVo);
         }
         return list;
     }
 
-
-    /**
-     * 火警告警处置/故障告警处置-数量统计
-     *
-     * @param deviceCodeList 设备编号
-     * @param handlingStatus 处理状态(0、未处理 1、已处理)
-     * @param alarmTypeList  告警类型(2 火警、4 故障、16 监管等)
-     * @return
-     */
     @Override
-    public Integer fireCount(List<String> deviceCodeList, Integer handlingStatus, List<Integer> alarmTypeList) {
+    public Integer fireCount(List<Integer> companyIdList, Integer handlingStatus, List<String> alarmTypeList) {
         LambdaQueryWrapper<AlarmFire> queryWrapper = Wrappers.lambdaQuery();
-        if (deviceCodeList.size() > 0) {
-            queryWrapper.in(AlarmFire::getDeviceCode, deviceCodeList);
+        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<Integer> alarmTypeList1 = new ArrayList<>();
-                alarmTypeList1.add(2);
-                alarmTypeList1.add(4);
+            if (alarmTypeList.contains("100")) {
+                List<String> alarmTypeList1 = new ArrayList<>();
+                alarmTypeList1.add("2");
+                alarmTypeList1.add("4");
                 queryWrapper.notIn(AlarmFire::getAlarmType, alarmTypeList1);
-            }else {
+            } else {
                 queryWrapper.in(AlarmFire::getAlarmType, alarmTypeList);
             }
         }
@@ -265,41 +279,33 @@ public class AlarmFireServiceImpl extends AbstractCrudService<AlarmFireMapper, A
         return total;
     }
 
-    /**
-     * 火警告警处置/故障告警处置-列表数据查询
-     *
-     * @param deviceCodeList 设备编号
-     * @param handlingStatus 处理状态(0、未处理 1、已处理)
-     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
-     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
-     * @param pageNum        当前页
-     * @param pageSize       每页条数
-     * @param alarmTypeList  告警类型(2 火警、4 故障、16 监管等、100隐患)
-     * @return
-     */
+
     @Override
-    public CommonPage<AlarmFire> alarmFireList(List<String> deviceCodeList, Integer handlingStatus, String startDate,
-                                               String endDate, Integer pageNum, Integer pageSize, List<Integer> alarmTypeList) {
+    public CommonPage<AlarmFire> alarmFireList(List<Integer> companyIdList, String companyName, Integer handlingStatus, String startDate,
+                                               String endDate, Integer pageNum, Integer pageSize, List<String> alarmTypeList) {
         LambdaQueryWrapper<AlarmFire> queryWrapper = Wrappers.lambdaQuery();
-        if (deviceCodeList.size() > 0) {
-            queryWrapper.in(AlarmFire::getDeviceCode, deviceCodeList);
+        if (companyIdList.size() > 0) {
+            queryWrapper.in(AlarmFire::getCompanyId, companyIdList);
+        }
+        if (StringUtils.isNotBlank(companyName)) {
+            queryWrapper.like(AlarmFire::getCompanyName, companyName);
         }
         if (handlingStatus != null) {
             queryWrapper.eq(AlarmFire::getHandlingStatus, handlingStatus);
         }
 
         if (alarmTypeList.size() > 0) {
-            if (alarmTypeList.contains(100)){
-                List<Integer> alarmTypeList1 = new ArrayList<>();
-                alarmTypeList1.add(2);
-                alarmTypeList1.add(4);
+            if (alarmTypeList.contains("100")) {
+                List<String> alarmTypeList1 = new ArrayList<>();
+                alarmTypeList1.add("2");
+                alarmTypeList1.add("4");
                 queryWrapper.notIn(AlarmFire::getAlarmType, alarmTypeList1);
-            }else {
+            } else {
                 queryWrapper.in(AlarmFire::getAlarmType, alarmTypeList);
             }
         }
 
-        if (startDate != null && !"".equals(startDate) && endDate != null && !"".equals(endDate)) {
+        if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
             queryWrapper.between(AlarmFire::getAlarmTime, startDate, endDate);
         }
         int total = this.count(queryWrapper);

+ 10 - 6
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java

@@ -25,13 +25,17 @@ public class OnlineMethod {
      */
     public static String myPercent(int y, int z) {
         String baifenbi = "";// 接受百分比的值
-        double baiy = y * 1.0;
-        double baiz = z * 1.0;
-        double fen = baiy / baiz;
-        DecimalFormat df1 = new DecimalFormat("##.00%");
-        baifenbi = df1.format(fen);
-        if (baifenbi.equals(".00%")){
+        if (y == 0 && z == 0) {
             baifenbi = "0.00%";
+        }else {
+            double baiy = y * 1.0;
+            double baiz = z * 1.0;
+            double fen = baiy / baiz;
+            DecimalFormat df1 = new DecimalFormat("##.00%");
+            baifenbi = df1.format(fen);
+            if (baifenbi.equals(".00%")) {
+                baifenbi = "0.00%";
+            }
         }
         return baifenbi;
     }

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

@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -23,7 +24,9 @@ import java.io.Serializable;
 public class AlarmFireVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
-
+    /**
+     * 主键
+     */
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
@@ -33,6 +36,7 @@ public class AlarmFireVo implements Serializable {
     @Excel(name = "序号")
     private Integer xh;
 
+
     /**
      * 设备编号
      */
@@ -40,9 +44,15 @@ public class AlarmFireVo implements Serializable {
     private String deviceCode;
 
     /**
-     * 告警类型(2 火警、4 故障、16 监管等)
+     * 设备名称
      */
-    private Integer alarmType;
+    private String deviceName;
+
+    /**
+     * 告警类型(2 火警、4 故障、16 监管等)
+     */
+    @Excel(name = "报告数据", readConverterExp = "2=火警,4=故障,16=监管")
+    private String alarmType;
 
     /**
      * 告警时间
@@ -53,7 +63,6 @@ public class AlarmFireVo implements Serializable {
     /**
      * 上报地址
      */
-    @Excel(name = "报告内容")
     private String address;
 
     /**
@@ -62,35 +71,50 @@ public class AlarmFireVo implements Serializable {
     private String alarmStatus;
 
     /**
-     * 原始告警类型
+     * 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
      */
-    private String originalType;
+    private Integer systemType;
 
     /**
-     * 告警名称
+     * 端口号
      */
-    @Excel(name = "报告数据")
-    private String alarmName;
+    private String portNum;
 
     /**
-     * 原始点位地址
+     * 单位ID
      */
-    private String originalPoint;
+    private Integer companyId;
 
     /**
-     * 点位类型(0 通用设备、1 火灾报警控制器、10 可燃气体探测器、11 点型可燃气体探测器等)
+     * 单位名称
      */
-    private Integer pointType;
+    @Excel(name = "单位名称")
+    private String companyName;
+
+    /**
+     * 原始告警类型
+     */
+    private String attributeValue1;
+
+    /**
+     * 告警名称
+     */
+    private String attributeValue2;
+
+    /**
+     * 原始点位地址
+     */
+    private String attributeValue3;
 
     /**
      * 点位描述
      */
-    private String pointDescribe;
+    private String attributeValue4;
 
     /**
-     * 端口号
+     * 点位类型(0 通用设备、1 火灾报警控制器、10 可燃气体探测器、11 点型可燃气体探测器等)
      */
-    private Integer portNum;
+    private Integer pointType;
 
     /**
      * 主机号
@@ -146,10 +170,8 @@ public class AlarmFireVo implements Serializable {
     private String sitePhoto;
 
     /**
-     * 单位名称
+     * 报告内容
      */
-    @Excel(name = "单位名称")
-    private String companyName;
-
-
+    @Excel(name = "报告内容")
+    private String conten;
 }

+ 13 - 9
service-fire/service-fire-biz/src/main/resources/mapper/fire/AlarmFireMapper.xml

@@ -6,16 +6,20 @@
     <resultMap id="BaseResultMap" type="com.usky.fire.domain.AlarmFire">
         <id column="id" property="id" />
         <result column="device_code" property="deviceCode" />
+        <result column="device_name" property="deviceName" />
         <result column="alarm_type" property="alarmType" />
         <result column="alarm_time" property="alarmTime" />
         <result column="address" property="address" />
         <result column="alarm_status" property="alarmStatus" />
-        <result column="original_type" property="originalType" />
-        <result column="alarm_name" property="alarmName" />
-        <result column="original_point" property="originalPoint" />
-        <result column="point_type" property="pointType" />
-        <result column="point_describe" property="pointDescribe" />
+        <result column="system_type" property="systemType" />
         <result column="port_num" property="portNum" />
+        <result column="company_id" property="companyId" />
+        <result column="company_name" property="companyName" />
+        <result column="attribute_value1" property="attributeValue1" />
+        <result column="attribute_value2" property="attributeValue2" />
+        <result column="attribute_value3" property="attributeValue3" />
+        <result column="attribute_value4" property="attributeValue4" />
+        <result column="point_type" property="pointType" />
         <result column="host_num" property="hostNum" />
         <result column="loop_num" property="loopNum" />
         <result column="pt_num" property="ptNum" />
@@ -35,10 +39,10 @@
         FROM
         alarm_fire
         <where>
-            <if test="deviceList != null and deviceList.size() > 0">
-                AND device_code in
-                <foreach item="item" collection="deviceList" open="(" separator="," close=")">
-                    #{item.deviceCode}
+            <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 != ''">