Browse Source

1.船舶报港信息接口范围查询
2.船舶历史轨迹接口

songzhengming 4 tháng trước cách đây
mục cha
commit
6ed1f1073e

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

@@ -198,8 +198,8 @@ public class BoatController extends CommonController {
    * @throws ParseException
    */
   @PostMapping("/getBoatPath")
-  public ReturnMsg getBoatPath(@RequestBody @Validated ObjectBodyVo vo)
-      throws ParseException {
+  //获取历史船舶轨迹
+  public ReturnMsg getBoatPath(@RequestBody @Validated ObjectBodyVo vo) {
     if (!checkDbKey(vo.getKey())) {
       return ReturnMsg.error(HttpStatus.BAD_REQUEST, "key值有误,请确认您输入的key值正确!");
     }

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

@@ -32,7 +32,7 @@ public interface CommonMapper {
   List<BoatReportInfoVo> selectBoatReportInfoList(@Param("reportId") String reportId,
       @Param("region") String area, @Param("district") String district,
       @Param("shipId") String shipId, @Param("startTime") String startTime,
-      @Param("endTime") String endTime, @Param("partition") String partition,
+      @Param("endTime") String endTime, @Param("partition") List<String> partition,
       @Param("reportNo") String reportNo);
 
     ShipInfoForShipLockVo selectBoatInfoByShipId(@Param("shipId") String shipId);

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

@@ -137,14 +137,34 @@ public class CommonServiceImpl implements CommonService {
     @Override
     public List<BoatReportInfoVo> selectBoatReportInfoList(ReportInfoRequest param)
             throws ParseException {
-        String startTime = param.getQueryDate() + " 00:00:00";
-        String endTime = param.getQueryDate() + " 23:59:59";
-        String partition = "SHIP_REPORT_" + DateUtils.dateToString(
-                DateUtils.stringToDate(param.getQueryDate(), DateUtils.DATE_FORMAT_10),
-                DateUtils.DATE_FORMAT_11);
+        String startTime = param.getDateTo() + " 00:00:00";
+        String endTime = param.getDateFrom() + " 23:59:59";
+//        String partition = "SHIP_REPORT_" + DateUtils.dateToString(
+//                DateUtils.stringToDate(param.getDateFrom(), DateUtils.DATE_FORMAT_10),
+//                DateUtils.DATE_FORMAT_11);
+
+        List<String> datesBetween = PollutantBoatWaterReq.getDatesBetween(
+                startTime,
+                endTime);
+
+        List<String> tableNameList = new ArrayList<>();
+        String partitionPrefix = "SHIP_REPORT_";
+        datesBetween.forEach(
+                x -> tableNameList.add("SHIP_REPORT " + "partition(" +
+                        partitionPrefix + x + ")" + " t"));
+        log.info("查询的表名为:{}", JSONObject.toJSONString(tableNameList));
+
+
         PageHelper.startPage(param.getPageIndex(), param.getPageSize());
-        return mapper.selectBoatReportInfoList(param.getReportId(), "",
-                param.getDistrict(), param.getShipId(), startTime, endTime, partition, param.getReportNo());
+        return mapper.selectBoatReportInfoList(
+                param.getReportId(),
+                "",
+                param.getDistrict(),
+                param.getShipId(),
+                startTime,
+                endTime,
+                tableNameList,
+                param.getReportNo());
     }
 
     @Override

+ 2 - 1
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/vo/request/ReportInfoRequest.java

@@ -12,6 +12,7 @@ public class ReportInfoRequest extends PageVo {
   String district;
   String reportId;
   String shipId;
-  String queryDate;
+  String dateFrom;
+  String dateTo;
   String reportNo;
 }

+ 7 - 2
ghjg-item-datashare-server/src/main/resources/mapper/CommonMapper.xml

@@ -243,7 +243,12 @@
     t.MMSI mmsi,
     t.BID_NAME bidName,
     t.MOBILE_PHONE mobilePhone
-    from GHJG_BASICS.c_cb_ship_eep_report_rec partition(${partition}) t
+      from
+      (
+      <foreach item="item" collection="tableNameList" separator="union">
+          select * from ${item}
+      </foreach>
+      ) t
     left join ghjg_basics.dict_district_port p on p.berthname = t.berth_name and p.valid = '有效'
     and p.lochus != '注销'
     where 1 = 1
@@ -351,7 +356,7 @@
   <select id="selectBoatPathFromMvwHistory" resultType="com.shanghaichengdi.ghjgitem.vo.BoatPathVo">
     select t.deviceid mmsi, t.VELOCITY,t.DIRECTION,t.LONGITUDE,t.LATITUDE,
            to_char(t.GPSTIME,'yyyy-mm-dd hh24:mi:ss') time
-    from GHJG_DYNAMIC.VW_GPSINFO_HISTORY t
+    from nhdt.gpsinfo_history t
     where t.deviceid = #{mmsi}
       and t.gpstime >= to_date(#{startTime}, 'yyyy-mm-dd hh24:mi:ss')
       and to_date(#{endTime}, 'yyyy-mm-dd hh24:mi:ss') >= t.gpstime