Explorar el Código

增加事件状态统计和事件列表

fuyuhchuan hace 1 año
padre
commit
29be68c7bb
Se han modificado 26 ficheros con 1162 adiciones y 13 borrados
  1. 2 2
      service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/MybatisGeneratorUtils.java
  2. 62 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/web/SpHj2017Controller.java
  3. 0 6
      service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/web/SpProjectConfigController.java
  4. 20 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/web/SpRtu2017Controller.java
  5. 19 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/web/SpSj2017Controller.java
  6. 142 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/domain/SpHj2017.java
  7. 122 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/domain/SpRtu2017.java
  8. 122 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/domain/SpSj2017.java
  9. 18 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/mapper/SpHj2017Mapper.java
  10. 2 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/mapper/SpProjectConfigMapper.java
  11. 18 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/mapper/SpRtu2017Mapper.java
  12. 18 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/mapper/SpSj2017Mapper.java
  13. 21 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/SpHj2017Service.java
  14. 21 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/SpRtu2017Service.java
  15. 21 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/SpSj2017Service.java
  16. 96 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/SpHj2017ServiceImpl.java
  17. 2 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/SpProjectConfigServiceImpl.java
  18. 101 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/SpRtu2017ServiceImpl.java
  19. 94 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/SpSj2017ServiceImpl.java
  20. 41 5
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/YtDeviceStatusServiceImpl.java
  21. 42 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/vo/SpHj2017RequestVO.java
  22. 42 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/vo/SpRtu2017RequestVO.java
  23. 43 0
      service-issue/service-issue-biz/src/main/java/com/usky/issue/service/vo/SpSj2017RequestVO.java
  24. 33 0
      service-issue/service-issue-biz/src/main/resources/mapper/issue/SpHj2017Mapper.xml
  25. 30 0
      service-issue/service-issue-biz/src/main/resources/mapper/issue/SpRtu2017Mapper.xml
  26. 30 0
      service-issue/service-issue-biz/src/main/resources/mapper/issue/SpSj2017Mapper.xml

+ 2 - 2
service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/MybatisGeneratorUtils.java

@@ -43,7 +43,7 @@ public class MybatisGeneratorUtils {
         //2、数据源配置
         //修改数据源
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://47.98.201.187:3306/UskyOw?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
+        dsc.setUrl("jdbc:mysql://47.98.201.187:3306/jdxf?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
         dsc.setDriverName("com.mysql.jdbc.Driver");
         dsc.setUsername("fuYuChuan");
         dsc.setPassword("fuYuChuan@123");
@@ -71,7 +71,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("yt_device_status");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude(new String[]{"sp_rtu2017", "sp_sj2017"});  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 62 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/web/SpHj2017Controller.java

@@ -0,0 +1,62 @@
+package com.usky.issue.controller.web;
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.issue.annotation.CheckSign;
+import com.usky.issue.service.SpHj2017Service;
+import com.usky.issue.service.SpRtu2017Service;
+import com.usky.issue.service.SpSj2017Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@RestController
+@RequestMapping("/spHj2017")
+public class SpHj2017Controller {
+    @Autowired
+    private SpHj2017Service spHj2017Service;
+    @Autowired
+    private SpSj2017Service spSj2017Service;
+    @Autowired
+    private SpRtu2017Service spRtu2017Service;
+
+    @CheckSign
+    @PostMapping("eventList")
+    ApiResult<Map<String, Object>> eventList(@RequestBody String requestBody) {
+        Map<String, Object> resultMap = new HashMap<>();
+        resultMap.put("firaAlarm", spHj2017Service.statusCount(requestBody));
+        resultMap.put("waterAlarm", spSj2017Service.statusCount(requestBody));
+        resultMap.put("rtuAlarm", spRtu2017Service.statusCount(requestBody));
+            return ApiResult.success(resultMap);
+    }
+
+    @CheckSign
+    @PostMapping("listCount")
+    ApiResult<Map<String, Object>> countList(@RequestBody String requestBody) {
+        List<Map<String, Object>> typeList1 = spHj2017Service.typeList(requestBody);
+        Long untreatedCount1 = (Long) typeList1.get(0).get("untreated");
+        Long processedCount11 = (Long) typeList1.get(0).get("processed");
+        List<Map<String, Object>> typeList2 = spSj2017Service.typeList(requestBody);
+        Long untreatedCount2 = (Long) typeList2.get(0).get("untreated");
+        Long processedCount22 = (Long) typeList2.get(0).get("processed");
+        List<Map<String, Object>> typeList3 = spRtu2017Service.typeList(requestBody);
+        Long untreatedCount3 = (Long) typeList3.get(0).get("untreated");
+        Long processedCount33 = (Long) typeList3.get(0).get("processed");
+        Map<String, Object> resultMap = new HashMap<>();
+        resultMap.put("unprocess", untreatedCount1+untreatedCount2+untreatedCount3);
+        resultMap.put("processing",0);
+        resultMap.put("processed", processedCount11+processedCount22+processedCount33);
+            return ApiResult.success(resultMap);
+    }
+
+
+}
+

+ 0 - 6
service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/web/SpProjectConfigController.java

@@ -21,11 +21,5 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/spProjectConfig")
 public class SpProjectConfigController {
-    @Autowired
-    SpProjectConfigService spProjectConfigService;
-    @PostMapping("/getCompanyCode")
-    ApiResult<String> getCompanyCode(@RequestBody SpProjectConfigRequestVO requestVO) {
-        return ApiResult.success(spProjectConfigService.getCompanyCode(requestVO));
-    }
 
 }

+ 20 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/web/SpRtu2017Controller.java

@@ -0,0 +1,20 @@
+package com.usky.issue.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@RestController
+@RequestMapping("/spRtu2017")
+public class SpRtu2017Controller {
+
+}
+

+ 19 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/controller/web/SpSj2017Controller.java

@@ -0,0 +1,19 @@
+package com.usky.issue.controller.web;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * asf 前端控制器
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@RestController
+@RequestMapping("/spSj2017")
+public class SpSj2017Controller {
+
+}
+

+ 142 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/domain/SpHj2017.java

@@ -0,0 +1,142 @@
+package com.usky.issue.domain;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SpHj2017 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private String port;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime time;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 地址 ip
+     */
+    private String address;
+
+    /**
+     * 防火分区
+     */
+    private String compartment;
+
+    /**
+     * 火警流程
+     */
+    private String fireprocess;
+
+    private LocalDateTime flowendtime;
+
+    /**
+     * 命令码
+     */
+    private String ncmd;
+
+    /**
+     * 备用字段
+     */
+    private String data1;
+
+    /**
+     * 类型
+     */
+    private String data2;
+
+    /**
+     * 命令源码
+     */
+    private String data3;
+
+    /**
+     * 回路地址
+     */
+    private String data4;
+
+    /**
+     * 部件位置信息
+     */
+    private String data5;
+
+    /**
+     * 处理类型
+     */
+    private String cllx;
+
+    /**
+     * 处理时间
+     */
+    private LocalDateTime clsj;
+
+    /**
+     * 处理人
+     */
+    private String clr;
+
+    /**
+     * 处理内容
+     */
+    private String clnr;
+
+    /**
+     * 处理误报(1 误报  0 非误报)
+     */
+    private String clwb;
+
+    /**
+     * 联系人
+     */
+    private String cllxr;
+
+    /**
+     * 联系电话
+     */
+    private String cldh;
+
+    /**
+     * 处理状态
+     */
+    private Integer clzt;
+
+    /**
+     * 视频地址
+     */
+    private String video;
+
+
+}

+ 122 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/domain/SpRtu2017.java

@@ -0,0 +1,122 @@
+package com.usky.issue.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SpRtu2017 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private String port;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime time;
+
+    /**
+     * 开关状态 1关闭(连接) 0开启(断开)
+     */
+    private String status;
+
+    /**
+     * 地址 ip
+     */
+    private String address;
+
+    /**
+     * 命令码
+     */
+    private String ncmd;
+
+    /**
+     * 备用字段
+     */
+    private String data1;
+
+    /**
+     * 状态
+     */
+    private String data2;
+
+    /**
+     * 备用字段
+     */
+    private String data3;
+
+    /**
+     * 名称
+     */
+    private String data4;
+
+    /**
+     * 备用字段
+     */
+    private String data5;
+
+    /**
+     * 处理时间
+     */
+    private LocalDateTime clsj;
+
+    /**
+     * 处理人
+     */
+    private String clr;
+
+    /**
+     * 处理内容
+     */
+    private String clnr;
+
+    private String clwb;
+
+    /**
+     * 联系人
+     */
+    private String cllxr;
+
+    /**
+     * 联系电话
+     */
+    private String cldh;
+
+    /**
+     * 处理状态
+     */
+    private Integer clzt;
+
+    private String cllx;
+
+    /**
+     * 视频地址
+     */
+    private String video;
+
+
+}

+ 122 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/domain/SpSj2017.java

@@ -0,0 +1,122 @@
+package com.usky.issue.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * asf
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SpSj2017 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private String port;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime time;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 地址 ip
+     */
+    private String address;
+
+    /**
+     * 命令码
+     */
+    private String ncmd;
+
+    /**
+     * 报警类型0 正常 1 低压 2高压 3故障 4离线
+     */
+    private String data1;
+
+    /**
+     * 电池电量
+     */
+    private String data2;
+
+    /**
+     * 信号强度
+     */
+    private String data3;
+
+    /**
+     * 压力值 mpa
+     */
+    private String data4;
+
+    /**
+     * 物联网卡号
+     */
+    private String data5;
+
+    /**
+     * 联系人
+     */
+    private String cllxr;
+
+    /**
+     * 处理时间
+     */
+    private LocalDateTime clsj;
+
+    /**
+     * 处理人
+     */
+    private String clr;
+
+    /**
+     * 处理内容
+     */
+    private String clnr;
+
+    private String clwb;
+
+    /**
+     * 联系电话
+     */
+    private String cldh;
+
+    /**
+     * 处理状态
+     */
+    private Integer clzt;
+
+    private String cllx;
+
+    /**
+     * 视频地址
+     */
+    private String video;
+
+
+}

+ 18 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/mapper/SpHj2017Mapper.java

@@ -0,0 +1,18 @@
+package com.usky.issue.mapper;
+
+import com.usky.issue.domain.SpHj2017;
+import com.usky.common.mybatis.core.CrudMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@Repository
+public interface SpHj2017Mapper extends CrudMapper<SpHj2017> {
+
+}

+ 2 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/mapper/SpProjectConfigMapper.java

@@ -1,5 +1,6 @@
 package com.usky.issue.mapper;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.usky.issue.domain.SpProjectConfig;
 import com.usky.common.mybatis.core.CrudMapper;
 import org.apache.ibatis.annotations.Param;
@@ -13,6 +14,7 @@ import org.springframework.stereotype.Repository;
  * @author fu
  * @since 2023-12-11
  */
+@DS("UskyOw")
 @Repository
 public interface SpProjectConfigMapper extends CrudMapper<SpProjectConfig> {
     String getCompanyCode(@Param("appKey") String appKey);

+ 18 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/mapper/SpRtu2017Mapper.java

@@ -0,0 +1,18 @@
+package com.usky.issue.mapper;
+
+import com.usky.issue.domain.SpRtu2017;
+import com.usky.common.mybatis.core.CrudMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@Repository
+public interface SpRtu2017Mapper extends CrudMapper<SpRtu2017> {
+
+}

+ 18 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/mapper/SpSj2017Mapper.java

@@ -0,0 +1,18 @@
+package com.usky.issue.mapper;
+
+import com.usky.issue.domain.SpSj2017;
+import com.usky.common.mybatis.core.CrudMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ * asf Mapper 接口
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@Repository
+public interface SpSj2017Mapper extends CrudMapper<SpSj2017> {
+
+}

+ 21 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/SpHj2017Service.java

@@ -0,0 +1,21 @@
+package com.usky.issue.service;
+
+import com.usky.issue.domain.SpHj2017;
+import com.usky.common.mybatis.core.CrudService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+public interface SpHj2017Service extends CrudService<SpHj2017> {
+    List<Map<String, Object>> statusCount(String requestBody);
+    List<Map<String, Object>> typeList(String requestBody);
+    Map<String, Object> countDevice (String requestBody);
+}

+ 21 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/SpRtu2017Service.java

@@ -0,0 +1,21 @@
+package com.usky.issue.service;
+
+import com.usky.issue.domain.SpRtu2017;
+import com.usky.common.mybatis.core.CrudService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+public interface SpRtu2017Service extends CrudService<SpRtu2017> {
+    List<Map<String, Object>> statusCount(String requestBody);
+    List<Map<String, Object>> typeList(String requestBody);
+    Map<String, Object> countDevice (String requestBody);
+}

+ 21 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/SpSj2017Service.java

@@ -0,0 +1,21 @@
+package com.usky.issue.service;
+
+import com.usky.issue.domain.SpSj2017;
+import com.usky.common.mybatis.core.CrudService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * asf 服务类
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+public interface SpSj2017Service extends CrudService<SpSj2017> {
+    List<Map<String, Object>> statusCount(String requestBody);
+    List<Map<String, Object>> typeList(String deviceCode);
+    Map<String, Object> countDevice(String requestBody);
+}

+ 96 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/SpHj2017ServiceImpl.java

@@ -0,0 +1,96 @@
+package com.usky.issue.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+import com.usky.common.core.exception.BusinessException;
+import com.usky.issue.domain.SpHj2017;
+import com.usky.issue.mapper.SpHj2017Mapper;
+import com.usky.issue.service.SpHj2017Service;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@Service
+public class SpHj2017ServiceImpl extends AbstractCrudService<SpHj2017Mapper, SpHj2017> implements SpHj2017Service {
+    @Override
+    public List<Map<String, Object>> statusCount(String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        String startTimeString = requestVO.get("startTime").toString();
+        String endTimeString = requestVO.get("endTime").toString();
+        Integer currentPage = (Integer) requestVO.get("current");
+        Integer pageSize = (Integer) requestVO.get("size");
+        int startIndex = (currentPage - 1) * pageSize;
+        QueryWrapper<SpHj2017> queryWrapper = Wrappers.query();
+        queryWrapper.select("DATE_FORMAT(time, '%Y-%m-%d %H:%i:%s') AS alarm_time", "data2 AS alarm_type", "data4 AS alarm_point", "device_code")
+                .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "' AND dwtype IN (1,3)");
+        if (StringUtils.isBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+        }else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isNotBlank(endTimeString)) {
+            // 如果同时传了 startTime 和 endTime
+            queryWrapper.between("time", startTimeString, endTimeString);
+        } else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+            // 如果只传了 startTime
+            queryWrapper.between("time", startTimeString, LocalDateTime.now().toString());
+        } else if (StringUtils.isNotBlank(endTimeString) && StringUtils.isBlank(startTimeString)) {
+            // 如果只传了 endTime
+            queryWrapper.le("time", endTimeString);
+        } else {
+            throw new BusinessException("时间参数错误");
+        }
+        queryWrapper.last("LIMIT " + pageSize + " OFFSET " + startIndex)
+                    .orderByDesc("id");
+        List<Map<String, Object>> deviceStatusList = this.listMaps(queryWrapper);
+
+        return deviceStatusList;
+    }
+
+    public List<Map<String, Object>> typeList(String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        String startTimeString = requestVO.get("startTime").toString();
+        String endTimeString = requestVO.get("endTime").toString();
+        QueryWrapper<SpHj2017> queryWrapper1 = Wrappers.query();
+        queryWrapper1.select("COUNT(CASE WHEN clzt = 0 THEN 1 ELSE NULL END) AS untreated", "COUNT(CASE WHEN clzt = 1 THEN 1 ELSE NULL END) AS processed")
+                .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
+        if (StringUtils.isBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+
+        }else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isNotBlank(endTimeString)) {
+            // 如果同时传了 startTime 和 endTime
+            queryWrapper1.between("time", startTimeString, endTimeString);
+        } else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+            // 如果只传了 startTime
+            queryWrapper1.between("time", startTimeString, LocalDateTime.now().toString());
+        } else if (StringUtils.isNotBlank(endTimeString)  && StringUtils.isBlank(startTimeString)) {
+            // 如果只传了 endTime
+            queryWrapper1.le("time", endTimeString);
+        } else {
+            throw new BusinessException("时间参数错误");
+        }
+        List<Map<String, Object>> deviceStatusList1 = this.listMaps(queryWrapper1);
+        return deviceStatusList1;
+    }
+    public Map<String, Object> countDevice (String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        QueryWrapper<SpHj2017> queryWrapper2 = Wrappers.query();
+        queryWrapper2.select("COUNT(DISTINCT  device_code) AS alarmDeviceCountHj")
+                .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
+        Map<String, Object> deviceStatusMap = this.getMap(queryWrapper2);
+        return deviceStatusMap;
+    }
+
+}

+ 2 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/SpProjectConfigServiceImpl.java

@@ -1,5 +1,6 @@
 package com.usky.issue.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.usky.issue.domain.SpProjectConfig;
 import com.usky.issue.mapper.SpProjectConfigMapper;
 import com.usky.issue.service.SpProjectConfigService;
@@ -16,6 +17,7 @@ import org.springframework.stereotype.Service;
  * @author fu
  * @since 2023-12-11
  */
+@DS("UskyOw")
 @Service
 public class SpProjectConfigServiceImpl extends AbstractCrudService<SpProjectConfigMapper, SpProjectConfig> implements SpProjectConfigService {
     @Autowired

+ 101 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/SpRtu2017ServiceImpl.java

@@ -0,0 +1,101 @@
+package com.usky.issue.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+import com.usky.common.core.exception.BusinessException;
+import com.usky.issue.domain.SpHj2017;
+import com.usky.issue.domain.SpRtu2017;
+import com.usky.issue.mapper.SpRtu2017Mapper;
+import com.usky.issue.service.SpRtu2017Service;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@Service
+public class SpRtu2017ServiceImpl extends AbstractCrudService<SpRtu2017Mapper, SpRtu2017> implements SpRtu2017Service {
+
+    @Override
+    public List<Map<String, Object>> statusCount(String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        String startTimeString = requestVO.get("startTime").toString();
+        String endTimeString = requestVO.get("endTime").toString();
+        Integer currentPage = (Integer) requestVO.get("current");
+        Integer pageSize = (Integer) requestVO.get("size");
+        int startIndex = (currentPage - 1) * pageSize;
+        QueryWrapper<SpRtu2017> queryWrapper = Wrappers.query();
+        queryWrapper.select("DATE_FORMAT(time, '%Y-%m-%d %H:%i:%s') AS alarm_time", "data2 AS alarm_type", "data4 AS alarm_point", "device_code")
+                    .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
+        if (StringUtils.isBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+
+        }else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isNotBlank(endTimeString)) {
+            // 如果同时传了 startTime 和 endTime
+            queryWrapper.between("time", startTimeString, endTimeString);
+        } else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+            // 如果只传了 startTime
+            queryWrapper.between("time", startTimeString,LocalDateTime.now().toString());
+        } else if (StringUtils.isNotBlank(endTimeString) && StringUtils.isBlank(startTimeString)) {
+            // 如果只传了 endTime
+            queryWrapper.le("time", endTimeString);
+        } else {
+            throw new BusinessException("时间参数错误");
+        }
+        queryWrapper.last("LIMIT " + pageSize + " OFFSET " + startIndex)
+                    .orderByDesc("id");
+        List<Map<String, Object>> deviceStatusList = this.listMaps(queryWrapper);
+
+        return deviceStatusList;
+    }
+
+    public List<Map<String, Object>> typeList(String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        String startTimeString = requestVO.get("startTime").toString();
+        String endTimeString = requestVO.get("endTime").toString();
+        QueryWrapper<SpRtu2017> queryWrapper1 = Wrappers.query();
+        queryWrapper1.select("COUNT(CASE WHEN clzt = 0 THEN 1 ELSE NULL END) AS untreated", "COUNT(CASE WHEN clzt = 1 THEN 1 ELSE NULL END) AS processed")
+                .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
+        if (StringUtils.isBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+
+        }else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isNotBlank(endTimeString)) {
+            // 如果同时传了 startTime 和 endTime
+            queryWrapper1.between("time", startTimeString, endTimeString);
+        } else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+            // 如果只传了 startTime
+            queryWrapper1.between("time", startTimeString, LocalDateTime.now().toString());
+        } else if (StringUtils.isNotBlank(endTimeString)  && StringUtils.isBlank(startTimeString)) {
+            // 如果只传了 endTime
+            queryWrapper1.le("time", endTimeString);
+        } else {
+            throw new BusinessException("时间参数错误");
+        }
+        List<Map<String, Object>> deviceStatusList1 = this.listMaps(queryWrapper1);
+        return deviceStatusList1;
+    }
+
+    public Map<String, Object> countDevice (String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        QueryWrapper<SpRtu2017> queryWrapper2 = Wrappers.query();
+        queryWrapper2.select("COUNT(DISTINCT  device_code)AS alarmDeviceCountRtu")
+                .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'")
+                .groupBy("device_code");
+        Map<String, Object> deviceStatusMap = this.getMap(queryWrapper2);
+        return deviceStatusMap;
+    }
+}

+ 94 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/SpSj2017ServiceImpl.java

@@ -0,0 +1,94 @@
+package com.usky.issue.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.issue.domain.SpSj2017;
+import com.usky.issue.mapper.SpSj2017Mapper;
+import com.usky.issue.service.SpSj2017Service;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * asf 服务实现类
+ * </p>
+ *
+ * @author fu
+ * @since 2023-12-13
+ */
+@Service
+public class SpSj2017ServiceImpl extends AbstractCrudService<SpSj2017Mapper, SpSj2017> implements SpSj2017Service {
+    @Override
+    public List<Map<String, Object>> statusCount(String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        String startTimeString = requestVO.get("startTime").toString();
+        String endTimeString = requestVO.get("endTime").toString();
+        Integer currentPage = (Integer) requestVO.get("current");
+        Integer pageSize = (Integer) requestVO.get("size");
+        int startIndex = (currentPage - 1) * pageSize;
+        QueryWrapper<SpSj2017> queryWrapper = Wrappers.query();
+        queryWrapper.select("DATE_FORMAT(time, '%Y-%m-%d %H:%i:%s') AS alarm_time","data1 AS alarm_type","data4 AS alarm_point " ,"device_code")
+                .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
+        if (StringUtils.isBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+
+        }else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isNotBlank(endTimeString)) {
+            // 如果同时传了 startTime 和 endTime
+            queryWrapper.between("time", startTimeString, endTimeString);
+        } else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+            // 如果只传了 startTime
+            queryWrapper.between("time", startTimeString, LocalDateTime.now().toString());
+        } else if (StringUtils.isNotBlank(endTimeString)  && StringUtils.isBlank(startTimeString)) {
+            // 如果只传了 endTime
+            queryWrapper.le("time", endTimeString);
+        } else {
+            throw new BusinessException("时间参数错误");
+        }
+        queryWrapper.last("LIMIT " + pageSize + " OFFSET " + startIndex)
+                    .orderByDesc("id");
+        List<Map<String, Object>> deviceStatusList = this.listMaps(queryWrapper);
+        return deviceStatusList;
+    }
+
+    public List<Map<String, Object>> typeList(String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        String startTimeString = requestVO.get("startTime").toString();
+        String endTimeString = requestVO.get("endTime").toString();
+        QueryWrapper<SpSj2017> queryWrapper1 = Wrappers.query();
+        queryWrapper1.select("COUNT(CASE WHEN clzt = 0 THEN 1 ELSE NULL END) AS untreated", "COUNT(CASE WHEN clzt = 1 THEN 1 ELSE NULL END) AS processed")
+                .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
+        if (StringUtils.isBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+
+        }else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isNotBlank(endTimeString)) {
+            // 如果同时传了 startTime 和 endTime
+            queryWrapper1.between("time", startTimeString, endTimeString);
+        } else if (StringUtils.isNotBlank(startTimeString) && StringUtils.isBlank(endTimeString)) {
+            // 如果只传了 startTime
+            queryWrapper1.between("time", startTimeString, LocalDateTime.now().toString());
+        } else if (StringUtils.isNotBlank(endTimeString)  && StringUtils.isBlank(startTimeString)) {
+            // 如果只传了 endTime
+            queryWrapper1.le("time", endTimeString);
+        } else {
+            throw new BusinessException("时间参数错误");
+        }
+        List<Map<String, Object>> deviceStatusList1 = this.listMaps(queryWrapper1);
+        return deviceStatusList1;
+    }
+    public Map<String, Object> countDevice (String requestBody) {
+        JSONObject requestVO = JSONObject.parseObject(requestBody);
+        String companyCode = requestVO.get("companyCode").toString();
+        QueryWrapper<SpSj2017> queryWrapper2 = Wrappers.query();
+        queryWrapper2.select("COUNT(DISTINCT  device_code) AS alarmDeviceCountSj")
+                .inSql("device_code", "SELECT owner_code FROM sp_owner WHERE company = '" + companyCode + "'");
+        Map<String, Object> deviceStatusMap = this.getMap(queryWrapper2);
+        return deviceStatusMap;
+    }
+}

+ 41 - 5
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/impl/YtDeviceStatusServiceImpl.java

@@ -8,13 +8,15 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.issue.domain.YtDeviceStatus;
 import com.usky.issue.mapper.YtDeviceStatusMapper;
+import com.usky.issue.service.SpHj2017Service;
+import com.usky.issue.service.SpRtu2017Service;
+import com.usky.issue.service.SpSj2017Service;
 import com.usky.issue.service.YtDeviceStatusService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.issue.service.vo.YtDeviceStatusRequestVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -30,7 +32,16 @@ import java.util.stream.Collectors;
 public class YtDeviceStatusServiceImpl extends AbstractCrudService<YtDeviceStatusMapper, YtDeviceStatus> implements YtDeviceStatusService {
     @Autowired
     private YtDeviceStatusMapper ytDeviceStatusMapper;
+    @Autowired
+    private SpRtu2017Service spRtu2017Service;
+    @Autowired
+    private SpSj2017Service spSj2017Service;
+    @Autowired
+    private SpHj2017Service spHj2017Service;
 
+    /*
+    分页查询
+    */
     @Override
     public CommonPage<YtDeviceStatus> page(YtDeviceStatusRequestVO requestVO) {
 
@@ -62,6 +73,7 @@ public class YtDeviceStatusServiceImpl extends AbstractCrudService<YtDeviceStatu
         return new CommonPage<>(records, total, pageSize, pageCurrent);
     }
 
+
     /*
     导出离线数据查询结果
      */
@@ -70,19 +82,43 @@ public class YtDeviceStatusServiceImpl extends AbstractCrudService<YtDeviceStatu
         return ytDeviceStatusMapper.exportData();
     }
 
+
+    /*
+    告警设备数量统计
+    */
+
     /*
     根据传入单位编号查询所有设备信息
     */
     @Override
     public List<Map<String, Object>> deviceList(String requestBody) {
+
         JSONObject requestVO = JSONObject.parseObject(requestBody);
         String companyCode = requestVO.get("companyCode").toString();
         QueryWrapper<YtDeviceStatus> queryWrapper = Wrappers.query();
-        queryWrapper.select("device_type AS deviceType","COUNT(*) AS deviceTypeCounts","COUNT(difference < 48 OR " +
-                        "NULL) AS onlineCount","COUNT(difference >= 48 OR NULL) AS offlineCount")
-                .eq("company_code",companyCode)
+        queryWrapper.select("device_type AS deviceType", "COUNT(*) AS deviceTypeCounts", "COUNT(difference < 48 OR " +
+                "NULL) AS onlineCount", "COUNT(difference >= 48 OR NULL) AS offlineCount")
+                .eq("company_code", companyCode)
                 .groupBy("device_type");
-        List<Map<String, Object>> deviceStatusList = this.listMaps(queryWrapper);
+        List<Map<String, Object>> deviceStatusList = this.listMaps(queryWrapper);;
+
+        if (deviceStatusList == null) {
+            throw new BusinessException("暂无设备");
+        }
+
+        Map<String, Object> mapHj = spHj2017Service.countDevice(requestBody);
+        Map<String, Object> mapSj = spSj2017Service.countDevice(requestBody);
+        Map<String, Object> mapRtu = spRtu2017Service.countDevice(requestBody);
+        Long countHj = mapHj != null ? (Long) mapHj.get("alarmDeviceCountHj") : 0;
+        Long countSj = mapSj != null ? (Long) mapSj.get("alarmDeviceCountSj") : 0;
+        Long countRtu = mapRtu != null ? (Long) mapRtu.get("alarmDeviceCountRtu") : 0;
+        Long totalCount = countHj + countSj + countRtu;
+
+/*        // 将相加后的值存入 deviceStatusList 中
+        Map<String, Object> totalMap = new HashMap<>();
+        totalMap.put("alarmDeviceSum", totalCount);
+        deviceStatusList.add(totalMap);*/
+
         return deviceStatusList;
     }
 

+ 42 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/vo/SpHj2017RequestVO.java

@@ -0,0 +1,42 @@
+package com.usky.issue.service.vo;
+
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * @description:TODO
+ * @author: fu
+ * @create: 2023/11/23 15:58
+ */
+@Data
+public class SpHj2017RequestVO {
+
+    /**
+     * 单位编号
+     */
+    private String companyCode;
+
+    /**
+     * 页数
+     */
+    private Integer current;
+
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 开始时间
+     */
+    private SimpleDateFormat startTime = new SimpleDateFormat("yyyy-MM-dd   HH:mm:ss");
+
+    /**
+     * 结束时间
+     */
+    private SimpleDateFormat endTime = new SimpleDateFormat("yyyy-MM-dd   HH:mm:ss");
+
+
+}
+

+ 42 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/vo/SpRtu2017RequestVO.java

@@ -0,0 +1,42 @@
+package com.usky.issue.service.vo;
+
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * @description:TODO
+ * @author: fu
+ * @create: 2023/11/23 15:58
+ */
+@Data
+public class SpRtu2017RequestVO {
+
+    /**
+     * 单位编号
+     */
+    private String companyCode;
+
+    /**
+     * 页数
+     */
+    private Integer current;
+
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 开始时间
+     */
+    private SimpleDateFormat startTime = new SimpleDateFormat("yyyy-MM-dd   HH:mm:ss");
+
+    /**
+     * 结束时间
+     */
+    private SimpleDateFormat endTime = new SimpleDateFormat("yyyy-MM-dd   HH:mm:ss");
+
+
+}
+

+ 43 - 0
service-issue/service-issue-biz/src/main/java/com/usky/issue/service/vo/SpSj2017RequestVO.java

@@ -0,0 +1,43 @@
+package com.usky.issue.service.vo;
+
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+
+/**
+ * @description:TODO
+ * @author: fu
+ * @create: 2023/11/23 15:58
+ */
+@Data
+public class SpSj2017RequestVO {
+
+    /**
+     * 单位编号
+     */
+    private String companyCode;
+
+    /**
+     * 页数
+     */
+    private Integer current;
+
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 开始时间
+     */
+    private LocalDateTime startTime;
+
+    /**
+     * 结束时间
+     */
+    private LocalDateTime endTime;
+
+
+}
+

+ 33 - 0
service-issue/service-issue-biz/src/main/resources/mapper/issue/SpHj2017Mapper.xml

@@ -0,0 +1,33 @@
+<?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.issue.mapper.SpHj2017Mapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.issue.domain.SpHj2017">
+        <id column="id" property="id" />
+        <result column="port" property="port" />
+        <result column="device_code" property="deviceCode" />
+        <result column="time" property="time" />
+        <result column="status" property="status" />
+        <result column="address" property="address" />
+        <result column="compartment" property="compartment" />
+        <result column="fireprocess" property="fireprocess" />
+        <result column="flowendtime" property="flowendtime" />
+        <result column="ncmd" property="ncmd" />
+        <result column="data1" property="data1" />
+        <result column="data2" property="data2" />
+        <result column="data3" property="data3" />
+        <result column="data4" property="data4" />
+        <result column="data5" property="data5" />
+        <result column="cllx" property="cllx" />
+        <result column="clsj" property="clsj" />
+        <result column="clr" property="clr" />
+        <result column="clnr" property="clnr" />
+        <result column="clwb" property="clwb" />
+        <result column="cllxr" property="cllxr" />
+        <result column="cldh" property="cldh" />
+        <result column="clzt" property="clzt" />
+        <result column="video" property="video" />
+    </resultMap>
+
+</mapper>

+ 30 - 0
service-issue/service-issue-biz/src/main/resources/mapper/issue/SpRtu2017Mapper.xml

@@ -0,0 +1,30 @@
+<?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.issue.mapper.SpRtu2017Mapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.issue.domain.SpRtu2017">
+        <id column="id" property="id" />
+        <result column="port" property="port" />
+        <result column="device_code" property="deviceCode" />
+        <result column="time" property="time" />
+        <result column="status" property="status" />
+        <result column="address" property="address" />
+        <result column="ncmd" property="ncmd" />
+        <result column="data1" property="data1" />
+        <result column="data2" property="data2" />
+        <result column="data3" property="data3" />
+        <result column="data4" property="data4" />
+        <result column="data5" property="data5" />
+        <result column="clsj" property="clsj" />
+        <result column="clr" property="clr" />
+        <result column="clnr" property="clnr" />
+        <result column="clwb" property="clwb" />
+        <result column="cllxr" property="cllxr" />
+        <result column="cldh" property="cldh" />
+        <result column="clzt" property="clzt" />
+        <result column="cllx" property="cllx" />
+        <result column="video" property="video" />
+    </resultMap>
+
+</mapper>

+ 30 - 0
service-issue/service-issue-biz/src/main/resources/mapper/issue/SpSj2017Mapper.xml

@@ -0,0 +1,30 @@
+<?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.issue.mapper.SpSj2017Mapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.issue.domain.SpSj2017">
+        <id column="id" property="id" />
+        <result column="port" property="port" />
+        <result column="device_code" property="deviceCode" />
+        <result column="time" property="time" />
+        <result column="status" property="status" />
+        <result column="address" property="address" />
+        <result column="ncmd" property="ncmd" />
+        <result column="data1" property="data1" />
+        <result column="data2" property="data2" />
+        <result column="data3" property="data3" />
+        <result column="data4" property="data4" />
+        <result column="data5" property="data5" />
+        <result column="cllxr" property="cllxr" />
+        <result column="clsj" property="clsj" />
+        <result column="clr" property="clr" />
+        <result column="clnr" property="clnr" />
+        <result column="clwb" property="clwb" />
+        <result column="cldh" property="cldh" />
+        <result column="clzt" property="clzt" />
+        <result column="cllx" property="cllx" />
+        <result column="video" property="video" />
+    </resultMap>
+
+</mapper>