From 43e3df53484d02fb50ab073fa23a31a95b9dbc2f Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期四, 29 十月 2020 11:23:49 +0800
Subject: [PATCH] app重启以及服务重启重新发送考试/训练线路

---
 app/src/main/java/safeluck/drive/evaluation/app.java                    |   70 +++++++++++++++++++++++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java  |   16 +++++++
 app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java           |    2 +
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java  |    2 +
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java |    2 
 5 files changed, 90 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java
index 634e818..cdd9f9b 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java
@@ -21,6 +21,8 @@
     LiveData<List<RouteBean>> getAllRoutes();
     @Query("SELECT * FROM RouteBean where currentCollectFlag=1")
     RouteBean getCurrRouteBean();
+    @Query("SELECT routeName FROM RouteBean where id=:mId")
+    String getCurrRouteName(int mId);
 
     //鏇存柊鏁村紶琛ㄧ殑 閲囬泦鏍囧織
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 50fa403..426546e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -23,6 +23,7 @@
 import com.anyun.basecommonlib.MyLog;
 import com.anyun.exam.lib.crash.CrashHandler;
 import com.facebook.stetho.Stetho;
+import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
@@ -34,6 +35,7 @@
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.InputStreamReader;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.concurrent.Executors;
@@ -48,8 +50,12 @@
 import safeluck.drive.evaluation.DB.failitems.FailedProj;
 import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj;
 import safeluck.drive.evaluation.DB.gps.GpsInfoWorker;
+import safeluck.drive.evaluation.DB.route.RouteCross;
+import safeluck.drive.evaluation.DB.route.RouteTriggerLine;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfigUpdateWorker;
 import safeluck.drive.evaluation.bean.ExamPlatformData;
+import safeluck.drive.evaluation.bean.RemoteRouteCollect;
+import safeluck.drive.evaluation.bean.RouteCollect;
 import safeluck.drive.evaluation.cEventCenter.CEventCenter;
 import safeluck.drive.evaluation.im.MessageProcessor;
 import safeluck.drive.evaluation.platformMessage.AttachInfo;
@@ -119,6 +125,7 @@
 //            OneTimeWorkRequest examStatausOutWorker = OneTimeWorkRequest.from(ExamStatusOutWorker.class);
             sendMapInfo();
             sendVechileInfo();
+            sendRouteExam();
             DataInitKt.MCUUpgrade(getApplicationContext());
             DataInitKt.sendExamLights(getApplicationContext());
             DataInitKt.sendRtkConfig(getApplicationContext());
@@ -130,6 +137,67 @@
 
 
         });
+    }
+
+    private void sendRouteExam() {
+        if (CThreadPoolExecutor.isOnMainThread()){
+            Log.i(TAG,"sendRouteExam 杩愯鍦ㄤ富绾匡紝闇�瑕佸湪瀛愮嚎绋嬪彂閫佺嚎璺�");
+                CThreadPoolExecutor.runInBackground(()->{
+                    opDBAndSendRoute();
+                });
+        }else{
+            Log.i(TAG,"sendRouteExam 杩愯瀛愮嚎绋�");
+            opDBAndSendRoute();
+        }
+    }
+
+    private void opDBAndSendRoute() {
+        List<RouteCollect.CrossingActiveBean> crossingActiveBeans = new ArrayList<>();
+        List<RouteCollect.TriggerLineBean> triggerLineBeans = new ArrayList<>();
+        List<Double> xy = new ArrayList<>();
+        RemoteRouteCollect remoteRouteCollect = new RemoteRouteCollect();
+        RouteCollect routeCollect = new RouteCollect();
+        List<RouteCollect> routeCollects = new ArrayList<>();
+        String routeName = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRouteBeanDao().getCurrRouteName(ExamPlatformData.getInstance().getExamRoute());
+        routeCollect.setName(routeName);
+        List<RouteTriggerLine> routeTriggerLines = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRouteTriggerLineDao().getAllRouteTriggerLine(ExamPlatformData.getInstance().getExamRoute());
+        List<RouteCross> routeCrosses = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext().getApplicationContext()).getRouteCrooDao().getAllRouteCross(ExamPlatformData.getInstance().getExamRoute());
+        for (RouteTriggerLine line:routeTriggerLines){
+            RouteCollect.TriggerLineBean triggerLineBean = new RouteCollect.TriggerLineBean();
+            int road = line.getRoad();
+            int type = line.getType();
+
+            double x = line.getX();
+            double y = line.getY();
+            xy.clear();
+            xy.add(x);
+            xy.add(y);
+            triggerLineBean.setRoad(road);
+            triggerLineBean.setType(type);
+            triggerLineBean.setX_y(xy);
+            triggerLineBeans.add(triggerLineBean);
+
+
+        }
+        routeCollect.setTrigger_line(triggerLineBeans);
+
+        for (RouteCross routeCross:routeCrosses){
+            int idx = routeCross.getIdx();
+            int road = routeCross.getRoad();
+            int active = routeCross.getActive();
+            RouteCollect.CrossingActiveBean crossingActiveBean = new RouteCollect.CrossingActiveBean();
+            crossingActiveBean.setActive(active);
+            crossingActiveBean.setIdx(idx);
+            crossingActiveBean.setRoad(road);
+            crossingActiveBeans.add(crossingActiveBean);
+        }
+        routeCollect.setCrossing_active(crossingActiveBeans);
+        routeCollects.add(routeCollect);
+
+        remoteRouteCollect.setScheme(routeCollects);
+        String str = new Gson().toJson(remoteRouteCollect);
+        Log.i(TAG,"json====="+str);
+        AYSdk.getInstance().sendCmd(0x8017,str);
     }
 
     private void sendJudgeArgs() {
@@ -340,6 +408,8 @@
                             OneTimeWorkRequest examStatausOutWorker1 = new OneTimeWorkRequest.Builder(ExamStatusOutWorker.class)
                                     .setInputData(data).build();
                             WorkManager.getInstance(getApplicationContext()).enqueue(examStatausOutWorker1);
+                            sendRouteExam();
+                            sendJudgeArgs();
                             break;
                     }
                 } catch (JSONException e) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
index 5c65f63..04d65c3 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -189,7 +189,7 @@
     private String id;//韬唤璇�
 
     private Speaker speaker = null;
-
+    private int examRoute;//鑰冭瘯/璁粌鐢ㄧ殑绾胯矾鍙�
     private String ip="47.93.80.84";
     private int port=12125;
     private String mapPath;//缁濆璺緞鍖呭惈鏂囦欢鍚嶇殑path
@@ -211,6 +211,20 @@
     }
 
 
+    public int getExamRoute() {
+       examRoute = (int) SPUtils.get(app.getAppContext(),SPUtils.EXAM_ROUTE_ID,-1);
+        return examRoute;
+    }
+
+    /**
+     * 璁剧疆璁粌銆佽�冭瘯鐢ㄧ殑  绾胯矾ID
+     * @param examRoute
+     */
+    public void setExamRoute(int examRoute) {
+        SPUtils.put(app.getAppContext(),SPUtils.EXAM_ROUTE_ID,examRoute);
+        this.examRoute = examRoute;
+    }
+
     private ExamPlatformData() {
 
     }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 7f453b4..61e67e7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -964,7 +964,7 @@
                     public void run() {
                             for (RouteBean bean:mRouteBeans){
                                 if (id==bean.getId()){
-
+                                    ExamPlatformData.getInstance().setExamRoute(id);
                                 routeCollect.setName(bean.getRouteName());
                                     List<RouteTriggerLine> routeTriggerLines = WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getRouteTriggerLineDao().getAllRouteTriggerLine(id);
                                     List<RouteCross> routeCrosses = WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getRouteCrooDao().getAllRouteCross(id);
diff --git a/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java b/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java
index 452fb6b..ca3de39 100644
--- a/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java
+++ b/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java
@@ -35,6 +35,8 @@
     public static final String Coach_SIGN_STATUS = "coach_sign_";
     public static final String SIGN_MODE = "sign_mode";
     public static final String EXAM_ID = "exam_id";
+    public static final String EXAM_ROUTE_ID = "exam_route_id";//璁粌/鑰冭瘯鐢ㄧ殑 绾胯矾id锛屾湰鍦板寲瀛樺偍锛宎pp閲嶇疆涔嬪悗鏍规嵁瀹冩绱㈡暟鎹簱
+
     //灏� HashMap 鐢╯p瀛樺偍璧锋潵
     public static void saveHashMap(HashMap<BaseDataUIBean.TYPE_,MapInfoHead> map, Context context){
 

--
Gitblit v1.8.0