From 6b566cfa3d510c841184ea2328f1e2e2c3e3c788 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期四, 09 四月 2020 15:45:13 +0800
Subject: [PATCH] 移动站服务报错误信息的时候,给ExamOUtWorker设置输入参数,重新发送map和car。  download的时候down那个就发送那个

---
 app/src/main/java/safeluck/drive/evaluation/Constant.java                         |    1 
 app/src/main/java/safeluck/drive/evaluation/app.java                              |    9 +
 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt     |  275 ++++++++++++++++++++++++++++++++++--------------------
 app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java |    1 
 app/src/main/assets/map.json                                                      |    2 
 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt |    7 +
 app/src/main/assets/roadmap.json                                                  |    2 
 7 files changed, 187 insertions(+), 110 deletions(-)

diff --git a/app/src/main/assets/map.json b/app/src/main/assets/map.json
index e9be599..4569adb 100644
--- a/app/src/main/assets/map.json
+++ b/app/src/main/assets/map.json
@@ -32,6 +32,6 @@
       "x-y": [16579.3086, -7626.9764, 16579.8354, -7627.7888, 16580.3393, -7628.4316, 16581.181, -7629.2701, 16582.0667, -7629.9052, 16583.1605, -7630.4413, 16584.3072, -7630.818, 16585.5416, -7630.993, 16586.918, -7630.9599, 16588.0948, -7630.7205, 16589.1489, -7630.3119, 16590.3826, -7629.6211, 16591.2856, -7628.8977, 16592.0383, -7628.0128, 16592.8408, -7626.7007, 16593.3354, -7625.4394, 16593.886, -7624.4265, 16594.9656, -7623.4808, 16596.0498, -7623.0286, 16597.3348, -7622.955, 16598.4564, -7623.2286, 16599.4254, -7623.7931, 16600.1166, -7624.5026]
     }]
   }],
-  "name": "绉戜簩鍦鸿�冨湴鍥�",
+  "name": "app鑷甫鍦鸿�冨湴鍥�",
   "type": "yard"
 }
\ No newline at end of file
diff --git a/app/src/main/assets/roadmap.json b/app/src/main/assets/roadmap.json
index c759317..017cd4c 100644
--- a/app/src/main/assets/roadmap.json
+++ b/app/src/main/assets/roadmap.json
@@ -1,7 +1,7 @@
 {
   "points": [0, 1, 1.6, 1, 2.55, 1, 3.05, 1, 4.55, 1, 5.003, 1, 6.003, 1, 9.003, 1, 9.003, 4, 0, 0.5, 9.003, 0.5, 0, 0, 1.6, 0, 2.55, 0, 3.05, 0, 4.55, 0, 5.003, 0, 5.003, -2, 5.003, -3, 5.003, -4, 6.003, -4, 7.003, -4, 9.003, -4, 10.003, -4, 10.003, -3, 10.003, 4, 6.003, 0, 9.003, 0, 6.003, 0, 6.003, -3, 9.003, -3, 9.003, 0, 5.503, 0, 5.503, -2, 5.503, -3.5, 7.003, -3.5, 9.503, -3.5, 9.503, 4, 1.6, 1, 1.6, 0, 2.55, 1, 2.55, 0, 3.05, 0, 3.05, 1, 4.55, 1, 4.55, 0, 5.003, 1, 5.003, 0, 6.003, 0, 6.003, 1, 6.003, -2, 5.003, -2, 6.003, -3, 5.003, -3, 5.003, -4, 6.003, -4, 9.003, -1, 10.003, -1, 9.003, 0, 10.003, 0, 10.003, 1, 9.003, 1,11.003,4,11.003,-4,10.5003,4,10.5003,-4,
     10.003,3,9.003,3,10.003,4,9.003,4,11.003,4,10.003,4,11.003,3,10.003,3,11.003,1,10.003,1,11.003,0,10.003,0,11.003,-1,10.003,-1,11.003,-2,10.003,-2,10.5003,-3,10.5003,-3,11.003,-3,10.003,-3],
-  "name": "绉戜笁璺�冨湴鍥�",
+  "name": "app鑷甫璺�冨湴鍥�",
   "type": "road",
   "maps": [{
     "id": 1000,
diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index dd9a534..e997c5d 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -90,6 +90,7 @@
     public static final String RTK_INFO_SAT_QF = "RTK_INFO_SAT_QF";//浠嶳TK info涓幏鍙栫殑鍗槦棰楁暟鍜宷f 缁勬垚鐨刯son
     public static final int SUBJECT_III = 3;//璺��
     public static final int LEFT_RIGHT_DISTANCE = 0x0020;
+    public static final String NEED_MAPS_CAR = "need_maps_car";
     public static String exam_enter_exitdata="exam_enter_exitdata";
     public static int Chang_di = 2;
     public static int DaoLu_night = 3;
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt
index 798da34..96efc17 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt
@@ -53,8 +53,11 @@
         tempQs.add(list[list.size-1])//鎻愮ず鐏厜鑰冭瘯缁撴潫
         simulateNightBean.setQuestion(tempQs)
         AYSdk.getInstance().sendCmd(0x8012, gson.toJson(simulateNightBean))
-        sendMapInfo()
-        sendVehicleInfo()
+        if (inputData.getInt(safeluck.drive.evaluation.Constant.NEED_MAPS_CAR,0)==1){
+            sendMapInfo()
+            sendVehicleInfo()
+        }
+
 
         MyLog.i(TAG,"鏌ュ埌鐨勮�冭瘯type="+examType)
         ExamPlatformData.getInstance().examType = examType
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
index c338d21..aa90196 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
@@ -18,6 +18,7 @@
 import retrofit2.Response
 import safeluck.drive.evaluation.DB.Constant
 import safeluck.drive.evaluation.DB.WorkRoomDataBase
+import safeluck.drive.evaluation.app
 import safeluck.drive.evaluation.bean.ExamPlatformData
 import safeluck.drive.evaluation.httpmodule.HttpCarRespBean
 import safeluck.drive.evaluation.httpmodule.HttpRequetBean
@@ -58,109 +59,10 @@
             phone = sn
             Log.i(TAG,"phone="+phone)
 
-            if (!FileUtil.isMapExist(applicationContext,"map.json")){
-                MyLog.i("鍦板浘鏂囦欢涓嶅瓨鍦紝鍘诲钩鍙板彇")
-                getRestService().getMapsAndVehicleModel(HttpRequetBean(sn, "place")).enqueue(object : Callback<ResponseBody> {
-                    override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
-                        var str: String? = null
-                        try {
-                            str = response.body()!!.string()
-                        } catch (e: IOException) {
-                            e.printStackTrace()
-                        }
-                        Log.i(TAG, "鏈嶅姟鍣ㄨ繑鍥炵殑body=$str")
+            getMap(sn, "road")
+            getMap(sn, "yard")
+            getMap(sn, "car")
 
-                        jsonObject = JSONObject(str)
-                        val result = jsonObject!!.getBoolean("result")
-                        if (result){
-                            if (str!!.contains("road")){
-                                val map = gson.fromJson<HttpRoadMapRsp>(str,HttpRoadMapRsp::class.java)
-                                if (map.isResult){
-                                    if (map.data != null){
-                                        if (map.data.map_json.type.equals("road")){
-                                            ExamPlatformData.getInstance().setNewRoadMapPath(Environment.getExternalStorageDirectory().absolutePath + "/"
-                                                    + applicationContext.getPackageName() + "/roadmap.json")
-                                            CThreadPoolExecutor.runInBackground(Runnable{
-                                                str = gson.toJson(map.data.map_json)
-                                                FileUtil.writeTxtFileToSD(applicationContext,"roadmap.json",str,"")
-                                            })
-                                        }
-
-
-
-                                    }
-
-
-                                }
-                            }else{
-                                val yard = gson.fromJson<HttpYardRsp>(str,HttpYardRsp::class.java)
-                                if (yard.isResult){
-                                    if (yard.data !=null){
-                                        Log.i(TAG,"yard====")
-                                        ExamPlatformData.getInstance().setNewMapPath(Environment.getExternalStorageDirectory().absolutePath + "/"
-                                                + applicationContext.getPackageName() + "/yard.json")
-                                        CThreadPoolExecutor.runInBackground(Runnable{
-                                            str = gson.toJson(yard.data.map_json)
-                                            FileUtil.writeTxtFileToSD(applicationContext,"yard.json",str,"")
-                                        })
-                                    }
-                                }
-                            }
-                        }else{
-                            Toast.makeText(applicationContext,jsonObject!!.getString("data"),Toast.LENGTH_SHORT).show()
-                        }
-
-
-
-                    }
-
-                    override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
-                        Log.i(TAG, t.localizedMessage)
-                    }
-                })
-            }
-            if (!FileUtil.isMapExist(applicationContext,"car.json")){
-                MyLog.i("杞﹁締妯″瀷鏂囦欢涓嶅瓨鍦紝鍘诲钩鍙板彇")
-                getRestService().getMapsAndVehicleModel(HttpRequetBean(sn, "car")).enqueue(object : Callback<ResponseBody> {
-                    override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
-                        var str: String? = null
-                        try {
-                            str = response.body()!!.string()
-                            Log.i(TAG, "鏈嶅姟鍣ㄨ繑鍥炵殑body=$str")
-                            jsonObject = JSONObject(str)
-                            val result = jsonObject!!.getBoolean("result")
-                            if (result){
-                                val car = gson.fromJson<HttpCarRespBean>(str,HttpCarRespBean::class.java)
-
-                                if (car.isResult){
-                                    if (car.data !=null){
-                                        ExamPlatformData.getInstance().carModelPath = Environment.getExternalStorageDirectory().absolutePath + "/" +
-                                                applicationContext.getPackageName() + "/car.json"
-
-                                        Log.i(TAG, "瑙f瀽涔嬪悗鐨勮溅妯″瀷=$str")
-                                        CThreadPoolExecutor.runInBackground(Runnable{
-                                            str = gson.toJson(car.data.map_json)
-                                            FileUtil.writeTxtFileToSD(applicationContext,"car.json",str,"")
-                                        })
-
-                                    }
-                                }
-                            }else{
-                                Toast.makeText(applicationContext,jsonObject!!.getString("data"),Toast.LENGTH_SHORT).show()
-                            }
-
-                        } catch (e: IOException) {
-                            e.printStackTrace()
-                        }
-
-
-                    }
-
-                    override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
-                        Log.i(TAG, t.localizedMessage)
-                    }
-                })
-            }
 
             MyLog.i(PlatFormConstant.TAG,"閲嶇疆TCP杩炴帴")
             IMSClientBootstrap.getInstance().resetConnect();
@@ -173,6 +75,124 @@
 
         sendRtkConfigInfo(WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao._getRtkConfig())
         return Result.success()
+    }
+
+    private fun getMap(sn: String, type: String){
+        lateinit var jsonObject1 :JSONObject
+        lateinit var fileName :String
+        when(type){
+            "road" -> fileName =  safeluck.drive.evaluation.Constant.ROAD_MAP
+            "yard" -> fileName =  safeluck.drive.evaluation.Constant.MAP
+            else -> fileName = safeluck.drive.evaluation.Constant.VEHICLE
+        }
+        if (!FileUtil.isMapExist(applicationContext,fileName)) {
+            getRestService().getMapsAndVehicleModel(HttpRequetBean(sn, type)).enqueue(object : Callback<ResponseBody> {
+                override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
+                    MyLog.i(PlatFormConstant.HTTPTAG,t.localizedMessage)
+                }
+
+                override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
+                    var str: String = response.body()!!.string()
+                    MyLog.i(PlatFormConstant.HTTPTAG,str)
+                    jsonObject1 = JSONObject(str)
+                    val result = jsonObject1!!.getBoolean("result")
+                    if (result) {
+                        when(type){
+                            "road" ->{
+                                val map = gson.fromJson<HttpRoadMapRsp>(str, HttpRoadMapRsp::class.java)
+                            if (map.isResult) {
+                                if (map.data != null) {
+                                    if (map.data.map_json.type.equals("road")) {
+                                        ExamPlatformData.getInstance().setNewRoadMapPath(Environment.getExternalStorageDirectory().absolutePath + "/"
+                                                + applicationContext.getPackageName() + "/" + fileName)
+                                        CThreadPoolExecutor.runInBackground(Runnable {
+                                            str = gson.toJson(map.data.map_json)
+                                            FileUtil.writeTxtFileToSD(applicationContext, fileName, str, "")
+                                            sendRoadMapInfo()
+                                        })
+                                    }
+
+
+                                }
+
+
+                            }}
+                                "yard" ->{
+                                    val yard = gson.fromJson<HttpYardRsp>(str,HttpYardRsp::class.java)
+                                    if (yard.isResult){
+                                        if (yard.data !=null){
+                                            Log.i(TAG,"yard====")
+                                            ExamPlatformData.getInstance().setNewMapPath(Environment.getExternalStorageDirectory().absolutePath + "/"
+                                                    + applicationContext.getPackageName() + "/"+fileName)
+                                            CThreadPoolExecutor.runInBackground(Runnable{
+                                                str = gson.toJson(yard.data.map_json)
+                                                FileUtil.writeTxtFileToSD(applicationContext,fileName,str,"")
+                                                sendMapInfo()
+                                            })
+                                        }
+                                    }
+                                }
+                            else ->{
+                                val car = gson.fromJson<HttpCarRespBean>(str,HttpCarRespBean::class.java)
+
+                                if (car.isResult){
+                                    if (car.data !=null){
+                                        ExamPlatformData.getInstance().carModelPath = Environment.getExternalStorageDirectory().absolutePath + "/" +
+                                                applicationContext.getPackageName() + "/"+fileName
+
+                                        Log.i(TAG, "瑙f瀽涔嬪悗鐨勮溅妯″瀷=$str")
+                                        CThreadPoolExecutor.runInBackground(Runnable{
+                                            str = gson.toJson(car.data.map_json)
+                                            FileUtil.writeTxtFileToSD(applicationContext,fileName,str,"")
+                                            sendVehicleInfo()
+                                        })
+
+                                    }
+                                }
+                            }
+                        }
+
+                    } else {
+                        Toast.makeText(applicationContext, jsonObject1!!.getString("data"), Toast.LENGTH_SHORT).show()
+                    }
+                }
+            })
+
+        }else{
+            MyLog.i(PlatFormConstant.HTTPTAG,"宸插瓨鍦ㄧ洿鎺ュ彂閫佽溅杈嗗拰鍦板浘")
+            when(type){
+                "road" -> sendRoadMapInfo()
+                "yard" -> sendMapInfo()
+                else -> sendVehicleInfo()
+            }
+
+        }
+    }
+
+    private fun sendRoadMapInfo(){
+        val roadmapPath = ExamPlatformData.getInstance().roadMapPath
+
+        if (!TextUtils.isEmpty(roadmapPath)) {
+            MyLog.i("璋冪敤鏇存柊RoadMap璺緞鍚庣殑鍦板浘$roadmapPath")
+            val fileContent = FileUtil.readFile(roadmapPath)
+            if (fileContent != null) {
+                val str = String(fileContent)
+                Log.i(TAG,"鏂囦欢鍐呭锛�$str")
+                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_ROAD_MAP_INFO, str)
+            } else {
+                MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�", roadmapPath))
+                CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), "鏂囦欢锛�" + roadmapPath + "涓嶅瓨鍦�", Toast.LENGTH_SHORT).show() }
+            }
+        } else {
+            val buffer: StringBuffer?
+            buffer = FileUtil.readAssetTxtFile(applicationContext, safeluck.drive.evaluation.Constant.ROAD_MAP)
+            if (buffer != null) {
+                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_ROAD_MAP_INFO, buffer.toString())
+            } else {
+                MyLog.i(String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName))
+                CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName), Toast.LENGTH_SHORT).show() }
+            }
+        }
     }
 
     private fun sendRtkConfigInfo(mRTKConfig: RTKConfig) {
@@ -195,4 +215,55 @@
         }
     }
 
+
+
+    private fun sendMapInfo(){
+        val mapPath = ExamPlatformData.getInstance().mapPath
+
+
+        if (!TextUtils.isEmpty(mapPath)) {
+            MyLog.i("璋冪敤鏇存柊Map璺緞鍚庣殑鍦板浘$mapPath")
+            val fileContent = FileUtil.readFile(mapPath)
+            if (fileContent != null) {
+                val str = String(fileContent)
+                Log.i(TAG,"鏂囦欢鍐呭锛�$str")
+                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_MAP_INFO, str)
+            } else {
+                MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�", mapPath))
+                CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), "鏂囦欢锛�" + mapPath + "涓嶅瓨鍦�", Toast.LENGTH_SHORT).show() }
+            }
+        } else {
+            MyLog.i("璇诲彇Assert鐩綍涓嬪垵濮嬪寲鐨勫湴鍥�")
+            var buffer: StringBuffer?
+            buffer = FileUtil.readAssetTxtFile(applicationContext, safeluck.drive.evaluation.Constant.MAP)
+            if (buffer != null) {
+                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_MAP_INFO, buffer.toString())
+            } else {
+                MyLog.i( String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName))
+                CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName), Toast.LENGTH_SHORT).show() }
+            }
+        }
+    }
+
+    private fun sendVehicleInfo(){
+        val carPath = ExamPlatformData.getInstance().carModelPath
+        if (!TextUtils.isEmpty(carPath)) {
+            MyLog.i("浣跨敤鏇存柊鍚庣殑Car妯″瀷鍦板浘$carPath")
+            val bytes = FileUtil.readFile(carPath)
+            if (bytes != null) {
+                val str = String(bytes)
+                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_VECHILE_PROFILE, str)
+            } else {
+                MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�", carPath))
+            }
+        } else {
+            val vebuffer = FileUtil.readAssetTxtFile(applicationContext, safeluck.drive.evaluation.Constant.VEHICLE)
+            if (vebuffer != null) {
+                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_VECHILE_PROFILE, vebuffer.toString())
+            } else {
+                MyLog.i(String.format("杞﹁締妯″瀷妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName))
+            }
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index fc8f0ed..f3ace57 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -281,7 +281,9 @@
 //                            sendVechileInfo();
 //                            break;
                         case -3:
-                            OneTimeWorkRequest examStatausOutWorker1 = OneTimeWorkRequest.from(ExamStatusOutWorker.class);
+                            Data data = new Data.Builder().putInt(Constant.NEED_MAPS_CAR,1).build();
+                            OneTimeWorkRequest examStatausOutWorker1 = new OneTimeWorkRequest.Builder(ExamStatusOutWorker.class)
+                                    .setInputData(data).build();
                             WorkManager.getInstance(getApplicationContext()).enqueue(examStatausOutWorker1);
                             break;
                     }
@@ -299,7 +301,7 @@
                 WorkManager.getInstance(getApplicationContext()).enqueue(oneTimeWorkRequest);
                 break;
             case Constant.FETCH_MAP_INFO:
-                sendMapInfo();
+//                sendMapInfo();
 
                 break;
             case Constant.REQ_VECHILE_PROFILE:
@@ -440,10 +442,9 @@
 
                         jkMessage0206.attachInfo = attachInfo;
                     if (ExamPlatformData.getInstance().getTrainingMode()==ExamPlatformData.MODE_NONE){
-                        Log.i(TAG,"闈炶缁冨拰鑰冭瘯");
                         //鍒ゆ柇10s鏃堕棿鏄惁鍒�
                         if (ExamPlatformData.getInstance().isTimeArrive_10s()){
-                            Log.i(TAG,"闈炶缁冨拰鑰冭瘯10s鍒�");
+
                             //鍒颁簡 灏辫蛋涓嬮潰鍙戦��0206娑堟伅
                             MessageProcessor.getInstance().sendMessage(jkMessage0206);
                             //閲嶇疆鏍囪
diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java
index 76c08bd..490cbd0 100644
--- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java
@@ -7,6 +7,7 @@
 public class PlatFormConstant {
 
     public static final String TAG = "PlatFormMessage";
+    public static final String HTTPTAG = "HTTPMessage";
 
     public static final int  SUCCESS = 0;
     public static final short STU_INFO_SUCC = 1;

--
Gitblit v1.8.0