Преглед изворни кода

物联网实时数据查询

jichaobo пре 2 година
родитељ
комит
84f9887883
22 измењених фајлова са 759 додато и 622 уклоњено
  1. 1 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/MybatisGeneratorUtils.java
  2. 18 119
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmDetectorController.java
  3. 39 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseCompanyController.java
  4. 21 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseDeviceAttributeController.java
  5. 0 126
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmDetector.java
  6. 181 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BaseCompany.java
  7. 136 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BaseDeviceAttribute.java
  8. 0 24
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/AlarmDetectorMapper.java
  9. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/BaseCompanyMapper.java
  10. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/BaseDeviceAttributeMapper.java
  11. 14 67
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmDetectorService.java
  12. 32 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseCompanyService.java
  13. 16 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseDeviceAttributeService.java
  14. 8 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseUserCompanyService.java
  15. 79 227
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmDetectorServiceImpl.java
  16. 53 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseCompanyServiceImpl.java
  17. 20 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseDeviceAttributeServiceImpl.java
  18. 23 1
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseUserCompanyServiceImpl.java
  19. 15 0
      service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java
  20. 0 57
      service-fire/service-fire-biz/src/main/resources/mapper/fire/AlarmDetectorMapper.xml
  21. 40 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/BaseCompanyMapper.xml
  22. 31 0
      service-fire/service-fire-biz/src/main/resources/mapper/fire/BaseDeviceAttributeMapper.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_user_company");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("base_device_attribute");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 18 - 119
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/AlarmDetectorController.java

@@ -2,21 +2,16 @@ 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 org.influxdb.dto.QueryResult;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
@@ -41,126 +36,30 @@ public class AlarmDetectorController {
     private InfluxDbUtils influxDbUtils;
 
     /**
-     * 事件管理-隐患管理-自动喷水灭火系统-列表查询
+     * 物联网数据查询-左上实时数据查询
      *
-     * @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 systemType     系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param field      字段名称
+     * @param deviceCode 单位编号
      * @return
      */
-
-    @GetMapping("alarmDetectorLowerList")
-    public ApiResult<CommonPage<AlarmDetectorVo>> alarmDetectorLowerList(@RequestParam(value = "handlingStatus", required = false) Integer handlingStatus,
-                                                                         @RequestParam(value = "systemType", required = false) String systemType,
-                                                                         @RequestParam(value = "startDate", required = false) String startDate,
-                                                                         @RequestParam(value = "endDate", required = false) String endDate,
-                                                                         @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
-                                                                         @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
-        return ApiResult.success(alarmDetectorService.alarmDetectorLowerList(handlingStatus, startDate, endDate, pageNum, pageSize, systemType));
-    }
-
-    /**
-     * 事件管理-隐患管理-自动喷水灭火系统-左侧数据统计
-     *
-     * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     * @return
-     */
-    @GetMapping("detectorStatistics")
-    public ApiResult<Map<String, Object>> detectorStatistics(@RequestParam(value = "systemType", required = false) String systemType) {
-        return ApiResult.success(alarmDetectorService.detectorStatistics(systemType));
+    @GetMapping("leftData")
+    public ApiResult<List<Map<String, Object>>> leftData(@RequestParam(value = "field") String field,
+                                                         @RequestParam(value = "deviceCode") String deviceCode) {
+        return ApiResult.success(alarmDetectorService.leftData(field, deviceCode));
     }
 
-    /**
-     * 事件管理-隐患管理-自动喷水灭火系统-数据统计图
-     *
-     * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     * @param startDate  开始时间  格式:yyyy-MM-dd HH:mm:ss
-     * @param endDate    结束时间  格式:yyyy-MM-dd HH:mm:ss
-     * @return
-     */
-    @GetMapping("detectorStatisticalChart")
-    public ApiResult<Map<String, Object>> detectorStatisticalChart(@RequestParam(value = "systemType", required = false) String systemType,
-                                                                   @RequestParam(value = "startDate", required = false) String startDate,
-                                                                   @RequestParam(value = "endDate", required = false) String endDate) {
-        return ApiResult.success(alarmDetectorService.detectorStatisticalChart(systemType, startDate, endDate));
-    }
 
     /**
-     * 事件管理-隐患管理-自动喷水灭火系统-告警处理
+     * 物联网数据查询-右上侧统计图
      *
-     * @param alarmDetector
+     * @param field      字段名称
+     * @param deviceCode 单位编号
      * @return
      */
-    @Log(title = "告警处理", businessType = BusinessType.UPDATE)
-    @PutMapping("updateAlarmDetector")
-    public ApiResult<Void> updateAlarmDetector(@RequestBody AlarmDetector alarmDetector) {
-        alarmDetectorService.updateAlarmDetector(alarmDetector);
-        return ApiResult.success();
-    }
-
-    /**
-     * 事件管理-隐患管理-自动喷水灭火系统-导出
-     *
-     * @param response
-     * @param handlingStatus 处理状态(0、未处理 1、已处理)
-     * @param systemType     系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
-     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
-     * @param exportTitle    导出标题
-     * @throws IOException
-     * @return
-     */
-    @PostMapping("alarmDetectorLowerListExport")
-    public void export(HttpServletResponse response,
-                                  @RequestParam(value = "handlingStatus", required = false) Integer handlingStatus,
-                                  @RequestParam(value = "systemType", required = false) String systemType,
-                                  @RequestParam(value = "startDate", required = false) String startDate,
-                                  @RequestParam(value = "endDate", required = false) String endDate,
-                                  @RequestParam(value = "exportTitle") String exportTitle) throws IOException {
-        List<AlarmDetectorVo> list = alarmDetectorService.alarmDetectorLowerListExport(handlingStatus, startDate, endDate, systemType);
-        ExcelUtil<AlarmDetectorVo> util = new ExcelUtil<AlarmDetectorVo>(AlarmDetectorVo.class);
-        util.exportExcel(response, list, exportTitle, exportTitle);
-    }
-
-    @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);
-//        request.setHeader("User-Agent", "Apipost client Runtime/+https://www.apipost.cn/");
-//        request.setHeader("Content-Type", "application/x-www-form-urlencoded");
-//        HttpResponse httpResponse = request.execute().returnResponse();
-//        System.out.println(httpResponse.getStatusLine());
-//        if (httpResponse.getEntity() != null) {
-//            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";
-        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;
+    @GetMapping("statisticalChartData")
+    public ApiResult<Map<String, Object>> statisticalChartData(@RequestParam(value = "field") String field,
+                                                               @RequestParam(value = "deviceCode") String deviceCode) {
+        return ApiResult.success(alarmDetectorService.statisticalChartData(field, deviceCode));
     }
 
 

+ 39 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseCompanyController.java

@@ -0,0 +1,39 @@
+package com.usky.fire.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.fire.domain.BaseCompany;
+import com.usky.fire.service.BaseCompanyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 联网单位信息表 前端控制器
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-23
+ */
+@RestController
+@RequestMapping("/baseCompany")
+public class BaseCompanyController {
+
+    @Autowired
+    private BaseCompanyService baseCompanyService;
+
+    /**
+     * 根据登录的用户查询所关联的单位下拉框
+     *
+     * @return
+     */
+    @GetMapping("userCompanySelect")
+    public ApiResult<List<BaseCompany>> userCompanySelect() {
+        return ApiResult.success(baseCompanyService.userCompanySelect());
+    }
+}
+

+ 21 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseDeviceAttributeController.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 JCB
+ * @since 2022-08-23
+ */
+@Controller
+@RequestMapping("/baseDeviceAttribute")
+public class BaseDeviceAttributeController {
+
+}
+

+ 0 - 126
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/AlarmDetector.java

@@ -1,126 +0,0 @@
-package com.usky.fire.domain;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-/**
- * <p>
- * 独立式无线探测器告警
- * </p>
- *
- * @author JCB
- * @since 2022-08-08
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class AlarmDetector implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    /**
-     * 数据来源
-     */
-    private String dataSources;
-
-    /**
-     * 设备编号
-     */
-    private String deviceCode;
-
-    /**
-     * 数据上报时间
-     */
-    private LocalDateTime dataTime;
-
-    /**
-     * 设备状态
-     */
-    private Integer deviceStatus;
-
-    /**
-     * 上报地址
-     */
-    private String address;
-
-    /**
-     * 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     */
-    private Integer systemType;
-
-    /**
-     * 端口
-     */
-    private String portNum;
-
-    /**
-     * 告警类型(如WP1、WP2)
-     */
-    private String alarmType;
-
-    /**
-     * 属性值1
-     */
-    private Integer attributeValue1;
-
-    /**
-     * 属性值2
-     */
-    private String attributeValue2;
-
-    /**
-     * 属性值3
-     */
-    private String attributeValue3;
-
-    /**
-     * 属性值4
-     */
-    private String attributeValue4;
-
-    /**
-     * 处理人
-     */
-    private String handler;
-
-    /**
-     * 处理时间
-     */
-    private LocalDateTime handlingTime;
-
-    /**
-     * 处理内容
-     */
-    private String handlingContent;
-
-    /**
-     * 处理人电话
-     */
-    private String handlerPhone;
-
-    /**
-     * 处理状态(0、未处理 1、已处理)
-     */
-    private Integer handlingStatus;
-
-    /**
-     * 是否误报(0、非误报 1、误报)
-     */
-    private Integer falseAlarm;
-
-    /**
-     * 现场照片
-     */
-    private String sitePhoto;
-
-
-}

+ 181 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BaseCompany.java

@@ -0,0 +1,181 @@
+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 JCB
+ * @since 2022-08-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseCompany implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 单位ID
+     */
+    private String companyId;
+
+    /**
+     * 单位编号
+     */
+    private String companyCode;
+
+    /**
+     * 组织机构编码
+     */
+    private String organization;
+
+    /**
+     * 单位名称
+     */
+    private String companyName;
+
+    /**
+     * 单位拼音简称
+     */
+    private String nameAbbreviation;
+
+    /**
+     * 单位类型
+     */
+    private String companyType;
+
+    /**
+     * 单位详细地址
+     */
+    private String address;
+
+    /**
+     * 火灾危险性
+     */
+    private String fireHazard;
+
+    /**
+     * 邮政编码
+     */
+    private Integer postalCode;
+
+    /**
+     * 邮箱
+     */
+    private String mailbox;
+
+    /**
+     * 单位联系人
+     */
+    private String linkPerson;
+
+    /**
+     * 单位联系电话
+     */
+    private String linkPhone;
+
+    /**
+     * 单位传真
+     */
+    private String companyFax;
+
+    /**
+     * 经济所有制
+     */
+    private String economicOwnership;
+
+    /**
+     * 单位成立时间
+     */
+    private LocalDateTime foundTime;
+
+    /**
+     * 上级主管单位
+     */
+    private String upperName;
+
+    /**
+     * 单位等级
+     */
+    private Integer companyGrade;
+
+    /**
+     * 单位性质
+     */
+    private Integer companyNature;
+
+    /**
+     * 行政区域
+     */
+    private String administrativeDivision;
+
+    /**
+     * 行政区域名称
+     */
+    private String divisionName;
+
+    /**
+     * 消防管辖
+     */
+    private String fireJurisdiction;
+
+    /**
+     * 支队级机构ID填充
+     */
+    private String detachmentId;
+
+    /**
+     * 删除标记
+     */
+    private String enable;
+
+    /**
+     * 创建者姓名
+     */
+    private String creatorName;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新人姓名
+     */
+    private String updatePersonName;
+
+    /**
+     * 修改人的IP
+     */
+    private String updatePersonIp;
+
+    /**
+     * 更新人
+     */
+    private String updatePerson;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+
+}

+ 136 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/domain/BaseDeviceAttribute.java

@@ -0,0 +1,136 @@
+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 JCB
+ * @since 2022-08-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseDeviceAttribute implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 设备id
+     */
+    private Integer deviceId;
+
+    /**
+     * 端口
+     */
+    private Integer ports;
+
+    /**
+     * 端口类型(1开关量 2模拟量)
+     */
+    private Integer portType;
+
+    /**
+     * 系统类型(1:火灾报警系统,2:自动喷水灭火系统,3:防火门及卷帘系统,4:气体灭火系统,5:消火栓系统)
+     */
+    private Integer systemType;
+
+    /**
+     * 电平类型(1高电平 2低电平)
+     */
+    private Integer levelType;
+
+    /**
+     * 高电平名称
+     */
+    private String highLevelName;
+
+    /**
+     * 低电平名称
+     */
+    private String lowLevelName;
+
+    /**
+     * 端口编码(与influxdb保持一致)
+     */
+    private String portCode;
+
+    /**
+     * 端口名称
+     */
+    private String portName;
+
+    /**
+     * 模拟量参数
+     */
+    private String analogQuantityParameter;
+
+    /**
+     * 模拟量告警上限
+     */
+    private String analogAlarmUpper;
+
+    /**
+     * 模拟量告警下限
+     */
+    private String analogAlarmLower;
+
+    /**
+     * 量程
+     */
+    private String range;
+
+    /**
+     * 量程上限
+     */
+    private String rangeUpper;
+
+    /**
+     * 量程下限
+     */
+    private String rangeLower;
+
+    /**
+     * 输出
+     */
+    private String output;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 更新人
+     */
+    private String updatePerson;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+
+}

+ 0 - 24
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/AlarmDetectorMapper.java

@@ -1,24 +0,0 @@
-package com.usky.fire.mapper;
-
-import com.usky.common.mybatis.core.CrudMapper;
-import com.usky.fire.domain.AlarmDetector;
-import com.usky.fire.service.vo.AlarmFireStatisticalVo;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * <p>
- * 独立式无线探测器告警 Mapper 接口
- * </p>
- *
- * @author JCB
- * @since 2022-08-08
- */
-public interface AlarmDetectorMapper extends CrudMapper<AlarmDetector> {
-
-    List<AlarmFireStatisticalVo> selectAlarmDetectorStatistical(@Param("deviceList") List<String> deviceList,
-                                                                @Param("systemTypeList") List<Integer> systemTypeList,
-                                                                @Param("startDate") String startDate,
-                                                                @Param("endDate") String endDate);
-}

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

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.BaseCompany;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 联网单位信息表 Mapper 接口
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-23
+ */
+public interface BaseCompanyMapper extends CrudMapper<BaseCompany> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.usky.fire.mapper;
+
+import com.usky.fire.domain.BaseDeviceAttribute;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 基础信息_设备点位 Mapper 接口
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-23
+ */
+public interface BaseDeviceAttributeMapper extends CrudMapper<BaseDeviceAttribute> {
+
+}

+ 14 - 67
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/AlarmDetectorService.java

@@ -1,10 +1,5 @@
 package com.usky.fire.service;
 
-import com.usky.common.core.bean.CommonPage;
-import com.usky.common.mybatis.core.CrudService;
-import com.usky.fire.domain.AlarmDetector;
-import com.usky.fire.service.vo.AlarmDetectorVo;
-
 import java.util.List;
 import java.util.Map;
 
@@ -16,81 +11,33 @@ import java.util.Map;
  * @author JCB
  * @since 2022-08-08
  */
-public interface AlarmDetectorService extends CrudService<AlarmDetector> {
-    /**
-     * 事件管理-隐患管理-自动喷水灭火系统-列表查询
-     *
-     * @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 systemType     系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     * @return
-     */
-    CommonPage<AlarmDetectorVo> alarmDetectorLowerList(Integer handlingStatus, String startDate, String endDate,
-                                                       Integer pageNum, Integer pageSize, String systemType);
-
-    /**
-     * 事件管理-隐患管理-自动喷水灭火系统-左侧统计
-     *
-     * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     * @return
-     */
-    Map<String, Object> detectorStatistics(String systemType);
-
-
-    /**
-     * 事件管理-隐患管理-自动喷水灭火系统-数据统计图
-     *
-     * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
-     * @param startDate  开始时间  格式:yyyy-MM-dd HH:mm:ss
-     * @param endDate    结束时间  格式:yyyy-MM-dd HH:mm:ss
-     * @return
-     */
-    Map<String, Object> detectorStatisticalChart(String systemType, String startDate, String endDate);
-
-    /**
-     * 事件管理-隐患管理-自动喷水灭火系统-告警处理
-     *
-     * @param alarmDetector
-     * @return
-     */
-    void updateAlarmDetector(AlarmDetector alarmDetector);
+public interface AlarmDetectorService {
 
     /**
-     * 事件管理-隐患管理-自动喷水灭火系统-导出数据查询
+     * 物联网数据查询-左上实时数据查询
      *
-     * @param handlingStatus 处理状态(0、未处理 1、已处理)
-     * @param startDate      开始时间 格式:yyyy-MM-dd HH:mm:ss
-     * @param endDate        结束时间 格式:yyyy-MM-dd HH:mm:ss
-     * @param systemType     系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param field      字段名称
+     * @param deviceCode 单位编号
      * @return
      */
-    List<AlarmDetectorVo> alarmDetectorLowerListExport(Integer handlingStatus, String startDate, String endDate, String systemType);
+    List<Map<String, Object>> leftData(String field, String deviceCode);
 
     /**
-     * 事件管理-隐患管理-自动喷水灭火系统-数量统计
+     * influxDB 最大、最小、最新数据查询
      *
-     * @param deviceCodeList 设备编号
-     * @param handlingStatus 处理状态(0、未处理 1、已处理)
-     * @param systemType     系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param queryType  查询类型(1、最大 2、最小 3、最新)
+     * @param field      字段名称
+     * @param deviceCode 单位编号
      * @return
      */
-    Integer detectorCount(List<String> deviceCodeList, Integer handlingStatus, List<Integer> systemTypeList);
+    Map<String, Object> statusData(Integer queryType, String field, String deviceCode);
 
     /**
-     * 事件管理-隐患管理-自动喷水灭火系统-列表查询一
+     * influxDB 一周数据查询
      *
-     * @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 systemType     系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
+     * @param field      字段名称
+     * @param deviceCode 单位编号
      * @return
      */
-    CommonPage<AlarmDetector> alarDetectorList(List<String> deviceCodeList, Integer handlingStatus, String startDate,
-                                               String endDate, Integer pageNum, Integer pageSize, List<Integer> systemTypeList);
+    Map<String, Object> statisticalChartData(String field, String deviceCode);
 }

+ 32 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseCompanyService.java

@@ -0,0 +1,32 @@
+package com.usky.fire.service;
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.fire.domain.BaseCompany;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 联网单位信息表 服务类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-23
+ */
+public interface BaseCompanyService extends CrudService<BaseCompany> {
+
+    /**
+     * 根据登录的用户查询所关联的单位下拉框
+     *
+     * @return
+     */
+    List<BaseCompany> userCompanySelect();
+
+    /**
+     * 根据单位ID查询单位下拉框
+     *
+     * @param companyIdList 单位ID
+     * @return
+     */
+    List<BaseCompany> companySelect(List<Integer> companyIdList);
+}

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

@@ -0,0 +1,16 @@
+package com.usky.fire.service;
+
+import com.usky.fire.domain.BaseDeviceAttribute;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 基础信息_设备点位 服务类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-23
+ */
+public interface BaseDeviceAttributeService extends CrudService<BaseDeviceAttribute> {
+
+}

+ 8 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseUserCompanyService.java

@@ -3,6 +3,8 @@ package com.usky.fire.service;
 import com.usky.fire.domain.BaseUserCompany;
 import com.usky.common.mybatis.core.CrudService;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户单位关联 服务类
@@ -13,4 +15,10 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface BaseUserCompanyService extends CrudService<BaseUserCompany> {
 
+    /**
+     * 获取登录用户关联的物联网单位
+     *
+     * @return
+     */
+    List<Integer> companyIdList();
 }

+ 79 - 227
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/AlarmDetectorServiceImpl.java

@@ -1,25 +1,17 @@
 package com.usky.fire.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.usky.common.core.bean.CommonPage;
-import com.usky.common.mybatis.core.AbstractCrudService;
-import com.usky.common.security.utils.SecurityUtils;
-import com.usky.fire.domain.AlarmDetector;
-import com.usky.fire.mapper.AlarmDetectorMapper;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.influx.core.InfluxDbUtils;
 import com.usky.fire.service.AlarmDetectorService;
 import com.usky.fire.service.util.OnlineMethod;
-import com.usky.fire.service.vo.AlarmDetectorVo;
-import com.usky.fire.service.vo.AlarmFireStatisticalVo;
-import com.usky.system.model.LoginUser;
+import org.influxdb.dto.QueryResult;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -30,231 +22,91 @@ import java.util.Map;
  * @since 2022-08-08
  */
 @Service
-public class AlarmDetectorServiceImpl extends AbstractCrudService<AlarmDetectorMapper, AlarmDetector> implements AlarmDetectorService {
+public class AlarmDetectorServiceImpl implements AlarmDetectorService {
 
-    @Override
-    public CommonPage<AlarmDetectorVo> alarmDetectorLowerList(Integer handlingStatus, String startDate, String endDate,
-                                                              Integer pageNum, Integer pageSize, String systemType) {
-        List<Integer> systemTypeList = new ArrayList<>();
-        if (systemType != null && !"".equals(systemType)) {
-            String[] alarmTypeArray = systemType.split(",");
-            for (int i = 0; i < alarmTypeArray.length; i++) {
-                systemTypeList.add(Integer.parseInt(alarmTypeArray[i]));
-            }
-        }
+    @Autowired
+    private InfluxDbUtils influxDbUtils;
 
-        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        String userType = null;
-        LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (loginUser != null && !"".equals(loginUser)) {
-            userType = loginUser.getUserType();
-        }
-        //缺少维保单位部分代码
-        List<String> devcieCodeList = new ArrayList<>();
-        CommonPage<AlarmDetector> alarmDetectorList = this.alarDetectorList(devcieCodeList, handlingStatus, startDate, endDate, pageNum, pageSize, systemTypeList);
-        List<AlarmDetectorVo> list = new ArrayList<>();
-        for (int i = 0; i < alarmDetectorList.getRecords().size(); i++) {
-            AlarmDetectorVo alarmDetectorVo = new AlarmDetectorVo();
-            alarmDetectorVo.setId(alarmDetectorList.getRecords().get(i).getId());
-            alarmDetectorVo.setDataSources(alarmDetectorList.getRecords().get(i).getDataSources());
-            alarmDetectorVo.setDeviceCode(alarmDetectorList.getRecords().get(i).getDeviceCode());
-            alarmDetectorVo.setDataTime(df.format(alarmDetectorList.getRecords().get(i).getDataTime()));
-            alarmDetectorVo.setDeviceStatus(alarmDetectorList.getRecords().get(i).getDeviceStatus());
-            alarmDetectorVo.setAddress(alarmDetectorList.getRecords().get(i).getAddress());
-            alarmDetectorVo.setSystemType(alarmDetectorList.getRecords().get(i).getSystemType());
-            alarmDetectorVo.setPortNum(alarmDetectorList.getRecords().get(i).getPortNum());
-            alarmDetectorVo.setAlarmType(alarmDetectorList.getRecords().get(i).getAlarmType());
-            alarmDetectorVo.setAttributeValue1(alarmDetectorList.getRecords().get(i).getAttributeValue1());
-            alarmDetectorVo.setAttributeValue2(alarmDetectorList.getRecords().get(i).getAttributeValue2());
-            alarmDetectorVo.setAttributeValue3(alarmDetectorList.getRecords().get(i).getAttributeValue3());
-            alarmDetectorVo.setAttributeValue4(alarmDetectorList.getRecords().get(i).getAttributeValue4());
-            alarmDetectorVo.setHandler(alarmDetectorList.getRecords().get(i).getHandler());
-            if (alarmDetectorList.getRecords().get(i).getHandlingTime() != null) {
-                alarmDetectorVo.setHandlingTime(df.format(alarmDetectorList.getRecords().get(i).getHandlingTime()));
-            } else {
-                alarmDetectorVo.setHandlingTime(null);
-            }
-            alarmDetectorVo.setHandlingContent(alarmDetectorList.getRecords().get(i).getHandlingContent());
-            alarmDetectorVo.setHandlerPhone(alarmDetectorList.getRecords().get(i).getHandlerPhone());
-            alarmDetectorVo.setHandlingStatus(alarmDetectorList.getRecords().get(i).getHandlingStatus());
-            alarmDetectorVo.setFalseAlarm(alarmDetectorList.getRecords().get(i).getFalseAlarm());
-            alarmDetectorVo.setSitePhoto(alarmDetectorList.getRecords().get(i).getSitePhoto());
-            alarmDetectorVo.setCompanyName("未定义单位表");
-            alarmDetectorVo.setAlarmConten("未定义内容");
-            list.add(alarmDetectorVo);
-        }
-        return new CommonPage<>(list, alarmDetectorList.getTotal(), pageSize, pageNum);
-    }
 
     @Override
-    public Map<String, Object> detectorStatistics(String systemType) {
-        List<Integer> systemTypeList = new ArrayList<>();
-        if (systemType != null && !"".equals(systemType)) {
-            String[] alarmTypeArray = systemType.split(",");
-            for (int i = 0; i < alarmTypeArray.length; i++) {
-                systemTypeList.add(Integer.parseInt(alarmTypeArray[i]));
-            }
-        }
-
-        String userType = null;
-        LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (loginUser != null && !"".equals(loginUser)) {
-            userType = loginUser.getUserType();
-        }
-        //缺少维保单位部分代码
-        List<String> devcieCodeList = new ArrayList<>();
-
-        int untreated = this.detectorCount(devcieCodeList, 0, systemTypeList);
-        int processed = this.detectorCount(devcieCodeList, 1, systemTypeList);
-//        String disposalRate =  processed / (untreated + processed) + "%";
-        Integer count = untreated + processed;
-        String disposalRate = OnlineMethod.myPercent(processed, count);
-        Map<String, Object> map = new HashMap<>();
-        map.put("untreated", untreated);//告警未处理数
-        map.put("processed", processed);//告警未处理数
-        map.put("disposalRate", disposalRate);//告警处理率
-        map.put("alarmCount", count);//告警总数
-        return map;
-    }
-
-    @Override
-    public Map<String, Object> detectorStatisticalChart(String systemType, String startDate, String endDate) {
-        List<Integer> systemTypeList = new ArrayList<>();
-        if (systemType != null && !"".equals(systemType)) {
-            String[] alarmTypeArray = systemType.split(",");
-            for (int i = 0; i < alarmTypeArray.length; i++) {
-                systemTypeList.add(Integer.parseInt(alarmTypeArray[i]));
-            }
-        }
-
-        String userType = null;
-        LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (loginUser != null && !"".equals(loginUser)) {
-            userType = loginUser.getUserType();
-        }
-        //缺少维保单位部分代码
-        List<String> devcieCodeList = new ArrayList<>();
-        List<AlarmFireStatisticalVo> list = baseMapper.selectAlarmDetectorStatistical(devcieCodeList, systemTypeList, startDate, endDate);
-        List<Integer> alarmCountList = new ArrayList<>();
-        List<Integer> handleCountList = new ArrayList<>();
-        List<String> alarmTimeList = new ArrayList<>();
-        List<String> handleRateList = new ArrayList<>();
-        for (int i = 0; i < list.size(); i++) {
-            alarmCountList.add(list.get(i).getCount());
-            handleCountList.add(list.get(i).getSum());
-            alarmTimeList.add(list.get(i).getAlarmTime());
-            handleRateList.add(OnlineMethod.myPercent(list.get(i).getSum(), list.get(i).getCount()));
-        }
-        Map<String, Object> map = new HashMap<>();
-        map.put("alarmCountList", alarmCountList);//告警总数
-        map.put("handleCountList", handleCountList);//告警处理数量
-        map.put("alarmTimeList", alarmTimeList);//告警日期
-        map.put("handleRateList", handleRateList);//告警处置占比
-        return map;
+    public List<Map<String, Object>> leftData(String field, String deviceCode) {
+        Map<String, Object> maxMap = this.statusData(1, field, deviceCode);
+        Map<String, Object> minMap = this.statusData(2, field, deviceCode);
+        Map<String, Object> lastMap = this.statusData(3, field, deviceCode);
+        List<Map<String, Object>> list = new ArrayList<>();
+        list.add(maxMap);
+        list.add(minMap);
+        list.add(lastMap);
+        return list;
     }
 
-    @Override
-    public void updateAlarmDetector(AlarmDetector alarmDetector) {
-        alarmDetector.setHandler(SecurityUtils.getUsername());
-        alarmDetector.setHandlingTime(LocalDateTime.now());
-        alarmDetector.setHandlingStatus(1);
-        this.updateById(alarmDetector);
-    }
 
     @Override
-    public List<AlarmDetectorVo> alarmDetectorLowerListExport(Integer handlingStatus, String startDate, String endDate, String systemType) {
-        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-
-        List<Integer> systemTypeList = new ArrayList<>();
-        if (systemType != null && !"".equals(systemType)) {
-            String[] alarmTypeArray = systemType.split(",");
-            for (int i = 0; i < alarmTypeArray.length; i++) {
-                systemTypeList.add(Integer.parseInt(alarmTypeArray[i]));
-            }
-        }
-
-        String userType = null;
-        LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (loginUser != null && !"".equals(loginUser)) {
-            userType = loginUser.getUserType();
-        }
-        //缺少维保单位部分代码
-        List<String> devcieCodeList = new ArrayList<>();
-        CommonPage<AlarmDetector> alarmDetectorList = this.alarDetectorList(devcieCodeList, handlingStatus, startDate, endDate, 0, 0, systemTypeList);
-        List<AlarmDetectorVo> list = new ArrayList<>();
-        for (int i = 0; i < alarmDetectorList.getRecords().size(); i++) {
-            AlarmDetectorVo alarmDetectorVo = new AlarmDetectorVo();
-            alarmDetectorVo.setId(alarmDetectorList.getRecords().get(i).getId());
-            alarmDetectorVo.setDataSources(alarmDetectorList.getRecords().get(i).getDataSources());
-            alarmDetectorVo.setDeviceCode(alarmDetectorList.getRecords().get(i).getDeviceCode());
-            alarmDetectorVo.setDataTime(df.format(alarmDetectorList.getRecords().get(i).getDataTime()));
-            alarmDetectorVo.setDeviceStatus(alarmDetectorList.getRecords().get(i).getDeviceStatus());
-            alarmDetectorVo.setAddress(alarmDetectorList.getRecords().get(i).getAddress());
-            alarmDetectorVo.setSystemType(alarmDetectorList.getRecords().get(i).getSystemType());
-            alarmDetectorVo.setPortNum(alarmDetectorList.getRecords().get(i).getPortNum());
-            alarmDetectorVo.setAlarmType(alarmDetectorList.getRecords().get(i).getAlarmType());
-            alarmDetectorVo.setAttributeValue1(alarmDetectorList.getRecords().get(i).getAttributeValue1());
-            alarmDetectorVo.setAttributeValue2(alarmDetectorList.getRecords().get(i).getAttributeValue2());
-            alarmDetectorVo.setAttributeValue3(alarmDetectorList.getRecords().get(i).getAttributeValue3());
-            alarmDetectorVo.setAttributeValue4(alarmDetectorList.getRecords().get(i).getAttributeValue4());
-            alarmDetectorVo.setHandler(alarmDetectorList.getRecords().get(i).getHandler());
-            if (alarmDetectorList.getRecords().get(i).getHandlingTime() != null) {
-                alarmDetectorVo.setHandlingTime(df.format(alarmDetectorList.getRecords().get(i).getHandlingTime()));
+    public Map<String, Object> statusData(Integer queryType, String field, String deviceCode) {
+        String fields = "";
+        switch (queryType) {
+            case 1:
+                fields = " MAX(" + field + "),";
+                break;
+            case 2:
+                fields = " MIN(" + field + "),";
+                break;
+            case 3:
+                fields = " LAST(" + field + "),";
+                break;
+            default:
+                throw new BusinessException("查询数据类型未定义");
+        }
+        String sql = "SELECT " + fields + "time FROM sp_d" + deviceCode + " tz('Asia/Shanghai')";
+        QueryResult query = influxDbUtils.query(sql);
+        QueryResult.Result oneResult = query.getResults().get(0);
+        Map<String, Object> map = new HashMap<String, Object>();
+        if (oneResult.getSeries() != null) {
+            List<List<Object>> valueList = oneResult.getSeries().stream().map(QueryResult.Series::getValues)
+                    .collect(Collectors.toList()).get(0);
+            List<String> columns = oneResult.getSeries().stream().map(QueryResult.Series::getColumns)
+                    .collect(Collectors.toList()).get(0);
+            if (valueList != null && valueList.size() > 0) {
+                for (int i = 0; i < valueList.get(0).size(); i++) {
+                    if (i == 0) {
+                        map.put(columns.get(i), valueList.get(0).get(i) == null ? null : OnlineMethod.timeChange(valueList.get(0).get(i)));
+                    } else {
+                        map.put(columns.get(i), valueList.get(0).get(i) == null ? null : valueList.get(0).get(i));
+                    }
+                }
             } else {
-                alarmDetectorVo.setHandlingTime(null);
+                for (int i = 0; i < columns.size(); i++) {
+                    map.put(columns.get(i), null);
+                }
             }
-            alarmDetectorVo.setHandlingContent(alarmDetectorList.getRecords().get(i).getHandlingContent());
-            alarmDetectorVo.setHandlerPhone(alarmDetectorList.getRecords().get(i).getHandlerPhone());
-            alarmDetectorVo.setHandlingStatus(alarmDetectorList.getRecords().get(i).getHandlingStatus());
-            alarmDetectorVo.setFalseAlarm(alarmDetectorList.getRecords().get(i).getFalseAlarm());
-            alarmDetectorVo.setSitePhoto(alarmDetectorList.getRecords().get(i).getSitePhoto());
-            alarmDetectorVo.setCompanyName("未定义单位表");
-            alarmDetectorVo.setAlarmConten("未定义内容");
-            list.add(alarmDetectorVo);
+        } else {
+            throw new BusinessException(query.getError());
         }
-        return list;
+        return map;
     }
 
-
     @Override
-    public Integer detectorCount(List<String> deviceCodeList, Integer handlingStatus, List<Integer> systemTypeList) {
-        LambdaQueryWrapper<AlarmDetector> queryWrapper = Wrappers.lambdaQuery();
-        if (deviceCodeList.size() > 0) {
-            queryWrapper.in(AlarmDetector::getDeviceCode, deviceCodeList);
-        }
-        if (handlingStatus != null) {
-            queryWrapper.eq(AlarmDetector::getHandlingStatus, handlingStatus);
-        }
-        if (systemTypeList != null && systemTypeList.size() > 0) {
-            queryWrapper.in(AlarmDetector::getSystemType, systemTypeList);
-        }
-        int total = this.count(queryWrapper);
-        return total;
-    }
-
-    public CommonPage<AlarmDetector> alarDetectorList(List<String> deviceCodeList, Integer handlingStatus, String startDate,
-                                                      String endDate, Integer pageNum, Integer pageSize, List<Integer> systemTypeList) {
-        LambdaQueryWrapper<AlarmDetector> queryWrapper = Wrappers.lambdaQuery();
-        if (deviceCodeList.size() > 0) {
-            queryWrapper.in(AlarmDetector::getDeviceCode, deviceCodeList);
-        }
-        if (handlingStatus != null) {
-            queryWrapper.eq(AlarmDetector::getHandlingStatus, handlingStatus);
-        }
-
-        if (systemTypeList != null && systemTypeList.size() > 0) {
-            queryWrapper.in(AlarmDetector::getSystemType, systemTypeList);
-        }
-        if (startDate != null && !"".equals(startDate) && endDate != null && !"".equals(endDate)) {
-            queryWrapper.between(AlarmDetector::getDataTime, startDate, endDate);
-        }
-        int total = this.count(queryWrapper);
-        queryWrapper.orderByDesc(AlarmDetector::getId);
-        if (pageNum != null && pageNum != 0 && pageSize != null && pageSize != 0) {
-            Integer startFate = OnlineMethod.getStartFate(pageNum, pageSize);
-            queryWrapper.last("limit " + startFate + "," + pageSize);
+    public Map<String, Object> statisticalChartData(String field, String deviceCode) {
+        String sql = "SELECT " + field + " as A,time as b FROM sp_d" + deviceCode + " WHERE time >= now() - 7d order by time desc";
+        QueryResult query = influxDbUtils.query(sql);
+        QueryResult.Result oneResult = query.getResults().get(0);
+        Map<String, Object> map = new HashMap<String, Object>();
+        if (oneResult.getSeries() != null) {
+            List<List<Object>> valueList = oneResult.getSeries().stream().map(QueryResult.Series::getValues)
+                    .collect(Collectors.toList()).get(0);
+            if (valueList != null && valueList.size() > 0) {
+                List<Object> time = new ArrayList<>();
+                List<Object> value = new ArrayList<>();
+                for (int i = 0; i < valueList.size(); i++) {
+                    time.add(OnlineMethod.timeChange(valueList.get(i).get(0)));
+                    value.add(valueList.get(i).get(1));
+                }
+                map.put("time", time);
+                map.put("value", value);
+            }
+        } else {
+            throw new BusinessException(query.getError());
         }
-        List<AlarmDetector> list = this.list(queryWrapper);
-        return new CommonPage<>(list, total, pageSize, pageNum);
+        return map;
     }
 }

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

@@ -0,0 +1,53 @@
+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.Wrappers;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.fire.domain.BaseCompany;
+import com.usky.fire.mapper.BaseCompanyMapper;
+import com.usky.fire.service.BaseCompanyService;
+import com.usky.fire.service.BaseUserCompanyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 联网单位信息表 服务实现类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-23
+ */
+@Service
+public class BaseCompanyServiceImpl extends AbstractCrudService<BaseCompanyMapper, BaseCompany> implements BaseCompanyService {
+
+    @Autowired
+    private BaseUserCompanyService baseUserCompanyService;
+
+    @Override
+    public List<BaseCompany> userCompanySelect() {
+        List<Integer> companyIdList = baseUserCompanyService.companyIdList();
+        List<BaseCompany> list = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(companyIdList)) {
+            list = this.companySelect(companyIdList);
+        }
+        return list;
+    }
+
+
+    @Override
+    public List<BaseCompany> companySelect(List<Integer> companyIdList) {
+        LambdaQueryWrapper<BaseCompany> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(BaseCompany::getCompanyId, BaseCompany::getCompanyName)
+                .in(BaseCompany::getCompanyId, companyIdList)
+                .eq(BaseCompany::getEnable, 0)
+                .orderByDesc(BaseCompany::getId);
+        List<BaseCompany> list = this.list(queryWrapper);
+        return list;
+    }
+
+}

+ 20 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseDeviceAttributeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.usky.fire.service.impl;
+
+import com.usky.fire.domain.BaseDeviceAttribute;
+import com.usky.fire.mapper.BaseDeviceAttributeMapper;
+import com.usky.fire.service.BaseDeviceAttributeService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 基础信息_设备点位 服务实现类
+ * </p>
+ *
+ * @author JCB
+ * @since 2022-08-23
+ */
+@Service
+public class BaseDeviceAttributeServiceImpl extends AbstractCrudService<BaseDeviceAttributeMapper, BaseDeviceAttribute> implements BaseDeviceAttributeService {
+
+}

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

@@ -1,11 +1,18 @@
 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.Wrappers;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.fire.domain.BaseUserCompany;
 import com.usky.fire.mapper.BaseUserCompanyMapper;
 import com.usky.fire.service.BaseUserCompanyService;
-import com.usky.common.mybatis.core.AbstractCrudService;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 用户单位关联 服务实现类
@@ -17,4 +24,19 @@ import org.springframework.stereotype.Service;
 @Service
 public class BaseUserCompanyServiceImpl extends AbstractCrudService<BaseUserCompanyMapper, BaseUserCompany> implements BaseUserCompanyService {
 
+    @Override
+    public List<Integer> companyIdList() {
+        LambdaQueryWrapper<BaseUserCompany> QueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper.select(BaseUserCompany::getCompanyId)
+                .eq(BaseUserCompany::getUserId, SecurityUtils.getUserId());
+        List<BaseUserCompany> comoanyList = this.list(QueryWrapper);
+        List<Integer> companyIdList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(comoanyList)) {
+            for (int i = 0; i < comoanyList.size(); i++) {
+                companyIdList.add(comoanyList.get(i).getCompanyId());
+            }
+        }
+        return companyIdList;
+    }
+
 }

+ 15 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/util/OnlineMethod.java

@@ -17,6 +17,21 @@ import java.util.*;
 public class OnlineMethod {
 
 
+
+    public static String timeChange(Object dateTime1){
+        SimpleDateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH);
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        try {
+            //2020-09-19T09:58:34.926Z  转换为 2020-09-19 09:58:34  格式
+            String dateTime = String.valueOf(dateTime1);
+            Date date = utcFormat.parse(dateTime);
+            return simpleDateFormat.format(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
     public static String alarmName(String alarmType) {
         String alarmName = alarmType;
         switch (alarmType) {

+ 0 - 57
service-fire/service-fire-biz/src/main/resources/mapper/fire/AlarmDetectorMapper.xml

@@ -1,57 +0,0 @@
-<?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.AlarmDetectorMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.usky.fire.domain.AlarmDetector">
-        <id column="id" property="id"/>
-        <result column="data_sources" property="dataSources"/>
-        <result column="device_code" property="deviceCode"/>
-        <result column="data_time" property="dataTime"/>
-        <result column="device_status" property="deviceStatus"/>
-        <result column="address" property="address"/>
-        <result column="system_type" property="systemType"/>
-        <result column="port_num" property="portNum"/>
-        <result column="alarm_type" property="alarmType"/>
-        <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="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="false_alarm" property="falseAlarm"/>
-        <result column="site_photo" property="sitePhoto"/>
-    </resultMap>
-
-    <select id="selectAlarmDetectorStatistical" resultType="com.usky.fire.service.vo.AlarmFireStatisticalVo">
-        SELECT
-        DATE_FORMAT(data_time, "%Y-%m-%d") AS alarmTime,
-        count(*) AS `count`,
-        sum(handling_status) AS `sum`
-        FROM
-        alarm_detector
-        <where>
-            <if test="deviceList != null and deviceList.size() > 0">
-                AND device_code in
-                <foreach item="item" collection="deviceList" open="(" separator="," close=")">
-                    #{item.deviceCode}
-                </foreach>
-            </if>
-            <if test="startDate != null and startDate != '' and startDate != null and startDate != ''">
-                and data_time BETWEEN #{startDate} AND #{endDate}
-            </if>
-            <if test="systemTypeList != null and systemTypeList.size() > 0">
-                AND system_type in
-                <foreach item="item" collection="systemTypeList" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
-            </if>
-        </where>
-        GROUP BY
-        data_time
-    </select>
-
-</mapper>

+ 40 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/BaseCompanyMapper.xml

@@ -0,0 +1,40 @@
+<?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.BaseCompanyMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.BaseCompany">
+        <id column="id" property="id" />
+        <result column="company_id" property="companyId" />
+        <result column="company_code" property="companyCode" />
+        <result column="organization" property="organization" />
+        <result column="company_name" property="companyName" />
+        <result column="name_abbreviation" property="nameAbbreviation" />
+        <result column="company_type" property="companyType" />
+        <result column="address" property="address" />
+        <result column="fire_hazard" property="fireHazard" />
+        <result column="postal_code" property="postalCode" />
+        <result column="mailbox" property="mailbox" />
+        <result column="link_person" property="linkPerson" />
+        <result column="link_phone" property="linkPhone" />
+        <result column="company_fax" property="companyFax" />
+        <result column="economic_ownership" property="economicOwnership" />
+        <result column="found_time" property="foundTime" />
+        <result column="upper_name" property="upperName" />
+        <result column="company_grade" property="companyGrade" />
+        <result column="company_nature" property="companyNature" />
+        <result column="administrative_division" property="administrativeDivision" />
+        <result column="division_name" property="divisionName" />
+        <result column="fire_jurisdiction" property="fireJurisdiction" />
+        <result column="detachment_id" property="detachmentId" />
+        <result column="enable" property="enable" />
+        <result column="creator_name" property="creatorName" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+        <result column="update_person_name" property="updatePersonName" />
+        <result column="update_person_ip" property="updatePersonIp" />
+        <result column="update_person" property="updatePerson" />
+        <result column="update_time" property="updateTime" />
+    </resultMap>
+
+</mapper>

+ 31 - 0
service-fire/service-fire-biz/src/main/resources/mapper/fire/BaseDeviceAttributeMapper.xml

@@ -0,0 +1,31 @@
+<?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.BaseDeviceAttributeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.fire.domain.BaseDeviceAttribute">
+        <id column="id" property="id" />
+        <result column="device_code" property="deviceCode" />
+        <result column="device_id" property="deviceId" />
+        <result column="ports" property="ports" />
+        <result column="port_type" property="portType" />
+        <result column="system_type" property="systemType" />
+        <result column="level_type" property="levelType" />
+        <result column="high_level_name" property="highLevelName" />
+        <result column="low_level_name" property="lowLevelName" />
+        <result column="port_code" property="portCode" />
+        <result column="port_name" property="portName" />
+        <result column="analog_quantity_parameter" property="analogQuantityParameter" />
+        <result column="analog_alarm_upper" property="analogAlarmUpper" />
+        <result column="analog_alarm_lower" property="analogAlarmLower" />
+        <result column="range" property="range" />
+        <result column="range_upper" property="rangeUpper" />
+        <result column="range_lower" property="rangeLower" />
+        <result column="output" property="output" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_person" property="updatePerson" />
+        <result column="creator" property="creator" />
+    </resultMap>
+
+</mapper>