瀏覽代碼

Merge branch 'master' of http://git.xt.wenhq.top:8083/liwei19941102/cbwqpf

温红权 3 年之前
父節點
當前提交
0401193be3

+ 92 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GasCommonController.java

@@ -4,8 +4,12 @@ import cn.hutool.core.convert.Convert;
 import com.ruoyi.common.constant.ElasticConstants;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.framework.config.ElasticSearchClient;
+import com.ruoyi.system.domain.DeviceBo;
 import com.ruoyi.system.domain.IllegalInfo;
 import com.ruoyi.system.domain.SyncPost;
+import com.ruoyi.system.service.IAisDatabase;
+import com.ruoyi.system.service.IHeiYanService;
+import com.ruoyi.system.service.ISo2Service;
 import com.ruoyi.web.service.IGasCommonService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -38,6 +42,12 @@ public class GasCommonController {
     private IGasCommonService gasCommonService;
     @Autowired
     private ElasticSearchClient client;
+    @Autowired
+    private ISo2Service so2Service;
+    @Autowired
+    private IAisDatabase aisDatabase;
+    @Autowired
+    private IHeiYanService heiYanService;
 
     @PreAuthorize("@ss.hasPermi('system:gas:sync')")
     @PostMapping("/sync")
@@ -87,4 +97,86 @@ public class GasCommonController {
         return AjaxResult.success(Convert.toList(IllegalInfo.class, stringObjectMap.get("pageList")));
     }
 
+    @GetMapping("/queryDeviceList")
+    @ApiOperation("获取所有设备数据")
+    public AjaxResult queryDeviceList(@RequestParam(required = false) String monitor) {
+        List<DeviceBo> njsanq = new ArrayList<>();
+        List<DeviceBo> njsiq = new ArrayList<>();
+        List<DeviceBo> ry = new ArrayList<>();
+        List<DeviceBo> tz = new ArrayList<>();
+        List<DeviceBo> jy = new ArrayList<>();
+        List<DeviceBo> st = new ArrayList<>();
+        Map<String, Object> data = new HashMap<>();
+        List<DeviceBo> so2 = so2Service.queryDeviceList(monitor);
+        List<DeviceBo> ais = aisDatabase.queryDeviceList(monitor);
+        List<DeviceBo> heiyan = heiYanService.queryDeviceList(monitor);
+        for (DeviceBo deviceBo : so2) {
+            deviceBo.setOrgName(orgMap.get(deviceBo.getMonitorName()));
+            switch (deviceBo.getMonitorName()) {
+                case "南京三桥":
+                    njsanq.add(deviceBo);
+                case "南京四桥":
+                    njsiq.add(deviceBo);
+                case "润扬大桥":
+                    ry.add(deviceBo);
+                case "泰州大桥":
+                    tz.add(deviceBo);
+                case "江阴大桥":
+                    jy.add(deviceBo);
+                case "苏通大桥":
+                    st.add(deviceBo);
+            }
+        }
+        for (DeviceBo deviceBo : ais) {
+            deviceBo.setOrgName(orgMap.get(deviceBo.getMonitorName()));
+            switch (deviceBo.getMonitorName()) {
+                case "南京三桥":
+                    njsanq.add(deviceBo);
+                case "南京四桥":
+                    njsiq.add(deviceBo);
+                case "润扬大桥":
+                    ry.add(deviceBo);
+                case "泰州大桥":
+                    tz.add(deviceBo);
+                case "江阴大桥":
+                    jy.add(deviceBo);
+                case "苏通大桥":
+                    st.add(deviceBo);
+            }
+        }
+        for (DeviceBo deviceBo : heiyan) {
+            switch (deviceBo.getMonitorName()) {
+                case "南京三桥":
+                    njsanq.add(deviceBo);
+                case "南京四桥":
+                    njsiq.add(deviceBo);
+                case "润扬大桥":
+                    ry.add(deviceBo);
+                case "泰州大桥":
+                    tz.add(deviceBo);
+                case "江阴大桥":
+                    jy.add(deviceBo);
+                case "苏通大桥":
+                    st.add(deviceBo);
+            }
+        }
+        data.put("南京三桥", njsanq);
+        data.put("南京四桥", njsiq);
+        data.put("润扬大桥", ry);
+        data.put("泰州大桥", tz);
+        data.put("江阴大桥", jy);
+        data.put("苏通大桥", st);
+
+        return AjaxResult.success(data);
+    }
+
+    public final static Map<String, String> orgMap = new HashMap<String, String>() {{
+        put("南京三桥", "南京海事局");
+        put("南京四桥", "南京海事局");
+        put("润扬大桥", "扬州海事局");
+        put("泰州大桥", "泰州海事局");
+        put("江阴大桥", "江阴海事局");
+        put("苏通大桥", "常熟海事局");
+    }};
+
 }

+ 1 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/So2Controller.java

@@ -159,6 +159,7 @@ public class So2Controller extends BaseController {
         equalsCondition.put("dealResult", illegalShip.getDealResult());
         equalsCondition.put("fastResult", illegalShip.getFastResult());
         equalsCondition.put("uploadResult", illegalShip.getUploadResult());
+        equalsCondition.put("illegalType", illegalShip.getIllegalType());
         equalsCondition.put("monitorPointName", illegalShip.getMonitorPointName());
         // 组装范围查询条件
         Map<String, Object> rangeCondition = new HashMap<>();

+ 14 - 11
ruoyi-admin/src/main/resources/application-prod.yml

@@ -6,30 +6,30 @@ spring:
     druid:
       # 主库数据源
       master:
-        url: jdbc:mysql://200.200.19.126:3306/cbwqpf?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://198.17.188.51:3306/cbwqpf?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: root
+        password: cbwq!xintong
       # 从库数据源(嗅探)
       slaveais:
         # 从数据源开关/默认关闭
         enabled: true
-        url: jdbc:mysql://47.92.161.189:3306/ais_database?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: js_test
-        password: js123456
+        url: jdbc:mysql://198.17.188.51:3306/ais_database?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        username: root
+        password: cbwq!xintong
       # 从库数据源(光谱)
       slaveso2:
         # 从数据源开关/默认关闭
         enabled: true
-        url: jdbc:mysql://200.200.19.126:3306/so2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://198.17.188.51:3306/so2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: root
+        password: cbwq!xintong
       # 从库数据源(黑烟)
       slaveblack:
         # 从数据源开关/默认关闭
         enabled: true
-        url: jdbc:mysql://200.200.19.126:3306/heiyan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://198.17.188.51:3306/heiyan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: root
+        password: cbwq!xintong
       # 初始连接数
       initialSize: 5
       # 最小连接池数量
@@ -79,7 +79,7 @@ spring:
     # 数据库索引
     database: 0
     # 密码
-    password: xintong@cbwq
+    password: cbwq!xintong
     # 连接超时时间
     timeout: 10s
     lettuce:
@@ -95,7 +95,7 @@ spring:
 
 elasticsearch:
   port: 9200
-  ip: 212.129.138.23
+  ip: 198.17.188.51
   type: http  #访问方式
   numberOfReplicas: 2  #副本数
   numberOfShards: 5  #分片数
@@ -111,6 +111,9 @@ canal:
     - hostname: 127.0.0.1
       port: 11111
       destination: so2
+    - hostname: 127.0.0.1
+      port: 11111
+      destination: ais
 
 # Swagger配置
 swagger:

+ 43 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/DeviceBo.java

@@ -0,0 +1,43 @@
+package com.ruoyi.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 设备信息
+ *
+ * @author ruoyi
+ * @date 2021-08-24
+ */
+@Data
+public class DeviceBo {
+    private static final long serialVersionUID = 1L;
+
+    // 设备名称
+    private String name;
+
+    // 设备类型
+    private String deviceType;
+
+    // 监测点
+    private String monitorName;
+
+    // 状态
+    private String status;
+
+    // 机构
+    private String orgName;
+
+    // 经纬度
+    private String latilongti;
+
+    // 更新时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    // 子系统来源
+    private String source;
+
+}

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/AisDatabaseMapper.java

@@ -1,5 +1,8 @@
 package com.ruoyi.system.mapper;
 
+import com.ruoyi.system.domain.DeviceBo;
+import org.apache.ibatis.annotations.Param;
+
 import java.util.List;
 import java.util.Map;
 
@@ -13,4 +16,6 @@ public interface AisDatabaseMapper {
     List<Map<String, Object>> queryDeviceStatic();
 
     int queryDeviceCount();
+
+    List<DeviceBo> queryDeviceList(@Param("monitor") String monitor);
 }

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/HeiYanMapper.java

@@ -1,5 +1,8 @@
 package com.ruoyi.system.mapper;
 
+import com.ruoyi.system.domain.DeviceBo;
+import org.apache.ibatis.annotations.Param;
+
 import java.util.List;
 import java.util.Map;
 
@@ -13,4 +16,6 @@ public interface HeiYanMapper {
     List<Map<String, Object>> queryDeviceStatic();
 
     int queryDeviceCount();
+
+    List<DeviceBo> queryDeviceList(@Param("monitor") String monitor);
 }

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/So2Mapper.java

@@ -1,5 +1,8 @@
 package com.ruoyi.system.mapper;
 
+import com.ruoyi.system.domain.DeviceBo;
+import org.apache.ibatis.annotations.Param;
+
 import java.util.List;
 import java.util.Map;
 
@@ -13,4 +16,6 @@ public interface So2Mapper {
     List<Map<String, Object>> queryDeviceStatic();
 
     int queryDeviceCount();
+
+    List<DeviceBo> queryDeviceList(@Param("monitor") String monitor);
 }

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IAisDatabase.java

@@ -1,5 +1,7 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.system.domain.DeviceBo;
+
 import java.util.List;
 import java.util.Map;
 
@@ -13,4 +15,6 @@ public interface IAisDatabase {
     List<Map<String, Object>> queryDeviceStatic();
 
     int queryDeviceCount();
+
+    List<DeviceBo> queryDeviceList(String monitor);
 }

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IHeiYanService.java

@@ -1,5 +1,7 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.system.domain.DeviceBo;
+
 import java.util.List;
 import java.util.Map;
 
@@ -13,4 +15,6 @@ public interface IHeiYanService {
     List<Map<String, Object>> queryDeviceStatic();
 
     int queryDeviceCount();
+
+    List<DeviceBo> queryDeviceList(String monitor);
 }

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISo2Service.java

@@ -1,5 +1,7 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.system.domain.DeviceBo;
+
 import java.util.List;
 import java.util.Map;
 
@@ -13,4 +15,6 @@ public interface ISo2Service {
     List<Map<String, Object>> queryDeviceStatic();
 
     int queryDeviceCount();
+
+    List<DeviceBo> queryDeviceList(String monitor);
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AisDatabaseImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl;
 
 import com.ruoyi.common.annotation.DataSource;
 import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.system.domain.DeviceBo;
 import com.ruoyi.system.mapper.AisDatabaseMapper;
 import com.ruoyi.system.service.IAisDatabase;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,4 +33,9 @@ public class AisDatabaseImpl implements IAisDatabase {
     public int queryDeviceCount() {
         return aisDatabaseMapper.queryDeviceCount();
     }
+
+    @Override
+    public List<DeviceBo> queryDeviceList(String monitor) {
+        return aisDatabaseMapper.queryDeviceList(monitor);
+    }
 }

+ 6 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/HeiYanServiceImpl.java

@@ -2,9 +2,8 @@ package com.ruoyi.system.service.impl;
 
 import com.ruoyi.common.annotation.DataSource;
 import com.ruoyi.common.enums.DataSourceType;
-import com.ruoyi.system.mapper.AisDatabaseMapper;
+import com.ruoyi.system.domain.DeviceBo;
 import com.ruoyi.system.mapper.HeiYanMapper;
-import com.ruoyi.system.service.IAisDatabase;
 import com.ruoyi.system.service.IHeiYanService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -34,4 +33,9 @@ public class HeiYanServiceImpl implements IHeiYanService {
     public int queryDeviceCount() {
         return heiYanMapper.queryDeviceCount();
     }
+
+    @Override
+    public List<DeviceBo> queryDeviceList(String monitor) {
+        return heiYanMapper.queryDeviceList(monitor);
+    }
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/So2ServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl;
 
 import com.ruoyi.common.annotation.DataSource;
 import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.system.domain.DeviceBo;
 import com.ruoyi.system.mapper.So2Mapper;
 import com.ruoyi.system.service.ISo2Service;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,4 +33,9 @@ public class So2ServiceImpl implements ISo2Service {
     public int queryDeviceCount() {
         return so2Mapper.queryDeviceCount();
     }
+
+    @Override
+    public List<DeviceBo> queryDeviceList(String monitor) {
+        return so2Mapper.queryDeviceList(monitor);
+    }
 }

+ 15 - 0
ruoyi-system/src/main/resources/mapper/system/AisDatabaseMapper.xml

@@ -16,4 +16,19 @@
         from sem_instrument
         where Category is not null
     </select>
+
+    <select id="queryDeviceList" resultType="com.ruoyi.system.domain.DeviceBo">
+        select concat(Longitude, ',', Latitude) as latilongti,
+               Remark                           as name,
+               Category                         as monitorName,
+               case Status
+                   when 1 then '在线'
+                   when 0 then '离线'
+                   end                             status,
+               'ais'                            as deviceType,
+               now()                            as updateTime,
+               'ais'                            as source
+        from sem_instrument
+        where Category is not null
+    </select>
 </mapper>

+ 11 - 0
ruoyi-system/src/main/resources/mapper/system/HeiYanMapper.xml

@@ -14,4 +14,15 @@
         select count(1)
         from ship_snap_address
     </select>
+    <select id="queryDeviceList" resultType="com.ruoyi.system.domain.DeviceBo">
+        select updateTime,
+               concat(longitude, ',', latitude) as                                latilongti,
+               name,
+               snapPos                          as                                monitorName,
+               type                             as                                deviceType,
+               case status when 'ENABLED' then '在线' when 'DISABLED' then '离线' end status,
+               orgName,
+               'heiyan'                         as                                source
+        from ship_snap_address
+    </select>
 </mapper>

+ 24 - 2
ruoyi-system/src/main/resources/mapper/system/So2Mapper.xml

@@ -7,11 +7,33 @@
     <select id="queryDeviceStatic" resultType="java.util.Map">
         select t1.name point, count(d.id) count
         from monitor_point t1
-            left join device d on t1.id = d.monitor_point_id
+            left join device d
+        on t1.id = d.monitor_point_id
         group by t1.id;
     </select>
 
     <select id="queryDeviceCount" resultType="java.lang.Integer">
-        select count(1) from device
+        select count(1)
+        from device
+    </select>
+
+    <select id="queryDeviceList" resultType="com.ruoyi.system.domain.DeviceBo">
+        select d.name      as name,
+               case d.type
+                   when 0 then 'ais设备'
+                   when 1 then '遥测设备'
+                   when 2 then '气象站设备'
+                   end        deviceType,
+               t1.name        monitorName,
+               case online_status
+                   when 0 then '在线'
+                   when 1 then '离线'
+                   end        status,
+               ''          as latilongti,
+               update_time as updateTime,
+               'so2'       as source
+        from device d
+                 left join monitor_point t1
+                           on t1.id = d.monitor_point_id
     </select>
 </mapper>