Kaynağa Gözat

获取至多100条船舶的实时定位信息

songzhengming 3 ay önce
ebeveyn
işleme
8febf18b82

+ 20 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/controller/BoatController.java

@@ -1,5 +1,6 @@
 package com.shanghaichengdi.ghjgitem.controller;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.shanghaichengdi.ghjgitem.constant.HttpStatus;
 import com.shanghaichengdi.ghjgitem.exception.EnumException;
@@ -52,6 +53,25 @@ public class BoatController extends CommonController {
     return ReturnMsg.success("获取成功", encodedData);
   }
 
+  @PostMapping("/getAisRealTimePoint")
+  public ReturnMsg getAisRealTimePoint(@RequestBody @Validated ObjectBodyVo vo) throws ParseException {
+    if (!checkDbKey(vo.getKey())) {
+      return ReturnMsg.error(HttpStatus.BAD_REQUEST, "key值有误,请确认您输入的key值正确!");
+    }
+    String paramJsonData = getParamJsonData(vo.getData());
+    JSONArray mmsiList = JSONArray.parseArray(paramJsonData);
+    if(mmsiList.size()>100){
+      throw new EnumException("查询条数不得超过100");
+    }
+    List<BoatAISVo> boatAISVoList = commonService.selectAisRealTimePointList(mmsiList);
+    ResultRes resultRes = ResultRes.encapsulationResult( boatAISVoList);
+    String jsonString = JSONObject.toJSONString(resultRes);
+    String encodedData = resultEncode(jsonString);
+    return ReturnMsg.success("获取成功", encodedData);
+  }
+
+
+
 
   @PostMapping("/getInfoList")
   public ReturnMsg getInfoList(@RequestBody @Validated ObjectBodyVo vo) {

+ 3 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/mapper/CommonMapper.java

@@ -1,5 +1,6 @@
 package com.shanghaichengdi.ghjgitem.mapper;
 
+import com.alibaba.fastjson.JSONArray;
 import com.shanghaichengdi.ghjgitem.vo.*;
 import com.shanghaichengdi.ghjgitem.vo.request.BoatAisRealTimeReq;
 import com.shanghaichengdi.ghjgitem.vo.request.ReportInfoRequest;
@@ -53,4 +54,6 @@ public interface CommonMapper {
   int getPdShipCountByShipId(@Param("shipId") String shipId);
 
   List<String> selectPdPortDrawPicture(PortDrawReq portDrawReq);
+
+  List<BoatAISVo> selectAisRealTimePointList(JSONArray mmsiList);
 }

+ 3 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/CommonService.java

@@ -1,5 +1,6 @@
 package com.shanghaichengdi.ghjgitem.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.shanghaichengdi.ghjgitem.vo.*;
 import com.shanghaichengdi.ghjgitem.vo.request.*;
 
@@ -44,4 +45,6 @@ public interface CommonService {
   boolean checkInportByShipId(String shipId);
 
     List<String> getPortDrawPicture(PortDrawReq portDrawReq);
+
+  List<BoatAISVo> selectAisRealTimePointList(JSONArray mmsiList);
 }

+ 9 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/impl/CommonServiceImpl.java

@@ -43,6 +43,13 @@ public class CommonServiceImpl implements CommonService {
         return mapper.selectAisRealTimeXYList(param);
     }
 
+
+    @Override
+    public List<BoatAISVo> selectAisRealTimePointList(JSONArray mmsiList) {
+        return mapper.selectAisRealTimePointList(mmsiList);
+
+    }
+
     @Override
     public String selectRecordOrDocNumber(SupervisionOrDocNumberReq param) {
         // 港航行业监管告知书编码规则为:区代码+年份+五位流水号。
@@ -385,4 +392,6 @@ public class CommonServiceImpl implements CommonService {
         }
         return pictures;
     }
+
+
 }

+ 12 - 0
ghjg-item-datashare-server/src/main/resources/mapper/CommonMapper.xml

@@ -440,4 +440,16 @@
             and p.CERTNUMBER = #{certNumber}
         </if>
     </select>
+    <select id="selectAisRealTimePointList" resultType="com.shanghaichengdi.ghjgitem.vo.BoatAISVo">
+        select k.DEVICEID,i.SHIP_NAME_CN BOATNAME,i.SHIP_NAME_EN
+        boatNameEn,i.SHIP_LENGTH,i.SHIP_BREADTH,i.SHIP_DEPTH,
+        k.VELOCITY,k.DIRECTION,k.GPSTIME,k.LATITUDE,k.LONGITUDE,k.mapx,k.mapy
+        from GHJG_DYNAMIC.VW_GPSINFO_REALTIME k
+        left join ghjg_basics.mvw_boat_info i on i.mmsi = k.DEVICEID
+        where i.mmsi in
+        <foreach item="item" collection="mmsiList" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        order by k.GPSTIME desc
+    </select>
 </mapper>