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