Browse Source

[refactor]#天奥

chenfangchao 2 years ago
parent
commit
ca66b637a6

+ 5 - 0
es-track-common/pom.xml

@@ -57,6 +57,11 @@
             <version>2.14.2</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.60</version>
+        </dependency>
 
     </dependencies>
 

+ 211 - 0
es-track-common/src/main/java/cn/com/taiji/entity/FusionBaseEntity.java

@@ -0,0 +1,211 @@
+package cn.com.taiji.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author chenfangchao
+ * @title: FusionBaseEntity
+ * @projectName es-track-analysis
+ * @description: TODO
+ * @date 2023/2/6 8:03 PM
+ */
+@Data
+public class FusionBaseEntity implements Serializable {
+    private static final long serialVersionUID = 9164079715828741429L;
+
+    /**
+     * 融合主键
+     **/
+    private String mergeId;
+
+    /**
+     * 融合时间
+     **/
+    private String mergeTime;
+
+    /**
+     * 融合目标唯一标识
+     **/
+    private String mergeTarget;
+
+    /**
+     * 国籍
+     **/
+    private String targetNationality;
+
+    /**
+     * 船舶类型
+     **/
+    private String targetShipType;
+
+    /**
+     * 融合目标名称(中文)
+     **/
+    private String targetName;
+
+    /**
+     * 融合目标名称(英文)
+     **/
+    private String targetNameEn;
+
+    /**
+     * 目标经度
+     **/
+    private Double targetLongitude;
+
+    /**
+     * 目标纬度
+     **/
+    private Double targetLatitude;
+
+    /**
+     * 目标航向
+     **/
+    private Double targetCourse;
+
+    /**
+     * 目标速度
+     **/
+    private Double targetSpeed;
+
+    /**
+     * 目标艏向
+     **/
+    private Double targetHeading;
+
+    /**
+     * 当前转向率
+     **/
+    private Double targetRot;
+
+    /**
+     * 当前最大吃水
+     **/
+    private Double targetDraught;
+
+    /**
+     * 目标状态
+     **/
+    private Integer targetState;
+
+    /**
+     * 目标分类
+     **/
+    private Integer targetType;
+
+    /**
+     * 目标长度
+     */
+    private String targetLength;
+
+    /**
+     * 目标(航迹)可信度
+     **/
+    private Integer targetTypeReliability;
+
+    /**
+     * 航迹状态
+     **/
+    private Integer targetTrackState;
+
+    /**
+     * 目标持续时长
+     **/
+    private Long targetTrackTime;
+
+    /**
+     * 融合关联子源信息(最新)
+     **/
+    private List<FusionNewShipJsonDTO> targetSource;
+
+
+    private String  targetSourceJson;
+
+
+    /**
+     * 在港状态
+     **/
+    private Integer portState;
+
+    /**
+     * 港口id
+     **/
+    private String portId;
+
+    /**
+     * 加油状态
+     **/
+    private Integer refueledState;
+
+    /**
+     * 加油区域id
+     **/
+    private String refueledAreaId;
+
+    /**
+     * 加冰/加水状态
+     **/
+    private Integer supplyIceWaterState;
+
+    /**
+     * 加冰/加水区域id
+     **/
+    private String supplyIceWaterAreaId;
+
+    /**
+     * 在航状态
+     **/
+    private Integer motionState;
+
+
+    /**
+     * 海兰信光电跟踪ID
+     */
+    private String targetMonitorId;
+
+    private String monitorId;
+
+    /**
+     * 地图筛选专用字段
+     */
+    private Integer gisNationality;
+
+
+    /**
+     * 地图筛选专用字段
+     */
+    private Integer gisShipType;
+
+
+    /**
+     * 轨迹设备编码
+     */
+    private String  trackDeviceNo;
+
+    /**
+     * 融合类型
+     */
+    private String mergeType;
+
+
+    private String sClass;
+
+
+    /** 是否被关注 0未关注 1已关注**/
+    private Integer focus = 0;
+
+    /** 是否为重点 0否 1是 **/
+    private Integer fokey = 0;
+
+    /** 关注颜色 **/
+    private String focusColor = "";
+
+    /** 用户id **/
+    private String focusUserId = "";
+
+    /** 位置 **/
+    private String location;
+}

+ 29 - 0
es-track-common/src/main/java/cn/com/taiji/entity/FusionNewShipJsonDTO.java

@@ -0,0 +1,29 @@
+package cn.com.taiji.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author chenfangchao
+ * @title: FusionNewShipJsonDTO
+ * @projectName ax-geomesa-redis
+ * @description: TODO
+ * @date 2022/11/15 6:44 PM
+ */
+@Data
+public class FusionNewShipJsonDTO implements Serializable {
+
+    private static final long serialVersionUID = -615399293072238261L;
+
+    private String sourceId;
+
+    private String type;
+
+    private String trackId;
+
+    private String trackDeviceNo;
+
+    private String sourceTime;
+
+}

fusion-analysis/src/main/java/cn/com/taiji/utils/DateUtils.java → es-track-common/src/main/java/cn/com/taiji/utils/DateUtils.java


+ 0 - 1
fusion-analysis/src/main/java/cn/com/taiji/service/impl/FusionAnalysisServiceImpl.java

@@ -22,7 +22,6 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms;
 import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
 import org.elasticsearch.search.aggregations.metrics.ParsedTopHits;
 import org.elasticsearch.search.builder.SearchSourceBuilder;
-import org.elasticsearch.search.sort.SortBuilder;
 import org.elasticsearch.search.sort.SortBuilders;
 import org.elasticsearch.search.sort.SortOrder;
 import org.springframework.beans.factory.annotation.Autowired;

+ 32 - 0
tianao-analysis/src/main/java/cn/com/taiji/controller/TianaoRadarController.java

@@ -0,0 +1,32 @@
+package cn.com.taiji.controller;
+
+import cn.com.taiji.entity.QueryVo;
+import cn.com.taiji.service.TianaoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author chenfangchao
+ * @title: TianaoRadarController
+ * @projectName es-track-analysis
+ * @description: TODO
+ * @date 2023/2/6 5:49 PM
+ */
+@RequestMapping("/tianao")
+@RestController
+public class TianaoRadarController {
+
+
+    @Autowired
+    private TianaoService tianaoService;
+
+    @PostMapping("/export")
+    public void tianaRader(@RequestBody QueryVo query){
+       List<TianaoService> list = tianaoService.tianaRader(query);
+    }
+}

+ 0 - 17
tianao-analysis/src/main/java/cn/com/taiji/dto/TianaoRadar.java

@@ -1,17 +0,0 @@
-package cn.com.taiji.dto;
-
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * @author chenfangchao
- * @title: TianaoRadar
- * @projectName es-track-analysis
- * @description: TODO
- * @date 2023/2/6 5:38 PM
- */
-@Data
-public class TianaoRadar implements Serializable {
-    private static final long serialVersionUID = -8434894021166439952L;
-}

+ 21 - 0
tianao-analysis/src/main/java/cn/com/taiji/entity/QueryVo.java

@@ -0,0 +1,21 @@
+package cn.com.taiji.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author chenfangchao
+ * @title: QueryVo
+ * @projectName es-track-analysis
+ * @description: TODO
+ * @date 2023/2/6 6:09 PM
+ */
+@Data
+public class QueryVo implements Serializable {
+    private static final long serialVersionUID = -2648592247382866257L;
+
+    private String startTime;
+
+    private String endTime;
+}

+ 36 - 0
tianao-analysis/src/main/java/cn/com/taiji/entity/TianaoRadar.java

@@ -0,0 +1,36 @@
+package cn.com.taiji.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author chenfangchao
+ * @title: TianaoRadar
+ * @projectName es-track-analysis
+ * @description: TODO
+ * @date 2023/2/6 5:38 PM
+ */
+@Data
+public class TianaoRadar implements Serializable {
+    private static final long serialVersionUID = -8434894021166439952L;
+    private String id;
+    private String shipId;
+    private String fusionTime;
+    private String location;
+    private String shiptracktime;
+    private String shipName;
+    private String fusionBatchNum;
+    private String altitude;
+    private String course;
+    private String longitude;
+    private String radarCode;
+    private String receiveTime;
+    private String reliability;
+    private String speed;
+    private String targetSize;
+    private String traceState;
+    private String collectTime;
+    private String shipTrack;
+    private String targetProper;
+}

+ 17 - 0
tianao-analysis/src/main/java/cn/com/taiji/service/TianaoService.java

@@ -0,0 +1,17 @@
+package cn.com.taiji.service;
+
+import cn.com.taiji.entity.QueryVo;
+
+import java.util.List;
+
+/**
+ * @author chenfangchao
+ * @title: TianaoService
+ * @projectName es-track-analysis
+ * @description: TODO
+ * @date 2023/2/6 5:53 PM
+ */
+public interface TianaoService {
+
+    List<TianaoService> tianaRader(QueryVo query);
+}

+ 65 - 0
tianao-analysis/src/main/java/cn/com/taiji/service/impl/TianaoServiceImpl.java

@@ -0,0 +1,65 @@
+package cn.com.taiji.service.impl;
+
+import cn.com.taiji.constants.EsIndexConstants;
+import cn.com.taiji.entity.QueryVo;
+import cn.com.taiji.entity.TianaoRadar;
+import cn.com.taiji.service.TianaoService;
+import cn.com.taiji.utils.DateUtils;
+import com.alibaba.fastjson.JSON;
+import org.elasticsearch.action.search.SearchRequest;
+import org.elasticsearch.action.search.SearchResponse;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.search.SearchHit;
+import org.elasticsearch.search.builder.SearchSourceBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author chenfangchao
+ * @title: TianaoServiceImpl
+ * @projectName es-track-analysis
+ * @description: TODO
+ * @date 2023/2/6 5:53 PM
+ */
+@Service
+public class TianaoServiceImpl implements TianaoService {
+
+    @Autowired
+    private RestHighLevelClient restHighLevelClient;
+
+    @Override
+    public List<TianaoService> tianaRader(QueryVo query) {
+        List<String> tianaoRadarIdList = new ArrayList<>();
+        String time = DateUtils.format(new Date(),"yyyy-MM-dd");
+        SearchRequest searchRequest = new SearchRequest(EsIndexConstants.INDEX_SEAT_TRACK_RADAR + time);
+        // 构建查询条件
+        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
+        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
+        boolQueryBuilder.filter(QueryBuilders.rangeQuery("mergeTime").gte(query.getStartTime()).lte(query.getEndTime()));
+        searchSourceBuilder.query(boolQueryBuilder);
+
+        searchRequest.source(searchSourceBuilder);
+        try {
+            SearchResponse search = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
+            SearchHit[] hits = search.getHits().getHits();
+            for (SearchHit hit : hits) {
+                String sourceAsString = hit.getSourceAsString();
+                TianaoRadar object= JSON.parseObject(sourceAsString,TianaoRadar.class);
+                tianaoRadarIdList.add(object.getRadarCode());
+            }
+
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}