MSI\liwei 4 年之前
父节点
当前提交
b892814438

+ 68 - 9
king-boot-module-ad/src/main/java/org/king/modules/ad/controller/StaticalController.java

@@ -1,6 +1,10 @@
 package org.king.modules.ad.controller;
 
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.king.common.api.vo.Result;
@@ -11,6 +15,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.*;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -33,6 +38,9 @@ public class StaticalController {
     @Autowired
     private IAdChargingRecordService adChargingRecordService;
 
+    @Autowired
+    private IBaseShipInfoService baseShipInfoService;
+
     @GetMapping(value = "/getDeviceCount")
     public Result<?> getDeviceCount() {
         AdDeviceCount count =staticalService.getDeviceCount();
@@ -59,16 +67,67 @@ public class StaticalController {
 
     @GetMapping(value = "/getChargeRecord")
     public Result<?> getChargeRecord(){
-        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
-        List<String> list = new ArrayList<String>();
-        List<AdChargingRecord> chargelist = adChargingRecordService.list(Wrappers.<AdChargingRecord>lambdaQuery().apply("date_format(create_time,'%Y-%m-%d') = '"+df.format(new Date())+"'"));
-        List<AdShipFaultReport> shiplist =adShipFaultReportService.list(Wrappers.<AdShipFaultReport>lambdaQuery().apply("date_format(create_time,'%Y-%m-%d') = '"+df.format(new Date())+"'"));
-        for(AdChargingRecord obj:chargelist){
-            list.add(obj.getShipId());
+//        String json = HttpUtil.get("http://36.154.210.106:8090/ybl/czs/ship/anchorOverTwoHours");
+        List<BaseShipInfo> shipInfos = new ArrayList<BaseShipInfo>();
+        String json = readJsonFile("d://ad.json");
+        JSONObject jsonObject = JSONObject.parseObject(json);
+        if(jsonObject.get("code").toString().equals("200")){
+                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+                List<String> list = new ArrayList<String>();
+                List<AdChargingRecord> chargelist = adChargingRecordService.list(Wrappers.<AdChargingRecord>lambdaQuery().apply("date_format(create_time,'%Y-%m-%d') = '"+df.format(new Date())+"'"));
+                List<AdShipFaultReport> shiplist =adShipFaultReportService.list(Wrappers.<AdShipFaultReport>lambdaQuery().apply("date_format(create_time,'%Y-%m-%d') = '"+df.format(new Date())+"'"));
+                for(AdChargingRecord obj:chargelist){
+                    list.add(obj.getShipId());
+                }
+                for(AdShipFaultReport obj:shiplist){
+                    list.add(obj.getShipId());
+                }
+                JSONArray result= JSONArray.parseArray(jsonObject.get("result").toString());
+                 String[] ships = new String[result.size()];
+                for(int i=0;i<result.size();i++) {
+//                    System.out.println(result.getJSONObject(i).get("id"));
+                    ships[i] = result.getJSONObject(i).get("id").toString();
+                }
+                List<BaseShipInfo> yujinList = baseShipInfoService.getListBymmsi(ships);
+                for(BaseShipInfo baseShipInfo:yujinList ){
+                    if(baseShipInfo.getShipId() != null){
+                        int i = 0;
+                        for(String shipid:list ){
+                            if(baseShipInfo.getShipId().equals(shipid)){
+                                i = 1;
+                            }
+                        }
+                        if(i == 0){
+                            shipInfos.add(baseShipInfo);
+                        }
+                    }
+//                    shipInfos.add(baseShipInfo);
+                }
+                return Result.ok(shipInfos);
+        }else{
+            return Result.error("预警接口访问失败,错误码"+jsonObject.get("code").toString());
         }
-        for(AdShipFaultReport obj:shiplist){
-            list.add(obj.getShipId());
+    }
+
+    public static String readJsonFile(String fileName) {
+        String jsonStr = "";
+        try {
+            File jsonFile = new File(fileName);
+            FileReader fileReader = new FileReader(jsonFile);
+            Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
+            int ch = 0;
+            StringBuffer sb = new StringBuffer();
+            while ((ch = reader.read()) != -1) {
+                sb.append((char) ch);
+            }
+            fileReader.close();
+            reader.close();
+            jsonStr = sb.toString();
+            return jsonStr;
+        } catch (IOException e) {
+            e.printStackTrace();
+            return null;
         }
-        return Result.ok(list);
     }
+
 }

+ 2 - 0
king-boot-module-ad/src/main/java/org/king/modules/ad/mapper/BaseShipInfoMapper.java

@@ -14,4 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface BaseShipInfoMapper extends BaseMapper<BaseShipInfo> {
 
+    List<BaseShipInfo> getListBymmsi(@Param("mmsiS") String[] mmsiS);
+
 }

+ 8 - 0
king-boot-module-ad/src/main/java/org/king/modules/ad/mapper/xml/BaseShipInfoMapper.xml

@@ -2,4 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.king.modules.ad.mapper.BaseShipInfoMapper">
 
+
+    <select id="getListBymmsi" resultType="org.king.modules.ad.entity.BaseShipInfo">
+        SELECT mmsi,ship_id,ship_name_cn FROM `base_ship_info` where mmsi in (
+        <foreach collection="mmsiS" item="mmsi" index="index" separator="," >
+            #{mmsi}
+        </foreach>
+        )
+    </select>
 </mapper>

+ 3 - 0
king-boot-module-ad/src/main/java/org/king/modules/ad/service/IBaseShipInfoService.java

@@ -1,5 +1,6 @@
 package org.king.modules.ad.service;
 
+import org.apache.ibatis.annotations.Param;
 import org.king.modules.ad.entity.BaseShipInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,4 +14,6 @@ import java.util.List;
  */
 public interface IBaseShipInfoService extends IService<BaseShipInfo> {
 
+    List<BaseShipInfo> getListBymmsi(String[] mmsiS);
+
 }

+ 12 - 0
king-boot-module-ad/src/main/java/org/king/modules/ad/service/impl/BaseShipInfoServiceImpl.java

@@ -1,13 +1,18 @@
 package org.king.modules.ad.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import org.apache.ibatis.annotations.Param;
 import org.king.modules.ad.entity.BaseShipInfo;
 import org.king.modules.ad.mapper.BaseShipInfoMapper;
 import org.king.modules.ad.service.IBaseShipInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import javax.annotation.Resource;
+import java.util.List;
+
 /**
  * @Description: 船舶基本信息
  * @Author: king-boot
@@ -18,4 +23,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @DS("multi-datasource1")
 public class BaseShipInfoServiceImpl extends ServiceImpl<BaseShipInfoMapper, BaseShipInfo> implements IBaseShipInfoService {
 
+    @Resource
+    BaseShipInfoMapper baseShipInfoMapper;
+
+    public List<BaseShipInfo> getListBymmsi(String[] mmsiS){
+         return baseShipInfoMapper.getListBymmsi(mmsiS);
+    }
+
 }