Browse Source

新增设备管理接口和督察单定时任务

james 2 years ago
parent
commit
acb31529a3
31 changed files with 902 additions and 55 deletions
  1. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/MybatisGeneratorUtils.java
  2. 8 7
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DataRtController.java
  3. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemFireInspectController.java
  4. 21 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemInspectListController.java
  5. 2 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemPoliceInfoController.java
  6. 9 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/TaskController.java
  7. 14 8
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/UnitBeOnDutyController.java
  8. 101 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/DemInspectList.java
  9. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/DemInspectListMapper.java
  10. 13 3
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DataRtService.java
  11. 22 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemInspectListService.java
  12. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemMicroStationService.java
  13. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemOnDutyService.java
  14. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemPoliceInfoService.java
  15. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemVehicleService.java
  16. 10 4
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/enums/TopListener.java
  17. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseCompanyServiceImpl.java
  18. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseDeviceServiceImpl.java
  19. 2 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseUserCompanyServiceImpl.java
  20. 154 14
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DataRtServiceImpl.java
  21. 2 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemFireInspectServiceImpl.java
  22. 92 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemInspectListServiceImpl.java
  23. 2 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemMicroStationServiceImpl.java
  24. 3 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemOnDutyServiceImpl.java
  25. 2 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemPoliceInfoServiceImpl.java
  26. 3 2
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemVehicleServiceImpl.java
  27. 19 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/listener/MqttListener.java
  28. 324 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/mqtt/info/Info.java
  29. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/po/FireStatisticsPO.java
  30. 50 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/DataRtVo.java
  31. 24 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/DemInspectListMapper.xml

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

@@ -71,7 +71,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("base_build");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("dem_inspect_list");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 8 - 7
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DataRtController.java

@@ -7,6 +7,7 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.fire.domain.DataRt;
 import com.usky.fire.service.DataRtService;
 import com.usky.fire.service.vo.RealTimeStatus;
+import com.usky.fire.service.vo.DataRtVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -34,15 +35,15 @@ public class DataRtController {
      *
      * @param deviceCode 设备编号
      * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     * @param pageNum    当前页
-     * @param pageSize   每页条数
+     * @param pageNum          当前页
+     * @param pageSize         每页条数
      * @return
      */
     @GetMapping("dataRtList")
-    public ApiResult<CommonPage<DataRt>> dataRtList(@RequestParam(value = "deviceCode", required = false) String deviceCode,
-                                                    @RequestParam(value = "systemType") Integer systemType,
-                                                    @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
-                                                    @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
+    public ApiResult<CommonPage<DataRtVo>> dataRtList(@RequestParam(value = "deviceCode", required = false) String deviceCode,
+                                          @RequestParam(value = "systemType") Integer systemType,
+                                          @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
+                                          @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
         return ApiResult.success(dataRtService.dataRtList(deviceCode, systemType, pageNum, pageSize));
     }
 
@@ -73,7 +74,7 @@ public class DataRtController {
      */
     @GetMapping("deviceInfoData")
     public ApiResult<RealTimeStatus> deviceInfoData(@RequestParam(value = "deviceCode") String deviceCode) {
-        return ApiResult.success(dataRtService.deviceInfoData(deviceCode));
+       return ApiResult.success(dataRtService.deviceInfoData(deviceCode));
     }
 
 

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

@@ -35,7 +35,7 @@ public class DemFireInspectController {
      * @return
      */
     @GetMapping("fireInspectList")
-    public ApiResult<CommonPage<DemFireInspect>> fireInspectList(@RequestParam(value = "companyId") String companyId,
+    public ApiResult<CommonPage<DemFireInspect>> fireInspectList(@RequestParam(value = "companyId", required = false) String companyId,
                                                                  @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
                                                                  @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
         return ApiResult.success(demFireInspectService.fireInspectList(companyId, pageNum, pageSize));

+ 21 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/DemInspectListController.java

@@ -0,0 +1,21 @@
+package com.usky.fire.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 督察单 前端控制器
+ * </p>
+ *
+ * @author ZYJ
+ * @since 2022-12-29
+ */
+@Controller
+@RequestMapping("/demInspectList")
+public class DemInspectListController {
+
+}
+

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

@@ -94,9 +94,10 @@ public class DemPoliceInfoController {
     public ApiResult<CommonPage<DemPoliceInfo>> page(@RequestParam(value = "startTime", required = false) String startTime,
                                                      @RequestParam(value = "endTime", required = false) String endTime,
                                                      @RequestParam(value = "streetTown", required = false) String streetTown,
+                                                     @RequestParam(value = "caseCode", required = false) String caseCode,
                                                      @RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
                                                      @RequestParam(value = "size", required = false, defaultValue = "10") Integer size) {
-        return ApiResult.success(demPoliceInfoService.page(current, size, startTime, endTime, streetTown));
+        return ApiResult.success(demPoliceInfoService.page(current, size, startTime, endTime, streetTown, caseCode));
     }
 
 

+ 9 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/TaskController.java

@@ -29,6 +29,9 @@ public class TaskController {
     @Autowired
     private BscLawTrendService bscLawTrendService;
 
+    @Autowired
+    private DemInspectListService demInspectListService;
+
     //    @Scheduled(cron = "0/5 * *  * * ?") // 间隔5秒执行
     @Scheduled(cron = "0 0/5 * * * ? ") // 间隔5分钟执行
     public void task() {
@@ -51,5 +54,11 @@ public class TaskController {
         bscLawTrendService.lawEnforcement();
     }
 
+    @Scheduled(cron = "0 0/30 * * * ? ") // 间隔30分钟执行
+    public void task3() {
+        System.out.println(Thread.currentThread().getName() + "电子督察单定时任务执行中");
+        demInspectListService.demInspectAutoTask();
+    }
+
 }
 

+ 14 - 8
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/UnitBeOnDutyController.java

@@ -43,36 +43,42 @@ public class UnitBeOnDutyController {
      *
      * @param startTime 开始时间
      * @param endTime   结束时间
+     * @param name      值班人员姓名
      * @return
      */
     @GetMapping("/list")
     public ApiResult<List<List<UnitBeOnDutyPO>>> list(@RequestParam(value = "startTime", required = false) String startTime,
-                                                      @RequestParam(value = "endTime", required = false) String endTime) {
-        return ApiResult.success(demOnDutyService.list(startTime, endTime));
+                                                      @RequestParam(value = "endTime", required = false) String endTime,
+                                                      @RequestParam(value = "name", required = false) String name) {
+        return ApiResult.success(demOnDutyService.list(startTime, endTime, name));
     }
 
     /**
-     * 消防救援站点-各站点执勤实力
+     * 消防救援站点-各站点执勤实力1
      *
      * @param current 当前页
      * @param size    每页条数
+     * @param stationName    消防站名称
      * @return
      */
     @GetMapping("/page")
     public ApiResult<CommonPage<DemMicroStation>> page(@RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
-                                                       @RequestParam(value = "size", required = false, defaultValue = "10") Integer size) {
-        return ApiResult.success(demMicroStationService.page(current, size));
+                                                       @RequestParam(value = "size", required = false, defaultValue = "10") Integer size,
+                                                       @RequestParam(value = "stationName", required = false) String stationName) {
+        return ApiResult.success(demMicroStationService.page(current, size, stationName));
     }
 
     /**
-     * 消防救援站点-各站点执勤实力
+     * 消防救援站点-各站点执勤实力2
      *
      * @param zdCode 所属消防机构
+     * @param licensePlate 车牌号码
      * @return
      */
     @GetMapping("vehiclelist")
-    public ApiResult<List<DemVehicle>> vehiclelist(@RequestParam String zdCode) {
-        return ApiResult.success(demVehicleService.list(zdCode));
+    public ApiResult<List<DemVehicle>> vehiclelist(@RequestParam(value = "zdCode",required = false) String zdCode,
+                                                   @RequestParam(value = "licensePlate",required = false) String licensePlate) {
+        return ApiResult.success(demVehicleService.list(zdCode, licensePlate));
     }
 
 }

+ 101 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/DemInspectList.java

@@ -0,0 +1,101 @@
+package com.usky.fire.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 督察单
+ * </p>
+ *
+ * @author ZYJ
+ * @since 2022-12-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DemInspectList implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 督察单编号
+     */
+    private String inspectCode;
+
+    /**
+     * 设备id
+     */
+    private String deviceId;
+
+    /**
+     * 告警id
+     */
+    private Integer alarmId;
+
+    /**
+     * 单位id
+     */
+    private String companyId;
+
+    /**
+     * 处理人
+     */
+    private String handler;
+
+    /**
+     * 处理时间
+     */
+    private LocalDateTime handlingTime;
+
+    /**
+     * 处理内容
+     */
+    private String handlingContent;
+
+    /**
+     * 处理人电话
+     */
+    private String handlerPhone;
+
+    /**
+     * 处理状态
+     */
+    private Integer handlingStatus;
+
+    /**
+     * 现场照片1
+     */
+    private String sitePhoto1;
+
+    /**
+     * 现场照片2
+     */
+    private String sitePhoto2;
+
+    /**
+     * 现场照片3
+     */
+    private String sitePhoto3;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+
+}

+ 16 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/DemInspectListMapper.java

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.DemInspectList;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 督察单 Mapper 接口
+ * </p>
+ *
+ * @author ZYJ
+ * @since 2022-12-29
+ */
+public interface DemInspectListMapper extends CrudMapper<DemInspectList> {
+
+}

+ 13 - 3
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DataRtService.java

@@ -4,6 +4,7 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.fire.domain.DataRt;
 import com.usky.fire.service.vo.RealTimeStatus;
+import com.usky.fire.service.vo.DataRtVo;
 
 import java.util.List;
 
@@ -22,11 +23,11 @@ public interface DataRtService extends CrudService<DataRt> {
      *
      * @param deviceCode 设备编号
      * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     * @param pageNum    当前页
-     * @param pageSize   每页条数
+     * @param pageNum          当前页
+     * @param pageSize         每页条数
      * @return
      */
-    CommonPage<DataRt> dataRtList(String deviceCode, Integer systemType, Integer pageNum, Integer pageSize);
+    CommonPage<DataRtVo> dataRtList(String deviceCode, Integer systemType, Integer pageNum, Integer pageSize);
 
     /**
      * 物联网实时数据-导出数据查询
@@ -45,6 +46,15 @@ public interface DataRtService extends CrudService<DataRt> {
      */
     List<DataRt> dataRt(String deviceCode);
 
+    /**
+     * 根据设备编号查询实时数据
+     *
+     * @param deviceCode 设备编号
+     * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @return
+     */
+    CommonPage<DataRt> dataValue(List<String> companyIdList, String deviceCode, Integer systemType, Integer pageNum, Integer pageSize);
+
     /**
      * 实时监控与工况-设备实时状态
      *

+ 22 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/DemInspectListService.java

@@ -0,0 +1,22 @@
+package com.usky.fire.service;
+
+import com.usky.fire.domain.DemInspectList;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 督察单 服务类
+ * </p>
+ *
+ * @author ZYJ
+ * @since 2022-12-28
+ */
+public interface DemInspectListService extends CrudService<DemInspectList> {
+
+
+    /**
+     * 定时任务-生成待处置和超时未处置的电子督察单
+     */
+    void demInspectAutoTask();
+
+}

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

@@ -56,5 +56,5 @@ public interface DemMicroStationService extends CrudService<DemMicroStation> {
 
     List<Object> synthesizePoliceSituationScatterer(String streetTown, String scattererType);
 
-    CommonPage<DemMicroStation> page(Integer current, Integer size);
+    CommonPage<DemMicroStation> page(Integer current, Integer size, String stationName);
 }

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

@@ -16,5 +16,5 @@ import java.util.List;
  */
 public interface DemOnDutyService extends CrudService<DemOnDuty> {
 
-    List<List<UnitBeOnDutyPO>> list(String startTime, String endTime);
+    List<List<UnitBeOnDutyPO>> list(String startTime, String endTime, String name);
 }

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

@@ -22,7 +22,7 @@ public interface DemPoliceInfoService extends CrudService<DemPoliceInfo> {
 
     List<AlertStatisticsVO> getAlertStatistics(String startTime, String endTime, String streetTown);
 
-    CommonPage<DemPoliceInfo> page(Integer current, Integer size, String startTime, String endTime, String streetTown);
+    CommonPage<DemPoliceInfo> page(Integer current, Integer size, String startTime, String endTime, String streetTown, String caseCode);
 
     Map<String, List<AlertStatisticsVO>> getAlertStatisticsByHouse(String startTime, String endTime, String streetTown);
 

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

@@ -44,5 +44,5 @@ public interface DemVehicleService extends CrudService<DemVehicle> {
 
     List<DemVehicle> vehicleList(List<String> vehicleIdList);
 
-    List<DemVehicle> list(String zdCode);
+    List<DemVehicle> list(String zdCode, String licensePlate);
 }

+ 10 - 4
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/enums/TopListener.java

@@ -27,13 +27,19 @@ public enum TopListener {
     FIRE_ALERT("fireAlarm","/usky/ytDP0001/+/+/alarm",1),
     WATER_INFO("waterInfo","/usky/ytDP0002/+/+/info",1),
     WATER_ALERT("waterAlert","/usky/ytDP0002/+/+/alarm",1),
-    LIQUID_INFO("waterAlert","/usky/ytDP0005/+/+/info",1),
+    SMOKE_INFO("smokeInfo","/usky/ytDP0003/+/+/info",1),
+    SMOKE_ALERT("smokeAlarm","/usky/ytDP0003/+/+/alarm",1),
+    LIQUID_INFO("waterInfo","/usky/ytDP0005/+/+/info",1),
     LIQUID_ALERT("waterAlert","/usky/ytDP0005/+/+/alarm",1),
-    RTU_INFO("waterAlert","/usky/ytDP0006/+/+/info",1),
+    RTU_INFO("rtuinfo","/usky/ytDP0006/+/+/info",1),
     RTU_ALERT("rtuAlert","/usky/ytDP0006/+/+/alarm",1),
+    ELECTRICAL_INFO("electricalInfo","/usky/ytDP0007/+/+/info",1),
+    ELECTRICAL_ALERT("electricalAlarm","/usky/ytDP0007/+/+/alarm",1),
+    MH_COVER_INFO("waterInfo","/usky/ytDP0008/+/+/info",1),
+    MH_COVER_ALERT("waterAlert","/usky/ytDP0008/+/+/alarm",1),
     VIDEO_ALERT("videoAlert","/usky/ytCamCore/+/+/alarm",1),
-    SMOKE_ALERT("smokeAlarm","/usky/ytDP0003/+/+/alarm",1),
-    ELECTRICAL_ALERT("electricalAlarm","/usky/ytDP0007/+/+/alarm",1);
+    LR_SMOKE_INFO("smokeInfo","/usky/ytDP00033/+/+/info",1),
+    LR_SMOKE_ALERT("smokeAlarm","/usky/ytDP00033/+/+/alarm",1);
 
 
 

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

@@ -69,7 +69,7 @@ public class BaseCompanyServiceImpl extends AbstractCrudService<BaseCompanyMappe
     @Override
     public List<BaseCompany> companySelect(List<String> companyIdList) {
         LambdaQueryWrapper<BaseCompany> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select(BaseCompany::getCompanyId, BaseCompany::getCompanyName)
+        queryWrapper.select(BaseCompany::getCompanyId, BaseCompany::getCompanyName,BaseCompany::getLinkPerson,BaseCompany::getLinkPhone)
                 .in(BaseCompany::getCompanyId, companyIdList)
                 .eq(BaseCompany::getEnable, 0)
                 .orderByDesc(BaseCompany::getId);

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

@@ -25,7 +25,7 @@ public class BaseDeviceServiceImpl extends AbstractCrudService<BaseDeviceMapper,
     public List<BaseDevice> deviceData(String deviceCode) {
         LambdaQueryWrapper<BaseDevice> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(BaseDevice::getDeviceCode, BaseDevice::getDeviceCode, BaseDevice::getInstallAddress,
-                BaseDevice::getDeviceType, BaseDevice::getDeviceName)
+                BaseDevice::getDeviceType, BaseDevice::getDeviceName, BaseDevice::getCompanyId)
                 .eq(BaseDevice::getEnable, 1)
                 .eq(BaseDevice::getDeviceCode, deviceCode);
         List<BaseDevice> list = this.list(queryWrapper);

+ 2 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseUserCompanyServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.common.security.utils.SecurityUtils;
+import com.usky.fire.domain.BaseDevice;
 import com.usky.fire.domain.BaseUserCompany;
 import com.usky.fire.mapper.BaseUserCompanyMapper;
 import com.usky.fire.service.BaseUserCompanyService;
@@ -26,6 +27,7 @@ public class BaseUserCompanyServiceImpl extends AbstractCrudService<BaseUserComp
 
     @Override
     public List<String> companyIdList() {
+        Long userId = SecurityUtils.getUserId();
         LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
         QueryWrapper.select(BaseUserCompany::getCompanyId)
                 .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());

+ 154 - 14
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DataRtServiceImpl.java

@@ -8,17 +8,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.util.StringUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
-import com.usky.fire.domain.BaseDevice;
-import com.usky.fire.domain.DataRt;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.fire.domain.*;
 import com.usky.fire.mapper.DataRtMapper;
 import com.usky.fire.service.BaseDeviceService;
 import com.usky.fire.service.BaseUserCompanyService;
+import com.usky.fire.service.BaseCompanyService;
 import com.usky.fire.service.DataRtService;
 import com.usky.fire.service.util.OnlineMethod;
+import com.usky.fire.service.vo.AlarmFireVo;
+import com.usky.fire.service.vo.DataRtVo;
 import com.usky.fire.service.vo.RealTimeStatus;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -38,26 +42,115 @@ public class DataRtServiceImpl extends AbstractCrudService<DataRtMapper, DataRt>
     @Autowired
     private BaseUserCompanyService baseUserCompanyService;
 
+    @Autowired
+    private BaseCompanyService baseCompanyService;
+
     @Autowired
     private BaseDeviceService baseDeviceService;
 
     @Override
-    public CommonPage<DataRt> dataRtList(String deviceCode, Integer systemType, Integer pageNum, Integer pageSize) {
-        List<String> companyIdList = baseUserCompanyService.companyIdList();
-        IPage<DataRt> page = new Page<>(pageNum, pageSize);
-        if (CollectionUtils.isNotEmpty(companyIdList)) {
-            LambdaQueryWrapper<DataRt> queryWrapper = Wrappers.lambdaQuery();
-            queryWrapper.like(StringUtils.isNotBlank(deviceCode), DataRt::getDeviceCode, deviceCode)
-                    .eq(DataRt::getSystemType, systemType)
-                    .in(DataRt::getCompanyId, companyIdList);
-            page = this.page(page, queryWrapper);
-            for (int i = 0; i < page.getRecords().size(); i++) {
-                page.getRecords().get(i).setDeviceTypeName(OnlineMethod.getDeviceTypeName(page.getRecords().get(i).getDeviceType()));
+    public CommonPage<DataRtVo> dataRtList(String deviceCode, Integer systemType, Integer pageNum, Integer pageSize){
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = baseUserCompanyService.list(QueryWrapper);
+        List<DataRtVo> list = new ArrayList<>();
+        CommonPage<DataRt> DataRtList = new CommonPage<>();
+        int count=0;
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            List<String> companyIdList = new ArrayList<>();
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+            DataRtList = this.dataValue(companyIdList, deviceCode, systemType, pageNum, pageSize);
+            if((systemType == 2)||(systemType == 3)){
+                List<Map<String, Object>> lt = new ArrayList<>();
+                for (int i = 0; i < DataRtList.getRecords().size(); i++) {
+                    Map<String, Object> map = new HashMap<String, Object>();
+                    map.put("portCode",DataRtList.getRecords().get(i).getPortCode());
+                    map.put("portName",DataRtList.getRecords().get(i).getPortName());
+                    map.put("portData",DataRtList.getRecords().get(i).getPortData());
+                    lt.add(map);
+                    if((i+1)%4==0){
+                        DataRtVo dataRtVo = new DataRtVo();
+                        List<BaseCompany> baseCompany = baseCompanyService.companySelect(companyIdList);
+                        if (CollectionUtils.isNotEmpty(baseCompany)){
+                            dataRtVo.setDeviceCode(DataRtList.getRecords().get(i).getDeviceCode());
+                            dataRtVo.setCompanyName(baseCompany.get(0).getCompanyName());
+                            dataRtVo.setLinkPerson(baseCompany.get(0).getLinkPerson());
+                            dataRtVo.setLinkPhone(baseCompany.get(0).getLinkPhone());
+                            List<Map<String, Object>> nlt= new ArrayList<>();
+                            nlt.addAll(lt);
+                            dataRtVo.setDataList(nlt);
+                            list.add(dataRtVo);
+                            lt.clear();
+                        }
+                        count++;
+                    }
+
+                }
+            } else if(systemType == 4){
+                List<Map<String, Object>> lt = new ArrayList<>();
+                for (int i = 0; i < DataRtList.getRecords().size(); i++) {
+                    Map<String, Object> map = new HashMap<String, Object>();
+                    map.put("portCode",DataRtList.getRecords().get(i).getPortCode());
+                    map.put("portName",DataRtList.getRecords().get(i).getPortName());
+                    map.put("portData",DataRtList.getRecords().get(i).getPortData());
+                    lt.add(map);
+                    if((i+1)%5==0){
+                        DataRtVo dataRtVo = new DataRtVo();
+                        List<BaseCompany> baseCompany = baseCompanyService.companySelect(companyIdList);
+                        if (CollectionUtils.isNotEmpty(baseCompany)){
+                            dataRtVo.setDeviceCode(DataRtList.getRecords().get(i).getDeviceCode());
+                            dataRtVo.setCompanyName(baseCompany.get(0).getCompanyName());
+                            dataRtVo.setLinkPerson(baseCompany.get(0).getLinkPerson());
+                            dataRtVo.setLinkPhone(baseCompany.get(0).getLinkPhone());
+                            List<Map<String, Object>> nlt= new ArrayList<>();
+                            nlt.addAll(lt);
+                            dataRtVo.setDataList(nlt);
+                            list.add(dataRtVo);
+                            lt.clear();
+                        }
+                        count++;
+                        lt.clear();
+                    }
+
+                }
+
+            } else if(systemType == 5){
+                List<Map<String, Object>> lt = new ArrayList<>();
+                for (int i = 0; i < DataRtList.getRecords().size(); i++) {
+                    Map<String, Object> map = new HashMap<String, Object>();
+                    map.put("portCode",DataRtList.getRecords().get(i).getPortCode());
+                    map.put("portName",DataRtList.getRecords().get(i).getPortName());
+                    map.put("portData",DataRtList.getRecords().get(i).getPortData());
+                    lt.add(map);
+                    if((i+1)%16==0){
+                        DataRtVo dataRtVo = new DataRtVo();
+                        List<BaseCompany> baseCompany = baseCompanyService.companySelect(companyIdList);
+                        if (CollectionUtils.isNotEmpty(baseCompany)){
+                            dataRtVo.setDeviceCode(DataRtList.getRecords().get(i-1).getDeviceCode());
+                            dataRtVo.setCompanyName(baseCompany.get(0).getCompanyName());
+                            dataRtVo.setLinkPerson(baseCompany.get(0).getLinkPerson());
+                            dataRtVo.setLinkPhone(baseCompany.get(0).getLinkPhone());
+                            List<Map<String, Object>> nlt= new ArrayList<>();
+                            nlt.addAll(lt);
+                            dataRtVo.setDataList(nlt);
+                            list.add(dataRtVo);
+                            lt.clear();
+                        }
+                        count++;
+                        lt.clear();
+                    }
+
+                }
+
             }
         }
-        return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
+        return new CommonPage<>(list, count, pageSize, pageNum);
     }
 
+
     @Override
     public List<DataRt> dataRtListOne(String deviceCode, Integer systemType) {
         List<String> companyIdList = baseUserCompanyService.companyIdList();
@@ -85,6 +178,53 @@ public class DataRtServiceImpl extends AbstractCrudService<DataRtMapper, DataRt>
         return list;
     }
 
+    @Override
+    public CommonPage<DataRt> dataValue(List<String> companyIdList, String deviceCode, Integer systemType, Integer pageNum, Integer pageSize){
+        LambdaQueryWrapper<DataRt> queryWrapper = Wrappers.lambdaQuery();
+        if (companyIdList.size() > 0) {
+            queryWrapper.in(DataRt::getCompanyId, companyIdList);
+        }
+        if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(deviceCode)) {
+            queryWrapper.like(DataRt::getDeviceCode, deviceCode);
+        }
+        if (systemType != null) {
+            queryWrapper.eq(DataRt::getSystemType, systemType);
+        }
+
+        int total = 0;
+        if(systemType == 2){
+            total = (this.count(queryWrapper))/4;
+            queryWrapper.orderByDesc(DataRt::getDeviceCode);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize*4);
+                queryWrapper.last("limit " + startFate + "," + pageSize*4);
+            }
+        } else if(systemType == 3){
+            total = (this.count(queryWrapper))/4;
+            queryWrapper.orderByDesc(DataRt::getDeviceCode);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize*4);
+                queryWrapper.last("limit " + startFate + "," + pageSize*4);
+            }
+        } else if(systemType == 4){
+            total = (this.count(queryWrapper))/5;
+            queryWrapper.orderByDesc(DataRt::getDeviceCode);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize*5);
+                queryWrapper.last("limit " + startFate + "," + pageSize*5);
+            }
+        } else if(systemType == 5){
+            total = (this.count(queryWrapper))/16;
+            queryWrapper.orderByDesc(DataRt::getDeviceCode);
+            if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
+                Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize*16);
+                queryWrapper.last("limit " + startFate + "," + pageSize*16);
+            }
+        }
+        List<DataRt> list = this.list(queryWrapper);
+        return new CommonPage<>(list, total, pageSize, pageNum);
+    }
+
     @Override
     public RealTimeStatus deviceInfoData(String deviceCode){
         RealTimeStatus realTimeStatus = new RealTimeStatus();

+ 2 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemFireInspectServiceImpl.java

@@ -3,6 +3,7 @@ package com.usky.fire.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
@@ -40,7 +41,7 @@ public class DemFireInspectServiceImpl extends AbstractCrudService<DemFireInspec
     public CommonPage<DemFireInspect> fireInspectList(String companyId, Integer pageNum, Integer pageSize) {
         IPage<DemFireInspect> page = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<DemFireInspect> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(DemFireInspect::getCompanyId, companyId)
+        queryWrapper.eq(StringUtils.isNotBlank(companyId), DemFireInspect::getCompanyId, companyId)
                 .orderByDesc(DemFireInspect::getId);
         page = this.page(page, queryWrapper);
         if (CollectionUtils.isNotEmpty(page.getRecords())) {

+ 92 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemInspectListServiceImpl.java

@@ -0,0 +1,92 @@
+package com.usky.fire.service.impl;
+
+import cn.hutool.core.date.DateUnit;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.fire.domain.AlarmFire;
+import com.usky.fire.domain.BaseUserCompany;
+import com.usky.fire.domain.BscEnterpriseAutonomy;
+import com.usky.fire.domain.DemInspectList;
+import com.usky.fire.mapper.DemInspectListMapper;
+import com.usky.fire.service.DemInspectListService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.usky.fire.service.*;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * <p>
+ * 督察单 服务实现类
+ * </p>
+ *
+ * @author ZYJ
+ * @since 2022-12-28
+ */
+@Service
+public class DemInspectListServiceImpl extends AbstractCrudService<DemInspectListMapper, DemInspectList> implements DemInspectListService {
+    @Autowired
+    private DemInspectListService demInspectListService;
+
+    @Autowired
+    private AlarmFireService alarmFireService;
+
+    @Transactional
+    @Override
+    //先判断处理状态为未处理的告警,然后再判断告警时间距离当前时间超过半小时
+    public void demInspectAutoTask() {
+        //未处置电子督察单
+        LambdaQueryWrapper<AlarmFire> QueryWrapper = Wrappers.lambdaQuery();
+        List<String> alarmTypeList = new ArrayList<>();
+        alarmTypeList.add("2");
+        alarmTypeList.add("4");
+        QueryWrapper.select(AlarmFire::getDeviceCode,AlarmFire::getId,AlarmFire::getCompanyId)
+                .in(AlarmFire::getAlarmType,alarmTypeList)
+                .eq(AlarmFire::getHandlingStatus, 0)
+                .lt(AlarmFire::getAlarmTime, LocalDateTime.now().minusMinutes(30).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        List<AlarmFire> list = alarmFireService.list(QueryWrapper);
+        if(CollectionUtils.isNotEmpty(list)){
+            for(int i=0;i<list.size();i++){
+                DemInspectList demInspectList = new DemInspectList();
+                UUID uuid = UUID.randomUUID();
+                String uuidStr = uuid.toString();
+                demInspectList.setInspectCode(uuidStr.replaceAll("-",""));
+                demInspectList.setDeviceId(list.get(i).getDeviceCode());
+                demInspectList.setAlarmId(list.get(i).getId());
+                demInspectList.setCompanyId(list.get(i).getCompanyId());
+                //2 待处置
+                demInspectList.setHandlingStatus(2);
+                demInspectList.setCreator("闵行消防支队");
+                demInspectList.setCreateTime(LocalDateTime.now());
+
+                this.save(demInspectList);
+
+            }
+        }
+
+        //超时未处置电子督察单
+        LambdaQueryWrapper<DemInspectList> QueryList = Wrappers.lambdaQuery();
+        QueryList.eq(DemInspectList::getHandlingStatus,2)
+                .lt(DemInspectList::getCreateTime,LocalDateTime.now().minusMinutes(30).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        List<DemInspectList> list1 = this.list(QueryList);
+        if(CollectionUtils.isNotEmpty(list1)){
+            for(int j=0;j<list1.size();j++){
+                //3 超时未处置
+                list1.get(j).setHandlingStatus(3);
+                this.updateById(list1.get(j));
+            }
+        }
+
+    }
+}

+ 2 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemMicroStationServiceImpl.java

@@ -160,10 +160,10 @@ public class DemMicroStationServiceImpl extends AbstractCrudService<DemMicroStat
     }
 
     @Override
-    public CommonPage<DemMicroStation> page(Integer current, Integer size) {
+    public CommonPage<DemMicroStation> page(Integer current, Integer size, String stationName) {
         IPage<DemMicroStation> page = new Page<>(current, size);
         LambdaQueryWrapper<DemMicroStation> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(DemMicroStation::getDeleteFlag,0)
+        queryWrapper.eq(StringUtils.isNotBlank(stationName), DemMicroStation::getStationName, stationName).eq(DemMicroStation::getDeleteFlag,0)
                 .orderByDesc(DemMicroStation::getId);
         page = this.page(page, queryWrapper);
         return new CommonPage<>(page.getRecords(), page.getTotal(), size, current);

+ 3 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemOnDutyServiceImpl.java

@@ -28,11 +28,12 @@ import java.util.stream.Collectors;
 public class DemOnDutyServiceImpl extends AbstractCrudService<DemOnDutyMapper, DemOnDuty> implements DemOnDutyService {
 
     @Override
-    public List<List<UnitBeOnDutyPO>> list(String startTime, String endTime) {
+    public List<List<UnitBeOnDutyPO>> list(String startTime, String endTime, String name) {
         List<List<UnitBeOnDutyPO>> lists = new ArrayList<>();
         List<UnitBeOnDutyPO> list = new ArrayList<>();
         LambdaQueryWrapper<DemOnDuty> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemOnDuty::getDutyTime, startTime, endTime);
+        queryWrapper.between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemOnDuty::getDutyTime, startTime, endTime)
+                .eq(StringUtils.isNotBlank(name),DemOnDuty::getPersonName,name);
         List<DemOnDuty> unitBeOnDutyLists = this.list(queryWrapper);
         unitBeOnDutyLists.forEach(stringStringMap -> list.add(enhanceUnitBeOnDutyPo(stringStringMap)));
         TreeMap<String, List<UnitBeOnDutyPO>> collect = list.stream().collect(Collectors.groupingBy(UnitBeOnDutyPO::getTime, TreeMap::new, Collectors.toList()));

+ 2 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemPoliceInfoServiceImpl.java

@@ -108,11 +108,12 @@ public class DemPoliceInfoServiceImpl extends AbstractCrudService<DemPoliceInfoM
     }
 
     @Override
-    public CommonPage<DemPoliceInfo> page(Integer current, Integer size, String startTime, String endTime, String streetTown) {
+    public CommonPage<DemPoliceInfo> page(Integer current, Integer size, String startTime, String endTime, String streetTown, String caseCode) {
         IPage<DemPoliceInfo> page = new Page<>(current, size);
         LambdaQueryWrapper<DemPoliceInfo> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemPoliceInfo::getCreateTime, startTime, endTime)
                 .eq(StringUtils.isNotBlank(streetTown), DemPoliceInfo::getStreetTown, streetTown)
+                .eq(StringUtils.isNotBlank(caseCode), DemPoliceInfo::getCaseCode, caseCode)
                 .orderByDesc(DemPoliceInfo::getCreateTime);
         page = this.page(page, queryWrapper);
         return this.ToCommonPage(page);

+ 3 - 2
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/DemVehicleServiceImpl.java

@@ -95,9 +95,10 @@ public class DemVehicleServiceImpl extends AbstractCrudService<DemVehicleMapper,
     }
 
     @Override
-    public List<DemVehicle> list(String zdCode) {
+    public List<DemVehicle> list(String zdCode, String licensePlate) {
         LambdaQueryWrapper<DemVehicle> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(DemVehicle::getFireOrga, zdCode);
+        queryWrapper.eq(StringUtils.isNotBlank(zdCode),DemVehicle::getFireOrga, zdCode)
+                    .eq(StringUtils.isNotBlank(licensePlate),DemVehicle::getLicensePlate, licensePlate);
         return this.list(queryWrapper);
     }
 

+ 19 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/listener/MqttListener.java

@@ -45,6 +45,14 @@ public class MqttListener {
             String[] code5 = TopListener.SMOKE_ALERT.getCode().split("/");
             String[] code6 = TopListener.ELECTRICAL_ALERT.getCode().split("/");
             String[] code7 = TopListener.LIQUID_ALERT.getCode().split("/");
+            String[] infoCode1 = TopListener.FIRE_INFO.getCode().split("/");
+            String[] infoCode2 = TopListener.WATER_INFO.getCode().split("/");
+            String[] infoCode3 = TopListener.SMOKE_INFO.getCode().split("/");
+            String[] infoCode4 = TopListener.LIQUID_INFO.getCode().split("/");
+            String[] infoCode5 = TopListener.RTU_INFO.getCode().split("/");
+            String[] infoCode6 = TopListener.ELECTRICAL_INFO.getCode().split("/");
+            String[] infoCode7 = TopListener.MH_COVER_INFO.getCode().split("/");
+            String[] infoCode8 = TopListener.LR_SMOKE_INFO.getCode().split("/");
             Object mqttReceivedTopic = message.getHeaders().get("mqtt_receivedTopic");
             if (null != mqttReceivedTopic) {
                 String topic = mqttReceivedTopic.toString();
@@ -80,7 +88,17 @@ public class MqttListener {
                         (topic.indexOf(code7[2]) != -1 && topic.indexOf(code7[5]) != -1)) {
                     mqttBaseVO.setDescribe("alarm");
                     mqttBaseVO.setData(payload);
-                } else {
+                }else if((topic.indexOf(infoCode1[2]) != -1 && topic.indexOf(infoCode1[5]) != -1) ||
+                        (topic.indexOf(infoCode2[2]) != -1 && topic.indexOf(infoCode2[5]) != -1) ||
+                        (topic.indexOf(infoCode3[2]) != -1 && topic.indexOf(infoCode3[5]) != -1) ||
+                        (topic.indexOf(infoCode4[2]) != -1 && topic.indexOf(infoCode4[5]) != -1) ||
+                        (topic.indexOf(infoCode5[2]) != -1 && topic.indexOf(infoCode5[5]) != -1) ||
+                        (topic.indexOf(infoCode6[2]) != -1 && topic.indexOf(infoCode6[5]) != -1) ||
+                        (topic.indexOf(infoCode7[2]) != -1 && topic.indexOf(infoCode7[5]) != -1) ||
+                        (topic.indexOf(infoCode8[2]) != -1 && topic.indexOf(infoCode8[5]) != -1)) {
+                    mqttBaseVO.setDescribe("info");
+                    mqttBaseVO.setData(payload);
+                }else {
                     mqttBaseVO.setDescribe("fireInfoAndAlarm");
                     mqttBaseVO.setData(payload);
                 }

+ 324 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/mqtt/info/Info.java

@@ -0,0 +1,324 @@
+package com.usky.fire.service.mqtt.info;
+
+import com.alibaba.fastjson.JSONObject;
+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.exception.BusinessException;
+import com.usky.common.core.util.JsonUtils;
+import com.usky.fire.domain.*;
+import com.usky.fire.service.*;
+import com.usky.fire.service.mqtt.MqttStrategy;
+import com.usky.fire.service.util.OnlineMethod;
+import com.usky.fire.service.vo.MqttBaseVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zyj
+ * @date 2022/12/6 15:07
+ */
+@Service("info")
+public class Info implements MqttStrategy {
+
+    @Autowired
+    private BaseDeviceService baseDeviceService;
+
+    @Autowired
+    private BaseDeviceAttributeService baseDeviceAttributeService;
+
+    @Autowired
+    private BaseCompanyService baseCompanyService;
+
+    @Autowired
+    private DataRtService dataRtService;
+
+    @Override
+    public String disposeMessage(MqttBaseVO mqttBaseVO) {
+        Map map = JsonUtils.fromJson(mqttBaseVO.getData().toString(), Map.class);
+        List<Map<String, Object>> devs = (List) JSONObject.parseArray(JSONObject.toJSONString(map.get("devs")));
+        List<Map<String, Object>> dp = (List) JSONObject.parseArray(JSONObject.toJSONString(devs.get(0).get("dp")));
+        LambdaQueryWrapper<BaseDevice> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.select(BaseDevice::getCompanyId, BaseDevice::getDeviceType)
+                .eq(BaseDevice::getDeviceCode, map.get("devId").toString())
+                .eq(BaseDevice::getEnable, 1);
+        List<BaseDevice> list = baseDeviceService.list(queryWrapper1);
+        List<BaseDeviceAttribute> list1 = new ArrayList<>();
+        List<BaseCompany> list2 = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            LambdaQueryWrapper<BaseDeviceAttribute> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.select(BaseDeviceAttribute::getSystemType)
+                    .eq(BaseDeviceAttribute::getDeviceCode, map.get("devId").toString());
+            list1 = baseDeviceAttributeService.list(queryWrapper);
+
+            LambdaQueryWrapper<BaseCompany> queryWrapper2 = Wrappers.lambdaQuery();
+            queryWrapper2.select(BaseCompany::getCompanyName).
+                    eq(BaseCompany::getCompanyId, list.get(0).getCompanyId());
+            list2 = baseCompanyService.list(queryWrapper2);
+        }
+
+        if (CollectionUtils.isNotEmpty(list) && CollectionUtils.isNotEmpty(list1) && CollectionUtils.isNotEmpty(devs) && CollectionUtils.isNotEmpty(dp)) {
+            DataRt dataRt = new DataRt();
+            String timestamp1;
+
+            switch (list1.get(0).getSystemType()) {
+                case 1:
+                    for(int i=0;i<dp.size();i++){
+                        dataRt.setDeviceCode(map.get("devId").toString());
+                        dataRt.setDeviceName(map.get("deviceName").toString());
+                        timestamp1 = map.get("timeStamp").toString();
+                        if (StringUtils.isNotBlank(timestamp1)) {
+                            long timestamp = Long.valueOf(timestamp1).longValue();
+                            LocalDateTime time2 = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.ofHours(8));
+                            dataRt.setDataTime(time2);
+                        }
+                        dataRt.setSystemType(1);
+                        dataRt.setCompanyId(list.get(0).getCompanyId());
+                        if (CollectionUtils.isNotEmpty(list2)) {
+                            dataRt.setCompanyName(list2.get(0).getCompanyName());
+                        }
+                        dataRt.setPorts(null);
+                        dataRt.setPortCode("");
+                        dataRt.setPortName("");
+                        dataRt.setPortData(dp.get(i).get("value").toString());
+                        dataRt.setDeviceType(list.get(0).getDeviceType());
+                        dataRt.setContent("");
+
+
+                        List<DataRt> list3 = new ArrayList<>();
+                        LambdaQueryWrapper<DataRt> queryWrapper3 = Wrappers.lambdaQuery();
+                        queryWrapper3.select(DataRt::getId).
+                                eq(DataRt::getDeviceCode, map.get("devId").toString());
+                        list3 = dataRtService.list(queryWrapper3);
+                        if (CollectionUtils.isNotEmpty(list3)){
+                            dataRt.setId(list3.get(0).getId());
+                            dataRtService.updateById(dataRt);
+                        }else{
+                            dataRtService.save(dataRt);
+                        }
+                    }
+                    break;
+                case 2:
+                    for(int i=0;i<dp.size();i++){
+                        dataRt.setDeviceCode(map.get("devId").toString());
+                        dataRt.setDeviceName(map.get("deviceName").toString());
+                        timestamp1 = map.get("timeStamp").toString();
+                        if (StringUtils.isNotBlank(timestamp1)) {
+                            long timestamp = Long.valueOf(timestamp1).longValue();
+                            LocalDateTime time2 = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.ofHours(8));
+                            dataRt.setDataTime(time2);
+                        }
+                        dataRt.setSystemType(2);
+                        dataRt.setCompanyId(list.get(0).getCompanyId());
+                        if (CollectionUtils.isNotEmpty(list2)) {
+                            dataRt.setCompanyName(list2.get(0).getCompanyName());
+                        }
+                        dataRt.setPorts(null);
+                        dataRt.setPortCode(dp.get(i).get("serial").toString());
+                        dataRt.setPortName(dp.get(i).get("property").toString());
+                        dataRt.setPortData(dp.get(i).get("value").toString());
+                        dataRt.setDeviceType(list.get(0).getDeviceType());
+                        dataRt.setContent("");
+
+                        List<DataRt> list3 = new ArrayList<>();
+                        LambdaQueryWrapper<DataRt> queryWrapper3 = Wrappers.lambdaQuery();
+                        queryWrapper3.select(DataRt::getId).
+                                eq(DataRt::getDeviceCode, map.get("devId").toString())
+                                .eq(DataRt::getPortCode, dp.get(i).get("serial").toString());
+                        list3 = dataRtService.list(queryWrapper3);
+                        if (CollectionUtils.isNotEmpty(list3)){
+                            dataRt.setId(list3.get(0).getId());
+                            dataRtService.updateById(dataRt);
+                        }else{
+                            dataRtService.save(dataRt);
+                        }
+                    }
+                    break;
+                case 3:
+                    for(int i=0;i<dp.size();i++){
+                        dataRt.setDeviceCode(map.get("devId").toString());
+                        dataRt.setDeviceName(map.get("deviceName").toString());
+                        timestamp1 = map.get("timeStamp").toString();
+                        if (StringUtils.isNotBlank(timestamp1)) {
+                            long timestamp = Long.valueOf(timestamp1).longValue();
+                            LocalDateTime time2 = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.ofHours(8));
+                            dataRt.setDataTime(time2);
+                        }
+                        dataRt.setSystemType(3);
+                        dataRt.setCompanyId(list.get(0).getCompanyId());
+                        if (CollectionUtils.isNotEmpty(list2)) {
+                            dataRt.setCompanyName(list2.get(0).getCompanyName());
+                        }
+                        dataRt.setPorts(null);
+                        dataRt.setPortCode(dp.get(i).get("serial").toString());
+                        dataRt.setPortName(dp.get(i).get("property").toString());
+                        dataRt.setPortData(dp.get(i).get("value").toString());
+                        dataRt.setDeviceType(list.get(0).getDeviceType());
+                        dataRt.setContent("");
+                        List<DataRt> list3 = new ArrayList<>();
+                        LambdaQueryWrapper<DataRt> queryWrapper3 = Wrappers.lambdaQuery();
+                        queryWrapper3.select(DataRt::getId).
+                                eq(DataRt::getDeviceCode, map.get("devId").toString())
+                                .eq(DataRt::getPortCode, dp.get(i).get("serial").toString());
+                        list3 = dataRtService.list(queryWrapper3);
+                        if (CollectionUtils.isNotEmpty(list3)){
+                            dataRt.setId(list3.get(0).getId());
+                            dataRtService.updateById(dataRt);
+                        }else{
+                            dataRtService.save(dataRt);
+                        }
+                    }
+                    break;
+                case 4:
+                    for(int i=0;i<dp.size();i++){
+                        dataRt.setDeviceCode(map.get("devId").toString());
+                        dataRt.setDeviceName(map.get("deviceName").toString());
+                        timestamp1 = map.get("timeStamp").toString();
+                        if (StringUtils.isNotBlank(timestamp1)) {
+                            long timestamp = Long.valueOf(timestamp1).longValue();
+                            LocalDateTime time2 = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.ofHours(8));
+                            dataRt.setDataTime(time2);
+                        }
+                        dataRt.setSystemType(4);
+                        dataRt.setCompanyId(list.get(0).getCompanyId());
+                        if (CollectionUtils.isNotEmpty(list2)) {
+                            dataRt.setCompanyName(list2.get(0).getCompanyName());
+                        }
+                        dataRt.setPorts(null);
+                        dataRt.setPortCode(dp.get(i).get("serial").toString());
+                        dataRt.setPortName(dp.get(i).get("property").toString());
+                        dataRt.setPortData(dp.get(i).get("value").toString());
+                        dataRt.setDeviceType(list.get(0).getDeviceType());
+                        dataRt.setContent("");
+                        List<DataRt> list3 = new ArrayList<>();
+                        LambdaQueryWrapper<DataRt> queryWrapper3 = Wrappers.lambdaQuery();
+                        queryWrapper3.select(DataRt::getId).
+                                eq(DataRt::getDeviceCode, map.get("devId").toString())
+                                .eq(DataRt::getPortCode, dp.get(i).get("serial").toString());
+                        list3 = dataRtService.list(queryWrapper3);
+                        if (CollectionUtils.isNotEmpty(list3)){
+                            dataRt.setId(list3.get(0).getId());
+                            dataRtService.updateById(dataRt);
+                        }else{
+                            dataRtService.save(dataRt);
+                        }
+                    }
+
+                    break;
+                case 5:
+                    for(int i=0;i<dp.size()+7;i++){
+                        dataRt.setDeviceCode(map.get("devId").toString());
+                        dataRt.setDeviceName(map.get("deviceName").toString());
+                        timestamp1 = map.get("timeStamp").toString();
+                        if (StringUtils.isNotBlank(timestamp1)) {
+                            long timestamp = Long.valueOf(timestamp1).longValue();
+                            LocalDateTime time2 = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.ofHours(8));
+                            dataRt.setDataTime(time2);
+                        }
+                        dataRt.setSystemType(5);
+                        dataRt.setCompanyId(list.get(0).getCompanyId());
+                        if (CollectionUtils.isNotEmpty(list2)) {
+                            dataRt.setCompanyName(list2.get(0).getCompanyName());
+                        }
+                        List<DataRt> list3 = new ArrayList<>();
+
+                        if(i>=0 && i<7){
+                            dataRt.setPorts(i+1);
+                            dataRt.setPortCode((i+1)+"");
+                            if(i==0){
+                                dataRt.setPortName("供电过压");
+                            }else if(i==1){
+                                dataRt.setPortName("供电低压");
+                            }else if(i==2){
+                                dataRt.setPortName("供电过流");
+                            }else if(i==3){
+                                dataRt.setPortName("漏电报警");
+                            }else if(i==4){
+                                dataRt.setPortName("A相线缆温度超高");
+                            }else if(i==5){
+                                dataRt.setPortName("B相线缆温度超高");
+                            }else if(i==6){
+                                dataRt.setPortName("C相线缆温度超高");
+                            }
+                            dataRt.setPortData("0");
+                           LambdaQueryWrapper<DataRt> queryWrapper3 = Wrappers.lambdaQuery();
+                            queryWrapper3.select(DataRt::getId).
+                                    eq(DataRt::getDeviceCode, map.get("devId").toString())
+                                    .eq(DataRt::getPortCode, String.valueOf(i+1));
+                            list3 = dataRtService.list(queryWrapper3);
+
+                        }else{
+                            dataRt.setPorts(Integer.parseInt(dp.get(i-7).get("serial").toString()));
+                            dataRt.setPortCode(dp.get(i-7).get("serial").toString());
+                            dataRt.setPortName(dp.get(i-7).get("property").toString());
+                            dataRt.setPortData(dp.get(i-7).get("value").toString());
+
+                            LambdaQueryWrapper<DataRt> queryWrapper3 = Wrappers.lambdaQuery();
+                            queryWrapper3.select(DataRt::getId).
+                                    eq(DataRt::getDeviceCode, map.get("devId").toString())
+                                    .eq(DataRt::getPortCode, dp.get(i-7).get("serial").toString());
+                            list3 = dataRtService.list(queryWrapper3);
+                        }
+                        dataRt.setDeviceType(list.get(0).getDeviceType());
+                        dataRt.setContent("");
+                        if (CollectionUtils.isNotEmpty(list3)){
+                            dataRt.setId(list3.get(0).getId());
+                            dataRtService.updateById(dataRt);
+                        }else{
+                            dataRtService.save(dataRt);
+                        }
+                    }
+
+                    break;
+                case 6:
+                    for(int i=0;i<dp.size();i++){
+                        dataRt.setDeviceCode(map.get("devId").toString());
+                        dataRt.setDeviceName(map.get("deviceName").toString());
+                        timestamp1 = map.get("timeStamp").toString();
+                        if (StringUtils.isNotBlank(timestamp1)) {
+                            long timestamp = Long.valueOf(timestamp1).longValue();
+                            LocalDateTime time2 = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.ofHours(8));
+                            dataRt.setDataTime(time2);
+                        }
+                        dataRt.setSystemType(6);
+                        dataRt.setCompanyId(list.get(0).getCompanyId());
+                        if (CollectionUtils.isNotEmpty(list2)) {
+                            dataRt.setCompanyName(list2.get(0).getCompanyName());
+                        }
+                        dataRt.setPorts(null);
+                        dataRt.setPortCode(dp.get(i).get("serial").toString());
+                        dataRt.setPortName(dp.get(i).get("property").toString());
+                        dataRt.setPortData(dp.get(i).get("value").toString());
+                        dataRt.setDeviceType(list.get(0).getDeviceType());
+                        dataRt.setContent("");
+                        List<DataRt> list3 = new ArrayList<>();
+                        LambdaQueryWrapper<DataRt> queryWrapper3 = Wrappers.lambdaQuery();
+                        queryWrapper3.select(DataRt::getId).
+                                eq(DataRt::getDeviceCode, map.get("devId").toString())
+                                .eq(DataRt::getPortCode, dp.get(i).get("serial").toString());
+                        list3 = dataRtService.list(queryWrapper3);
+                        if (CollectionUtils.isNotEmpty(list3)){
+                            dataRt.setId(list3.get(0).getId());
+                            dataRtService.updateById(dataRt);
+                        }else{
+                            dataRtService.save(dataRt);
+                        }
+                    }
+
+                    break;
+                default:
+                    throw new BusinessException("未定义类型");
+            }
+        }
+        return null;
+    }
+
+
+}

+ 1 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/po/FireStatisticsPO.java

@@ -54,7 +54,7 @@ public class FireStatisticsPO extends LocateInfo {
     private String fireCause;
 
     /**
-     * 火灾登记
+     * 火灾等级
      */
     private String fireLevel;
 

+ 50 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/DataRtVo.java

@@ -0,0 +1,50 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-15
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DataRtVo implements Serializable {
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 所属单位
+     */
+    private String companyName;
+
+    /**
+     * 负责人
+     */
+    private String linkPerson;
+
+    /**
+     * 联系电话
+     */
+    private String linkPhone;
+
+    /**
+     * 设备最新采集值
+     */
+    private List<Map<String, Object>> dataList;
+
+}

+ 24 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/DemInspectListMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.fire.mapper.DemInspectListMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.DemInspectList">
+        <id column="id" property="id" />
+        <result column="inspect_code" property="inspectCode" />
+        <result column="device_id" property="deviceId" />
+        <result column="alarm_id" property="alarmId" />
+        <result column="company_id" property="companyId" />
+        <result column="handler" property="handler" />
+        <result column="handling_time" property="handlingTime" />
+        <result column="handling_content" property="handlingContent" />
+        <result column="handler_phone" property="handlerPhone" />
+        <result column="handling_status" property="handlingStatus" />
+        <result column="site_photo1" property="sitePhoto1" />
+        <result column="site_photo2" property="sitePhoto2" />
+        <result column="site_photo3" property="sitePhoto3" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>