endian11
2020-10-29 43e3df53484d02fb50ab073fa23a31a95b9dbc2f
app重启以及服务重启重新发送考试/训练线路
5个文件已修改
92 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/app.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    //更新整张表的 采集标志
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) {
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() {
    }
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);
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,本地化存储,app重置之后根据它检索数据库
    //将 HashMap 用sp存储起来
    public static void saveHashMap(HashMap<BaseDataUIBean.TYPE_,MapInfoHead> map, Context context){