Browse Source

提交俯瞰融合代码

liangjianf 2 years ago
parent
commit
f97b0c9281
20 changed files with 3118 additions and 0 deletions
  1. 126 0
      fk-analysis/pom.xml
  2. 13 0
      fk-analysis/src/main/java/cn/com/taiji/FkAnalysisApplication.java
  3. 91 0
      fk-analysis/src/main/java/cn/com/taiji/config/EsClientConfiguration.java
  4. 51 0
      fk-analysis/src/main/java/cn/com/taiji/constants/EsIndexConstants.java
  5. 18 0
      fk-analysis/src/main/java/cn/com/taiji/constants/LocationConstants.java
  6. 209 0
      fk-analysis/src/main/java/cn/com/taiji/controller/FusionAnalysisController.java
  7. 210 0
      fk-analysis/src/main/java/cn/com/taiji/domain/BeiDouOriginal.java
  8. 266 0
      fk-analysis/src/main/java/cn/com/taiji/domain/FuseOriginal.java
  9. 80 0
      fk-analysis/src/main/java/cn/com/taiji/domain/FusionData.java
  10. 38 0
      fk-analysis/src/main/java/cn/com/taiji/domain/FusionQuery.java
  11. 94 0
      fk-analysis/src/main/java/cn/com/taiji/domain/LeaveOutData.java
  12. 37 0
      fk-analysis/src/main/java/cn/com/taiji/domain/OriginalData.java
  13. 38 0
      fk-analysis/src/main/java/cn/com/taiji/domain/StaticOrDynamicData.java
  14. 40 0
      fk-analysis/src/main/java/cn/com/taiji/domain/TargetSource.java
  15. 163 0
      fk-analysis/src/main/java/cn/com/taiji/domain/TianAoOriginal.java
  16. 33 0
      fk-analysis/src/main/java/cn/com/taiji/domain/dto/LeaceOutDto.java
  17. 86 0
      fk-analysis/src/main/java/cn/com/taiji/service/FusionAnalysisService.java
  18. 1504 0
      fk-analysis/src/main/java/cn/com/taiji/service/impl/FusionAnalysisServiceImpl.java
  19. 7 0
      fk-analysis/src/main/resources/application-prod.yml
  20. 14 0
      fk-analysis/src/main/resources/application.yml

+ 126 - 0
fk-analysis/pom.xml

@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>es-track-analysis</artifactId>
+        <groupId>cn.com.taiji</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>fk-analysis</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <elasticsearch.version>7.16.2</elasticsearch.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <version>2.7.6</version>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.com.taiji</groupId>
+            <artifactId>es-track-common</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+
+        <!-- es -->
+        <dependency>
+            <groupId>org.elasticsearch</groupId>
+            <artifactId>elasticsearch</artifactId>
+            <version>${elasticsearch.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.elasticsearch.client</groupId>
+            <artifactId>elasticsearch-rest-client</artifactId>
+            <version>${elasticsearch.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.elasticsearch.client</groupId>
+            <artifactId>elasticsearch-rest-high-level-client</artifactId>
+            <version>${elasticsearch.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <version>2.14.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.14.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.16.18</version>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.60</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>2.2.8</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.0.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.0.3</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.1.1.RELEASE</version>
+                <configuration>
+                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>3.1.0</version>
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    <warName>${project.artifactId}</warName>
+                </configuration>
+            </plugin>
+        </plugins>
+        <finalName>${project.artifactId}</finalName>
+    </build>
+
+
+</project>

+ 13 - 0
fk-analysis/src/main/java/cn/com/taiji/FkAnalysisApplication.java

@@ -0,0 +1,13 @@
+package cn.com.taiji;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class FkAnalysisApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(FkAnalysisApplication.class, args);
+    }
+
+}

+ 91 - 0
fk-analysis/src/main/java/cn/com/taiji/config/EsClientConfiguration.java

@@ -0,0 +1,91 @@
+package cn.com.taiji.config;
+
+import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.elasticsearch.client.RestClient;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.util.StringUtils;
+
+/**
+ * @ClassNmae EsClientConfiguration
+ * @Description es连接类
+ * @Author suhh
+ * @Date2021/9/417:25
+ * @Version 1.0
+ **/
+@Configuration
+public class EsClientConfiguration {
+    @Value("${taiji.elasticsearch.rest.uris}")
+    private String[] esUris;
+    @Value("${taiji.elasticsearch.rest.connection-timeout}")
+    /**
+     * 连接超时时间
+     */
+    private int connectTimeOut;
+    @Value("${taiji.elasticsearch.rest.max-connection}")
+    /**
+     * 最大连接数
+     */
+    private int maxConnection;
+    @Value("${taiji.elasticsearch.rest.username}")
+    /**
+     *  用户名
+     */
+    private String userName;
+    @Value("${taiji.elasticsearch.rest.password}")
+    /**
+     * 密码
+     */
+    private String password;
+
+    @Bean
+    public RestHighLevelClient client() {
+
+        HttpHost[] httpHosts = new HttpHost[esUris.length];
+        //将地址转换为http主机数组,未配置端口则采用默认9200端口,配置了端口则用配置的端口
+        for (int i = 0; i < httpHosts.length; i++) {
+            if (!StringUtils.isEmpty(esUris[i])) {
+                if (esUris[i].contains(":")) {
+                    String[] uris = esUris[i].split(":");
+                    httpHosts[i] = new HttpHost(uris[0], Integer.parseInt(uris[1]), "http");
+                } else {
+                    httpHosts[i] = new HttpHost(esUris[i], 9200, "http");
+                }
+            }
+        }
+        //判断,如果未配置用户名,则进行无用户名密码连接,配置了用户名,则进行用户名密码连接
+        if (StringUtils.isEmpty(userName)) {
+            RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(httpHosts));
+            return client;
+        } else {
+
+            final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
+            credentialsProvider.setCredentials(AuthScope.ANY,
+                    //es账号密码
+                    new UsernamePasswordCredentials(userName, password));
+            RestHighLevelClient client = new RestHighLevelClient(
+                    RestClient.builder(httpHosts)
+                            .setHttpClientConfigCallback((httpClientBuilder) -> {
+                                httpClientBuilder.setMaxConnTotal(maxConnection);
+                                httpClientBuilder.disableAuthCaching();
+                                httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
+
+                                return httpClientBuilder;
+                            })
+                            .setRequestConfigCallback(builder -> {
+                                builder.setConnectTimeout(connectTimeOut);
+
+                                return builder;
+                            })
+
+            );
+            return client;
+        }
+    }
+}

+ 51 - 0
fk-analysis/src/main/java/cn/com/taiji/constants/EsIndexConstants.java

@@ -0,0 +1,51 @@
+package cn.com.taiji.constants;
+
+/**
+ * @author chenfangchao
+ * @title: EsIndexConstants
+ * @projectName es-track-analysis
+ * @description: TODO
+ * @date 2023/2/6 10:54 AM
+ */
+public class EsIndexConstants {
+
+    /**
+     * 融合
+     */
+    public static final String INDEX_SEAT_REALTIMETRAJECTORY = "index_seat_realtimetrajectory_";
+
+    /**
+     * 融合
+     */
+    public static final String INDEX_SEAT_REALTIMETRAJECTORY_TEST = "index_seat_realtimetrajectory_test_";
+
+    /**
+     * 北斗
+     */
+    public static final String INDEX_SEAT_TRACK_BEIDOU = "index_seat_beidou_dynamic_ship_track_";
+
+    /**
+     * AIS
+     */
+    public static final String INDEX_SEAT_TRACK_AIS = "index_seat_ztpt_dynamic_ais_ship_track_";
+
+    /**
+     * 海兰信一级融合
+     */
+    public static final String INDEX_SEAT_HLX_FUSION_SHIP = "index_seat_hlx_zww_dynamic_fusion_ship_";
+
+    /**
+     * 天奥雷达
+     */
+    public static final String INDEX_SEAT_TRACK_RADAR = "index_seat_tianao_radar_fusion_ship_track_";
+
+    /**
+     * 中远海雷达
+     */
+    public static final String INDEX_SEAT_TRACK_ZYH = "index_seat_zyh_radar_track_";
+
+    /**
+     * 俯瞰融合
+     */
+    public static final String INDEX_SEAT_FK_REALTIMETRAJECTORY = "index_seat_fk_realtimetrajectory_";
+}

+ 18 - 0
fk-analysis/src/main/java/cn/com/taiji/constants/LocationConstants.java

@@ -0,0 +1,18 @@
+package cn.com.taiji.constants;
+
+/**
+ * @author chenfangchao
+ * @title: EsIndexConstants
+ * @projectName es-track-analysis
+ * @description: TODO
+ * @date 2023/2/6 10:54 AM
+ */
+public class LocationConstants {
+
+    /**
+     * 洋浦
+     */
+    public static final double[] YANGPU = new double[]{109.07033238960271,19.842531706495574,109.06473430840771,19.61185223420995,109.3565839911198,19.62158055696702,109.32693576938398,19.853207289278206,109.31952371395002,19.85367054274283,109.07033238960271,19.842531706495574};
+    public static final double[] doubles = new double[]{109.05069874931793,19.75955316191097,109.20963772383247,19.811999020000147,109.35696654655628,19.782373115430687,109.33374624297481,19.66386949715284,109.09473725611036,19.617428889989903,109.05069874931793,19.75955316191097};
+
+}

+ 209 - 0
fk-analysis/src/main/java/cn/com/taiji/controller/FusionAnalysisController.java

@@ -0,0 +1,209 @@
+package cn.com.taiji.controller;
+
+import cn.com.taiji.domain.FusionQuery;
+import cn.com.taiji.service.FusionAnalysisService;
+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 javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.text.ParseException;
+
+/**
+ * @author xhl
+ * @date 2023/2/6
+ */
+@RequestMapping("/es/fusion/analysis")
+@RestController
+public class FusionAnalysisController {
+
+    @Resource
+    private FusionAnalysisService fusionAnalysisService;
+
+    /**
+     * 轨迹融合-航速航向异常波动-识别融合数据率波动问题
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/one")
+    public void fusionAnalysisExcelOne(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelOne(query,response);
+    }
+
+    /**
+     * 虚假外推数据-虚假推送问题
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/two")
+    public void fusionAnalysisExcelTwo(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelTwo(query,response);
+    }
+
+    /**
+     * 遗漏融合-天奥轨迹数据遗漏
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("/tianao/excel")
+    public void tianAoLeaveOutExcel(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.tianAoLeaveOutExcel(query,response);
+    }
+
+    /**
+     * 遗漏融合-北斗轨迹数据遗漏
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("/beidou/excel")
+    public void beiDouLeaveOutExcel(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.beiDouLeaveOutExcel(query,response);
+    }
+
+    /**
+     * 遗漏融合-海兰信1级融合轨迹数据遗漏
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("/hlxyjrh/excel")
+    public void hlxyjrhLeaveOutExcel(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.hlxyjrhLeaveOutExcel(query,response);
+    }
+
+    /**
+     * 错误融合-天奥静态数据与动态轨迹融合
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("/tianao/static/excel")
+    public void tianaoStaticOrDynamicLeaveOutExcel(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.tianaoStaticOrDynamicLeaveOutExcel(query,response);
+    }
+
+    /**
+     * 轨迹融合-航速航向异常波动-识别融合速度异常波动问题
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/three")
+    public void fusionAnalysisExcelThree(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelThree(query,response);
+    }
+
+    /**
+     * 轨迹融合-航速航向异常波动-识别融合航向异常波动问题
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/four")
+    public void fusionAnalysisExcelFour(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelFour(query,response);
+    }
+
+
+    /**
+     * 轨迹融合-导出融合原始数据统计
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/original/one")
+    public void fusionAnalysisExcelOriginalOne(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelOriginalOne(query,response);
+    }
+
+    /**
+     * 轨迹融合-导出北斗原始数据统计
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/original/two")
+    public void fusionAnalysisExcelOriginalTwo(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelOriginalTwo(query,response);
+    }
+
+    /**
+     * 轨迹融合-导出天奥原始数据统计
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/original/three")
+    public void fusionAnalysisExcelOriginalThree(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelOriginalThree(query,response);
+    }
+
+    /**
+     * 轨迹融合-导出融合原始数据
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/original/four")
+    public void fusionAnalysisExcelOriginalFour(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelOriginalFour(query,response);
+    }
+
+    /**
+     * 轨迹融合-导出北斗原始数据
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/original/beidou")
+    public void fusionAnalysisExcelOriginalFive(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelOriginalFive(query,response);
+    }
+
+    /**
+     * 轨迹融合-导出俯瞰原始数据
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/original/fk")
+    public void fusionAnalysisExcelOriginalFk(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelOriginalFk(query,response);
+    }
+
+    /**
+     * 轨迹融合-导出天奥原始数据
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    @PostMapping("excel/original/tianao")
+    public void fusionAnalysisExcelOriginalTianao(@RequestBody FusionQuery query, HttpServletResponse response) throws IOException, ParseException {
+        fusionAnalysisService.fusionAnalysisExcelOriginalTianao(query,response);
+    }
+
+
+
+}

+ 210 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/BeiDouOriginal.java

@@ -0,0 +1,210 @@
+package cn.com.taiji.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+/**
+ * @author xhl
+ */
+public class BeiDouOriginal {
+    @ExcelProperty(value = "gisShipUse")
+    private String gisShipUse;
+    @ExcelProperty(value = "latitude")
+    private String latitude;
+    @ExcelProperty(value = "isOnline")
+    private String isOnline;
+    @ExcelProperty(value = "devideNo")
+    private String devideNo;
+    @ExcelProperty(value = "shipName")
+    private String shipName;
+    @ExcelProperty(value = "speed")
+    private int speed;
+    @ExcelProperty(value = "shipLength")
+    private double shipLength;
+    @ExcelProperty(value = "texTure")
+    private String texTure;
+    @ExcelProperty(value = "shiptracktime")
+    private String shiptracktime;
+    @ExcelProperty(value = "course")
+    private String course;
+    @ExcelProperty(value = "jobWay")
+    private String jobWay;
+    @ExcelProperty(value = "jobType")
+    private String jobType;
+    @ExcelProperty(value = "shipId")
+    private String shipId;
+    @ExcelProperty(value = "longitude")
+    private String longitude;
+    @ExcelProperty(value = "locationTime")
+    private String locationTime;
+    @ExcelProperty(value = "gisShipPort")
+    private String gisShipPort;
+    @ExcelProperty(value = "electricity")
+    private String electricity;
+    @ExcelProperty(value = "shipWidth")
+    private String shipWidth;
+    @ExcelProperty(value = "gisShipMaterial")
+    private String gisShipMaterial;
+    @ExcelProperty(value = "sendTime")
+    private String sendTime;
+    @ExcelProperty(value = "shipMaterial")
+    private String shipMaterial;
+    @ExcelProperty(value = "shipTrack")
+    private String shipTrack;
+    @ExcelProperty(value = "locationid")
+    private String locationid;
+    @ExcelProperty(value = "shipType")
+    private String shipType;
+    @ExcelProperty(value = "location")
+    private String location;
+
+    public void setGisShipUse(String gisShipUse){
+        this.gisShipUse = gisShipUse;
+    }
+    public String getGisShipUse(){
+        return this.gisShipUse;
+    }
+    public void setLatitude(String latitude){
+        this.latitude = latitude;
+    }
+    public String getLatitude(){
+        return this.latitude;
+    }
+    public void setIsOnline(String isOnline){
+        this.isOnline = isOnline;
+    }
+    public String getIsOnline(){
+        return this.isOnline;
+    }
+    public void setDevideNo(String devideNo){
+        this.devideNo = devideNo;
+    }
+    public String getDevideNo(){
+        return this.devideNo;
+    }
+    public void setShipName(String shipName){
+        this.shipName = shipName;
+    }
+    public String getShipName(){
+        return this.shipName;
+    }
+    public void setSpeed(int speed){
+        this.speed = speed;
+    }
+    public int getSpeed(){
+        return this.speed;
+    }
+    public void setShipLength(double shipLength){
+        this.shipLength = shipLength;
+    }
+    public double getShipLength(){
+        return this.shipLength;
+    }
+    public void setTexTure(String texTure){
+        this.texTure = texTure;
+    }
+    public String getTexTure(){
+        return this.texTure;
+    }
+    public void setShiptracktime(String shiptracktime){
+        this.shiptracktime = shiptracktime;
+    }
+    public String getShiptracktime(){
+        return this.shiptracktime;
+    }
+    public void setCourse(String course){
+        this.course = course;
+    }
+    public String getCourse(){
+        return this.course;
+    }
+    public void setJobWay(String jobWay){
+        this.jobWay = jobWay;
+    }
+    public String getJobWay(){
+        return this.jobWay;
+    }
+    public void setJobType(String jobType){
+        this.jobType = jobType;
+    }
+    public String getJobType(){
+        return this.jobType;
+    }
+    public void setShipId(String shipId){
+        this.shipId = shipId;
+    }
+    public String getShipId(){
+        return this.shipId;
+    }
+    public void setLongitude(String longitude){
+        this.longitude = longitude;
+    }
+    public String getLongitude(){
+        return this.longitude;
+    }
+    public void setLocationTime(String locationTime){
+        this.locationTime = locationTime;
+    }
+    public String getLocationTime(){
+        return this.locationTime;
+    }
+    public void setGisShipPort(String gisShipPort){
+        this.gisShipPort = gisShipPort;
+    }
+    public String getGisShipPort(){
+        return this.gisShipPort;
+    }
+    public void setElectricity(String electricity){
+        this.electricity = electricity;
+    }
+    public String getElectricity(){
+        return this.electricity;
+    }
+    public void setShipWidth(String shipWidth){
+        this.shipWidth = shipWidth;
+    }
+    public String getShipWidth(){
+        return this.shipWidth;
+    }
+    public void setGisShipMaterial(String gisShipMaterial){
+        this.gisShipMaterial = gisShipMaterial;
+    }
+    public String getGisShipMaterial(){
+        return this.gisShipMaterial;
+    }
+    public void setSendTime(String sendTime){
+        this.sendTime = sendTime;
+    }
+    public String getSendTime(){
+        return this.sendTime;
+    }
+    public void setShipMaterial(String shipMaterial){
+        this.shipMaterial = shipMaterial;
+    }
+    public String getShipMaterial(){
+        return this.shipMaterial;
+    }
+    public void setShipTrack(String shipTrack){
+        this.shipTrack = shipTrack;
+    }
+    public String getShipTrack(){
+        return this.shipTrack;
+    }
+    public void setLocationid(String locationid){
+        this.locationid = locationid;
+    }
+    public String getLocationid(){
+        return this.locationid;
+    }
+    public void setShipType(String shipType){
+        this.shipType = shipType;
+    }
+    public String getShipType(){
+        return this.shipType;
+    }
+    public void setLocation(String location){
+        this.location = location;
+    }
+    public String getLocation(){
+        return this.location;
+    }
+}

+ 266 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/FuseOriginal.java

@@ -0,0 +1,266 @@
+package cn.com.taiji.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+/**
+ * @author xhl
+ */
+public class FuseOriginal {
+    @ExcelProperty(value = "targetName")
+    private String targetName;
+    @ExcelProperty(value = "supplyIceWaterAreaId")
+    private String supplyIceWaterAreaId;
+    @ExcelProperty(value = "portState")
+    private String portState;
+    @ExcelProperty(value = "targetHeading")
+    private String targetHeading;
+    @ExcelProperty(value = "portId")
+    private String portId;
+    @ExcelProperty(value = "mergeTarget")
+    private String mergeTarget;
+    @ExcelProperty(value = "targetTrackState")
+    private String targetTrackState;
+    @ExcelProperty(value = "targetShipType")
+    private String targetShipType;
+    @ExcelProperty(value = "targetSource")
+    private String targetSource;
+    @ExcelProperty(value = "gisNationality")
+    private String gisNationality;
+    @ExcelProperty(value = "targetState")
+    private String targetState;
+    @ExcelProperty(value = "targetLength")
+    private int targetLength;
+    @ExcelProperty(value = "targetTrackTime")
+    private String targetTrackTime;
+    @ExcelProperty(value = "motionState")
+    private String motionState;
+    @ExcelProperty(value = "mergeTime")
+    private String mergeTime;
+    @ExcelProperty(value = "targetSpeed")
+    private double targetSpeed;
+    @ExcelProperty(value = "mergeId")
+    private String mergeId;
+    @ExcelProperty(value = "targetRot")
+    private String targetRot;
+    @ExcelProperty(value = "mergeType")
+    private String mergeType;
+    @ExcelProperty(value = "targetType")
+    private String targetType;
+    @ExcelProperty(value = "gisShipType")
+    private String gisShipType;
+    @ExcelProperty(value = "supplyIceWaterState")
+    private String supplyIceWaterState;
+    @ExcelProperty(value = "refueledAreaId")
+    private String refueledAreaId;
+    @ExcelProperty(value = "targetNameEn")
+    private String targetNameEn;
+    @ExcelProperty(value = "refueledState")
+    private String refueledState;
+    @ExcelProperty(value = "targetMonitorId")
+    private String targetMonitorId;
+    @ExcelProperty(value = "targetDraught")
+    private String targetDraught;
+    @ExcelProperty(value = "trackDeviceNo")
+    private String trackDeviceNo;
+    @ExcelProperty(value = "targetCourse")
+    private String targetCourse;
+    @ExcelProperty(value = "targetNationality")
+    private String targetNationality;
+    @ExcelProperty(value = "location")
+    private String location;
+    @ExcelProperty(value = "targetTypeReliability")
+    private int targetTypeReliability;
+
+    public void setTargetName(String targetName){
+        this.targetName = targetName;
+    }
+    public String getTargetName(){
+        return this.targetName;
+    }
+    public void setSupplyIceWaterAreaId(String supplyIceWaterAreaId){
+        this.supplyIceWaterAreaId = supplyIceWaterAreaId;
+    }
+    public String getSupplyIceWaterAreaId(){
+        return this.supplyIceWaterAreaId;
+    }
+    public void setPortState(String portState){
+        this.portState = portState;
+    }
+    public String getPortState(){
+        return this.portState;
+    }
+    public void setTargetHeading(String targetHeading){
+        this.targetHeading = targetHeading;
+    }
+    public String getTargetHeading(){
+        return this.targetHeading;
+    }
+    public void setPortId(String portId){
+        this.portId = portId;
+    }
+    public String getPortId(){
+        return this.portId;
+    }
+    public void setMergeTarget(String mergeTarget){
+        this.mergeTarget = mergeTarget;
+    }
+    public String getMergeTarget(){
+        return this.mergeTarget;
+    }
+    public void setTargetTrackState(String targetTrackState){
+        this.targetTrackState = targetTrackState;
+    }
+    public String getTargetTrackState(){
+        return this.targetTrackState;
+    }
+    public void setTargetShipType(String targetShipType){
+        this.targetShipType = targetShipType;
+    }
+    public String getTargetShipType(){
+        return this.targetShipType;
+    }
+    public void setTargetSource(String targetSource){
+        this.targetSource = targetSource;
+    }
+    public String getTargetSource(){
+        return this.targetSource;
+    }
+    public void setGisNationality(String gisNationality){
+        this.gisNationality = gisNationality;
+    }
+    public String getGisNationality(){
+        return this.gisNationality;
+    }
+    public void setTargetState(String targetState){
+        this.targetState = targetState;
+    }
+    public String getTargetState(){
+        return this.targetState;
+    }
+    public void setTargetLength(int targetLength){
+        this.targetLength = targetLength;
+    }
+    public int getTargetLength(){
+        return this.targetLength;
+    }
+    public void setTargetTrackTime(String targetTrackTime){
+        this.targetTrackTime = targetTrackTime;
+    }
+    public String getTargetTrackTime(){
+        return this.targetTrackTime;
+    }
+    public void setMotionState(String motionState){
+        this.motionState = motionState;
+    }
+    public String getMotionState(){
+        return this.motionState;
+    }
+    public void setMergeTime(String mergeTime){
+        this.mergeTime = mergeTime;
+    }
+    public String getMergeTime(){
+        return this.mergeTime;
+    }
+    public void setTargetSpeed(double targetSpeed){
+        this.targetSpeed = targetSpeed;
+    }
+    public double getTargetSpeed(){
+        return this.targetSpeed;
+    }
+    public void setMergeId(String mergeId){
+        this.mergeId = mergeId;
+    }
+    public String getMergeId(){
+        return this.mergeId;
+    }
+    public void setTargetRot(String targetRot){
+        this.targetRot = targetRot;
+    }
+    public String getTargetRot(){
+        return this.targetRot;
+    }
+    public void setMergeType(String mergeType){
+        this.mergeType = mergeType;
+    }
+    public String getMergeType(){
+        return this.mergeType;
+    }
+    public void setTargetType(String targetType){
+        this.targetType = targetType;
+    }
+    public String getTargetType(){
+        return this.targetType;
+    }
+    public void setGisShipType(String gisShipType){
+        this.gisShipType = gisShipType;
+    }
+    public String getGisShipType(){
+        return this.gisShipType;
+    }
+    public void setSupplyIceWaterState(String supplyIceWaterState){
+        this.supplyIceWaterState = supplyIceWaterState;
+    }
+    public String getSupplyIceWaterState(){
+        return this.supplyIceWaterState;
+    }
+    public void setRefueledAreaId(String refueledAreaId){
+        this.refueledAreaId = refueledAreaId;
+    }
+    public String getRefueledAreaId(){
+        return this.refueledAreaId;
+    }
+    public void setTargetNameEn(String targetNameEn){
+        this.targetNameEn = targetNameEn;
+    }
+    public String getTargetNameEn(){
+        return this.targetNameEn;
+    }
+    public void setRefueledState(String refueledState){
+        this.refueledState = refueledState;
+    }
+    public String getRefueledState(){
+        return this.refueledState;
+    }
+    public void setTargetMonitorId(String targetMonitorId){
+        this.targetMonitorId = targetMonitorId;
+    }
+    public String getTargetMonitorId(){
+        return this.targetMonitorId;
+    }
+    public void setTargetDraught(String targetDraught){
+        this.targetDraught = targetDraught;
+    }
+    public String getTargetDraught(){
+        return this.targetDraught;
+    }
+    public void setTrackDeviceNo(String trackDeviceNo){
+        this.trackDeviceNo = trackDeviceNo;
+    }
+    public String getTrackDeviceNo(){
+        return this.trackDeviceNo;
+    }
+    public void setTargetCourse(String targetCourse){
+        this.targetCourse = targetCourse;
+    }
+    public String getTargetCourse(){
+        return this.targetCourse;
+    }
+    public void setTargetNationality(String targetNationality){
+        this.targetNationality = targetNationality;
+    }
+    public String getTargetNationality(){
+        return this.targetNationality;
+    }
+    public void setLocation(String location){
+        this.location = location;
+    }
+    public String getLocation(){
+        return this.location;
+    }
+    public void setTargetTypeReliability(int targetTypeReliability){
+        this.targetTypeReliability = targetTypeReliability;
+    }
+    public int getTargetTypeReliability(){
+        return this.targetTypeReliability;
+    }
+}

+ 80 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/FusionData.java

@@ -0,0 +1,80 @@
+package cn.com.taiji.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+/**
+ * @author xhl
+ * @date 2023/2/6
+ */
+public class FusionData {
+
+    /**
+     * 批次号
+     */
+    @ExcelProperty(index = 0,value = "批次号")
+    private String mergeTarget;
+
+    /**
+     * 批次开始时间
+     */
+    @ExcelProperty(index = 1,value = "批次开始时间")
+    private String startTime;
+
+    /**
+     * 批次结束时间
+     */
+    @ExcelProperty(index = 2,value = "批次结束时间")
+    private String endTime;
+
+    /**
+     * 融合轨迹点总数
+     */
+    @ExcelProperty(index = 3,value = "融合轨迹点总数")
+    private Long trackCount;
+
+    /**
+     * 波动次数
+     */
+    @ExcelProperty(index = 4,value = "波动次数")
+    private Integer fluctuateNumber;
+
+    public String getMergeTarget() {
+        return mergeTarget;
+    }
+
+    public void setMergeTarget(String mergeTarget) {
+        this.mergeTarget = mergeTarget;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public Long getTrackCount() {
+        return trackCount;
+    }
+
+    public void setTrackCount(Long trackCount) {
+        this.trackCount = trackCount;
+    }
+
+    public Integer getFluctuateNumber() {
+        return fluctuateNumber;
+    }
+
+    public void setFluctuateNumber(Integer fluctuateNumber) {
+        this.fluctuateNumber = fluctuateNumber;
+    }
+}

+ 38 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/FusionQuery.java

@@ -0,0 +1,38 @@
+package cn.com.taiji.domain;
+
+/**
+ * @author xhl
+ * @date 2023/2/6
+ */
+public class FusionQuery {
+
+    private String startTime;
+
+    private String endTime;
+
+    private Integer pageSize;
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+}

+ 94 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/LeaveOutData.java

@@ -0,0 +1,94 @@
+package cn.com.taiji.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+/**
+ * @author xhl
+ * @date 2023/2/7
+ */
+
+public class LeaveOutData {
+    /**
+     * 批次号
+     */
+    @ExcelProperty(index = 0,value = "批次号")
+    private String batchNumber;
+
+    /**
+     * 批次开始时间
+     */
+    @ExcelProperty(index = 1,value = "批次开始时间")
+    private String startTime;
+
+    /**
+     * 批次结束时间
+     */
+    @ExcelProperty(index = 2,value = "批次结束时间")
+    private String endTime;
+
+    /**
+     * 原始轨迹点数
+     */
+    @ExcelProperty(index = 3,value = "原始轨迹点数")
+    private Long originalCount;
+
+    /**
+     * 融合轨迹批次号
+     */
+    @ExcelProperty(index = 4,value = "融合轨迹批次号")
+    private String mergeTarget;
+
+    /**
+     * 融合轨迹中出现的次数
+     */
+    @ExcelProperty(index = 5,value = "融合轨迹中出现的次数")
+    private Long trackCount;
+
+    public String getBatchNumber() {
+        return batchNumber;
+    }
+
+    public void setBatchNumber(String batchNumber) {
+        this.batchNumber = batchNumber;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public Long getOriginalCount() {
+        return originalCount;
+    }
+
+    public void setOriginalCount(Long originalCount) {
+        this.originalCount = originalCount;
+    }
+
+    public String getMergeTarget() {
+        return mergeTarget;
+    }
+
+    public void setMergeTarget(String mergeTarget) {
+        this.mergeTarget = mergeTarget;
+    }
+
+    public Long getTrackCount() {
+        return trackCount;
+    }
+
+    public void setTrackCount(Long trackCount) {
+        this.trackCount = trackCount;
+    }
+}

+ 37 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/OriginalData.java

@@ -0,0 +1,37 @@
+package cn.com.taiji.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+/**
+ * @author xhl
+ * @date 2023/2/18
+ */
+public class OriginalData {
+    /**
+     * 批次号
+     */
+    @ExcelProperty(index = 0,value = "批次号")
+    private String mergeTarget;
+
+    /**
+     * 数量
+     */
+    @ExcelProperty(index = 1,value = "数量")
+    private Integer num;
+
+    public String getMergeTarget() {
+        return mergeTarget;
+    }
+
+    public void setMergeTarget(String mergeTarget) {
+        this.mergeTarget = mergeTarget;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+}

+ 38 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/StaticOrDynamicData.java

@@ -0,0 +1,38 @@
+package cn.com.taiji.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+/**
+ * @author xhl
+ * @date 2023/2/7
+ */
+public class StaticOrDynamicData {
+
+    /**
+     * 融合批次号
+     */
+    @ExcelProperty(index = 0,value = "融合批次号")
+    private String mergeTarget;
+
+    /**
+     * 天奥批次号
+     */
+    @ExcelProperty(index = 1,value = "天奥批次号")
+    private String batchNumber;
+
+    public String getMergeTarget() {
+        return mergeTarget;
+    }
+
+    public void setMergeTarget(String mergeTarget) {
+        this.mergeTarget = mergeTarget;
+    }
+
+    public String getBatchNumber() {
+        return batchNumber;
+    }
+
+    public void setBatchNumber(String batchNumber) {
+        this.batchNumber = batchNumber;
+    }
+}

+ 40 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/TargetSource.java

@@ -0,0 +1,40 @@
+package cn.com.taiji.domain;
+
+/**
+ * @author xhl
+ */
+public class TargetSource {
+
+    private String track_id;
+
+    private String id;
+
+    private String time;
+
+    private String type;
+
+    public void setTrack_id(String track_id){
+        this.track_id = track_id;
+    }
+    public String getTrack_id(){
+        return this.track_id;
+    }
+    public void setId(String id){
+        this.id = id;
+    }
+    public String getId(){
+        return this.id;
+    }
+    public void setTime(String time){
+        this.time = time;
+    }
+    public String getTime(){
+        return this.time;
+    }
+    public void setType(String type){
+        this.type = type;
+    }
+    public String getType(){
+        return this.type;
+    }
+}

+ 163 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/TianAoOriginal.java

@@ -0,0 +1,163 @@
+package cn.com.taiji.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+/**
+ * @author xhl
+ */
+public class TianAoOriginal {
+
+    @ExcelProperty(value = "altitude")
+    private String altitude;
+    @ExcelProperty(value = "collectTime")
+    private String collectTime;
+    @ExcelProperty(value = "reliability")
+    private int reliability;
+    @ExcelProperty(value = "fusionBatchNum")
+    private String fusionBatchNum;
+    @ExcelProperty(value = "targetProper")
+    private String targetProper;
+    @ExcelProperty(value = "shipName")
+    private String shipName;
+    @ExcelProperty(value = "fusionTime")
+    private String fusionTime;
+    @ExcelProperty(value = "speed")
+    private double speed;
+    @ExcelProperty(value = "receiveTime")
+    private String receiveTime;
+    @ExcelProperty(value = "traceState")
+    private String traceState;
+    @ExcelProperty(value = "targetSize")
+    private int targetSize;
+    @ExcelProperty(value = "radarCode")
+    private String radarCode;
+    @ExcelProperty(value = "shipTrack")
+    private String shipTrack;
+    @ExcelProperty(value = "shiptracktime")
+    private String shiptracktime;
+    @ExcelProperty(value = "course")
+    private String course;
+    @ExcelProperty(value = "location")
+    private String location;
+    @ExcelProperty(value = "id")
+    private String id;
+    @ExcelProperty(value = "shipId")
+    private String shipId;
+    @ExcelProperty(value = "longitude")
+    private String longitude;
+
+    public void setAltitude(String altitude){
+        this.altitude = altitude;
+    }
+    public String getAltitude(){
+        return this.altitude;
+    }
+    public void setCollectTime(String collectTime){
+        this.collectTime = collectTime;
+    }
+    public String getCollectTime(){
+        return this.collectTime;
+    }
+    public void setReliability(int reliability){
+        this.reliability = reliability;
+    }
+    public int getReliability(){
+        return this.reliability;
+    }
+    public void setFusionBatchNum(String fusionBatchNum){
+        this.fusionBatchNum = fusionBatchNum;
+    }
+    public String getFusionBatchNum(){
+        return this.fusionBatchNum;
+    }
+    public void setTargetProper(String targetProper){
+        this.targetProper = targetProper;
+    }
+    public String getTargetProper(){
+        return this.targetProper;
+    }
+    public void setShipName(String shipName){
+        this.shipName = shipName;
+    }
+    public String getShipName(){
+        return this.shipName;
+    }
+    public void setFusionTime(String fusionTime){
+        this.fusionTime = fusionTime;
+    }
+    public String getFusionTime(){
+        return this.fusionTime;
+    }
+    public void setSpeed(double speed){
+        this.speed = speed;
+    }
+    public double getSpeed(){
+        return this.speed;
+    }
+    public void setReceiveTime(String receiveTime){
+        this.receiveTime = receiveTime;
+    }
+    public String getReceiveTime(){
+        return this.receiveTime;
+    }
+    public void setTraceState(String traceState){
+        this.traceState = traceState;
+    }
+    public String getTraceState(){
+        return this.traceState;
+    }
+    public void setTargetSize(int targetSize){
+        this.targetSize = targetSize;
+    }
+    public int getTargetSize(){
+        return this.targetSize;
+    }
+    public void setRadarCode(String radarCode){
+        this.radarCode = radarCode;
+    }
+    public String getRadarCode(){
+        return this.radarCode;
+    }
+    public void setShipTrack(String shipTrack){
+        this.shipTrack = shipTrack;
+    }
+    public String getShipTrack(){
+        return this.shipTrack;
+    }
+    public void setShiptracktime(String shiptracktime){
+        this.shiptracktime = shiptracktime;
+    }
+    public String getShiptracktime(){
+        return this.shiptracktime;
+    }
+    public void setCourse(String course){
+        this.course = course;
+    }
+    public String getCourse(){
+        return this.course;
+    }
+    public void setLocation(String location){
+        this.location = location;
+    }
+    public String getLocation(){
+        return this.location;
+    }
+    public void setId(String id){
+        this.id = id;
+    }
+    public String getId(){
+        return this.id;
+    }
+    public void setShipId(String shipId){
+        this.shipId = shipId;
+    }
+    public String getShipId(){
+        return this.shipId;
+    }
+    public void setLongitude(String longitude){
+        this.longitude = longitude;
+    }
+    public String getLongitude(){
+        return this.longitude;
+    }
+}

+ 33 - 0
fk-analysis/src/main/java/cn/com/taiji/domain/dto/LeaceOutDto.java

@@ -0,0 +1,33 @@
+package cn.com.taiji.domain.dto;
+
+/**
+ * @author xhl
+ * @date 2023/2/7
+ */
+public class LeaceOutDto {
+    /**
+     * 批次号
+     */
+    private String batchNumber;
+
+    /**
+     * 数量
+     */
+    private Long count;
+
+    public String getBatchNumber() {
+        return batchNumber;
+    }
+
+    public void setBatchNumber(String batchNumber) {
+        this.batchNumber = batchNumber;
+    }
+
+    public Long getCount() {
+        return count;
+    }
+
+    public void setCount(Long count) {
+        this.count = count;
+    }
+}

+ 86 - 0
fk-analysis/src/main/java/cn/com/taiji/service/FusionAnalysisService.java

@@ -0,0 +1,86 @@
+package cn.com.taiji.service;
+
+import cn.com.taiji.domain.FusionQuery;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.text.ParseException;
+
+/**
+ * @author xhl
+ * @date 2023/2/6
+ */
+public interface FusionAnalysisService {
+
+    /**
+     * 识别融合数据率波动问题
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    void fusionAnalysisExcelOne(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    /**
+     * 虚假推送问题
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    void fusionAnalysisExcelTwo(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    /**
+     * 天奥轨迹数据遗漏
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    void tianAoLeaveOutExcel(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    /**
+     * 北斗轨迹数据遗漏
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    void beiDouLeaveOutExcel(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    /**
+     * 海兰信1级融合轨迹数据遗漏
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    void hlxyjrhLeaveOutExcel(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    /**
+     * 天奥静态数据与动态轨迹融合
+     * @param query
+     * @param response
+     * @throws IOException
+     * @throws ParseException
+     */
+    void tianaoStaticOrDynamicLeaveOutExcel(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    void fusionAnalysisExcelThree(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    void fusionAnalysisExcelFour(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    void fusionAnalysisExcelOriginalOne(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    void fusionAnalysisExcelOriginalTwo(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    void fusionAnalysisExcelOriginalThree(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    void fusionAnalysisExcelOriginalFour(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    void fusionAnalysisExcelOriginalFive(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    abstract void fusionAnalysisExcelOriginalTianao(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+
+    void fusionAnalysisExcelOriginalFk(FusionQuery query, HttpServletResponse response) throws IOException, ParseException;
+}

File diff suppressed because it is too large
+ 1504 - 0
fk-analysis/src/main/java/cn/com/taiji/service/impl/FusionAnalysisServiceImpl.java


+ 7 - 0
fk-analysis/src/main/resources/application-prod.yml

@@ -0,0 +1,7 @@
+taiji:
+  elasticsearch.rest:
+    uris: 74.10.28.65:9200,74.10.28.65:9201,74.10.28.65:9202,74.10.28.66:9200,74.10.28.66:9201,74.10.28.66:9202,74.10.28.67:9200,74.10.28.67:9201,74.10.28.67:9202,74.10.28.68:9200,74.10.28.68:9201,74.10.28.68:9202,74.10.28.69:9200,74.10.28.69:9201,74.10.28.69:9202
+    username: ax_seat       #如果你设置了基于x-pack的验证就要填写账号和密码
+    password: ax_seat       #没有则不用配置
+    connection-timeout: 100 #连接超时
+    max-connection: 100  #最大连接数

+ 14 - 0
fk-analysis/src/main/resources/application.yml

@@ -0,0 +1,14 @@
+server:
+  port: 8083
+
+spring:
+  application.name: fk-analysis
+#  profiles.active: prod
+
+taiji:
+  elasticsearch.rest:
+    uris: 74.10.28.65:9200,74.10.28.66:9200,74.10.28.67:9200,74.10.28.68:9200,74.10.28.69:9200
+    username: ax_seat       #如果你设置了基于x-pack的验证就要填写账号和密码
+    password: ax_seat       #没有则不用配置
+    connection-timeout: 100 #连接超时
+    max-connection: 100  #最大连接数