lchao 1 vuosi sitten
vanhempi
commit
2931f296eb

+ 11 - 0
songhua-admin/src/main/java/com/songhua/web/controller/ship/CruiseShipMappingController.java

@@ -1,6 +1,9 @@
 package com.songhua.web.controller.ship;
 
 import java.util.List;
+import java.util.Map;
+
+import com.songhua.system.service.IBasicCruiseShipService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -29,6 +32,9 @@ public class CruiseShipMappingController extends BaseController
     @Autowired
     private ICruiseShipMappingService cruiseShipMappingService;
 
+    @Autowired
+    private IBasicCruiseShipService basicCruiseShipService;
+
     /**
      * 查询列表
      */
@@ -83,4 +89,9 @@ public class CruiseShipMappingController extends BaseController
     {
         return toAjax(cruiseShipMappingService.deleteCruiseShipMappingByIds(ids));
     }
+
+    @GetMapping("/shipRoute")
+    public List<Map<String, Object>> getCombinedCruiseData() {
+        return cruiseShipMappingService.getShipRouteData();
+    }
 }

+ 1 - 0
songhua-system/src/main/java/com/songhua/system/domain/CruiseShipMapping.java

@@ -22,4 +22,5 @@ public  class CruiseShipMapping extends BaseEntity {
     /** 游船时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date shipTime;
+    private String shipName;
 }

+ 4 - 0
songhua-system/src/main/java/com/songhua/system/mapper/CruiseShipMappingMapper.java

@@ -1,6 +1,8 @@
 package com.songhua.system.mapper;
 
 import java.util.List;
+
+import com.songhua.system.domain.BasicCruiseShip;
 import com.songhua.system.domain.CruiseShipMapping;
 
 /**
@@ -40,4 +42,6 @@ public interface CruiseShipMappingMapper
      * 批量删除
      */
     public int deleteCruiseShipMappingByIds(String[] ids);
+
+    List<CruiseShipMapping> getShipRouteData();
 }

+ 8 - 0
songhua-system/src/main/java/com/songhua/system/service/ICruiseShipMappingService.java

@@ -1,7 +1,12 @@
 package com.songhua.system.service;
 
+import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Map;
+
+import com.songhua.system.domain.BasicCruiseShip;
 import com.songhua.system.domain.CruiseShipMapping;
+import io.lettuce.core.dynamic.annotation.Param;
 
 /**
  * Service接口
@@ -37,4 +42,7 @@ public interface ICruiseShipMappingService
      * 删除信息
      */
     public int deleteCruiseShipMappingById(String id);
+
+
+    List<Map<String, Object>> getShipRouteData();
 }

+ 31 - 1
songhua-system/src/main/java/com/songhua/system/service/impl/CruiseShipMappingServiceImpl.java

@@ -1,9 +1,12 @@
 package com.songhua.system.service.impl;
 
-import java.util.List;
+import java.time.LocalDateTime;
+import java.util.*;
 
 import com.songhua.common.utils.DateUtils;
 import com.songhua.common.utils.uuid.IdUtils;
+import com.songhua.system.domain.BasicCruiseShip;
+import com.songhua.system.mapper.BasicCruiseShipMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.songhua.system.mapper.CruiseShipMappingMapper;
@@ -19,6 +22,9 @@ public class CruiseShipMappingServiceImpl implements ICruiseShipMappingService
     @Autowired
     private CruiseShipMappingMapper cruiseShipMappingMapper;
 
+    @Autowired
+    private BasicCruiseShipMapper basicCruiseShipMapper;
+
     /**
      * 查询
      */
@@ -74,4 +80,28 @@ public class CruiseShipMappingServiceImpl implements ICruiseShipMappingService
     {
         return cruiseShipMappingMapper.deleteCruiseShipMappingById(id);
     }
+
+    private List<String> color = Arrays.asList("white", "ivory", "lightyellow", "yellow", "snow", "floralwhite","red","blue","orange","wheat","lightgreen");
+
+    @Override
+    public List<Map<String, Object>> getShipRouteData() {
+        List<Map<String, Object>> combinedData = new ArrayList<>();
+        // 获取近一小时的经纬度信息
+        List<CruiseShipMapping> recentLocations = cruiseShipMappingMapper.getShipRouteData();
+        for (int i = 0; i <  recentLocations.size(); i++) {
+            Map<String, Object> data = new HashMap<>();
+            String[] lon = recentLocations.get(i).getLongitude().split(",");
+            String[] lat = recentLocations.get(i).getLatitude().split(",");
+            for (int j = 0; j <  lon.length; j++) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("lng", lon[j]);
+                map.put("lat", lat[j]);
+                data.put("polylinePath",map);
+            }
+            data.put("color", color.get(i));
+            data.put("shipName", recentLocations.get(i).getShipName());
+            combinedData.add(data);
+        }
+        return combinedData;
+    }
 }

+ 11 - 0
songhua-system/src/main/resources/mapper/system/CruiseShipMappingMapper.xml

@@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectCruiseShipMappingVo"/>
         where id = #{id}
     </select>
+
         
     <insert id="insertCruiseShipMapping" parameterType="CruiseShipMapping">
         insert into cruise_ship_mapping
@@ -80,4 +81,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <select id="getShipRouteData" parameterType="CruiseShipMapping" resultMap="CruiseShipMappingResult">
+        SELECT b.ship_name shipName,
+               GROUP_CONCAT(a.longitude) longitude,
+               GROUP_CONCAT(a.latitude)  latitude
+        FROM basic_cruise_ship b
+                 left join cruise_ship_mapping a on b.id = a.ship_id
+        GROUP BY b.ship_name
+        ORDER BY a.ship_time DESC
+    </select>
 </mapper>