From 8a237469ec680603b1c662dc7e67bd3ff0bbfd2a Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期六, 21 三月 2020 19:01:00 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge

---
 app/src/main/java/safeluck/drive/evaluation/Constant.java                          |    2 
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java       |    3 
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java |   13 +
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java           |    1 
 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt  |   90 ++++++-
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailedProj.java      |  107 +++++++++
 app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt                    |  101 +++++++++
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java    |    2 
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java            |  123 ++++------
 app/src/main/java/safeluck/drive/evaluation/app.java                               |   85 ++++--
 app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java               |    6 
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java       |    2 
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java     |   41 +++
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java         |    2 
 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java     |   55 -----
 15 files changed, 453 insertions(+), 180 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index adf6c25..2100f97 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -97,4 +97,6 @@
     public static final String TIME_MINUTE = "show_time_minute";
     @NotNull
     public static final String MCU_UPGRADE_FAIL_RESASON = "mcu_upgrade_fail_reason";
+    @NotNull
+    public static final String TTS="tts_judge";
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
index 2afb858..14ce36b 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
@@ -35,6 +35,8 @@
 import safeluck.drive.evaluation.DB.failitems.FailProjDao;
 import safeluck.drive.evaluation.DB.failitems.FailedProj;
 import safeluck.drive.evaluation.DB.failitems.FailedProjWorker;
+import safeluck.drive.evaluation.DB.failitems.LuKaoFailProjDao;
+import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj;
 import safeluck.drive.evaluation.DB.gps.GPSInfo;
 import safeluck.drive.evaluation.DB.gps.GpsInfoDao;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
@@ -51,7 +53,7 @@
  * 閭锛�632393724@qq.com
  * All Rights Saved! Chongqing AnYun Tech co. LTD
  */
-@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class, CriteriaForIII.class,RTKConfig.class, GPSInfo.class, AppStatus.class, ExamStatus.class, SingalConfig.class},version = 1,exportSchema = false)
+@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class,LuKaoFailedProj.class, CriteriaForII.class, CriteriaForIII.class,RTKConfig.class, GPSInfo.class, AppStatus.class, ExamStatus.class, SingalConfig.class},version = 1,exportSchema = false)
 public abstract class WorkRoomDataBase extends RoomDatabase {
     private static final String TAG = "WorkRoomDataBase";
     public abstract StudentDao getstudentDao();
@@ -147,4 +149,6 @@
      * @return
      */
     public abstract CriteriaIIIDao getCriteriaIIIDao();
+
+    public abstract LuKaoFailProjDao getLuKaoFailProjDao();
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java
index b1d275e..2fce6db 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java
@@ -19,6 +19,9 @@
  *    item_id   item_content                    deducting_reason                     score_deducting                    required _precision
         23                  璧锋                             杞﹂棬鏈畬鍏ㄥ叧闂捣姝�                    涓嶅悎鏍�                        琛岄┒璺濈澶т簬1m 鏃�
  **************/
+
+
+
     @PrimaryKey
     @ColumnInfo(name = "item_id")
     @NonNull
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java
index 3054aea..8274f9e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java
@@ -26,4 +26,6 @@
 
     @Query( "SELECT * FROM criteria_one WHERE item_id =:item_id")
     LiveData<CriteriaForI > queryItemForCriteriaI(int item_id);
+    @Query( "SELECT * FROM criteria_one WHERE item_id =:item_id")
+    CriteriaForI queryItemForCriteriaINoLive(int item_id);
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java
index 8d2dd32..c320aa1 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java
@@ -25,4 +25,6 @@
 
     @Query( "SELECT * FROM criteria_three WHERE item_id =:item_id")
     LiveData<CriteriaForIII > queryItemForCriteriaIII(int item_id);
+    @Query( "SELECT * FROM criteria_three WHERE item_id =:item_id")
+    CriteriaForIII  queryItemForCriteriaIIINoLive(int item_id);
 }
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 e1a173c..ab9f51b 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
@@ -1,7 +1,10 @@
 package safeluck.drive.evaluation.DB.exam_status
 
 import android.content.Context
+import android.os.Environment
+import android.text.TextUtils
 import android.util.Log
+import android.widget.Toast
 import androidx.work.Data
 import androidx.work.Worker
 import androidx.work.WorkerParameters
@@ -16,10 +19,13 @@
 import safeluck.drive.evaluation.DB.WorkRoomDataBase
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig
 import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig
+import safeluck.drive.evaluation.app
 import safeluck.drive.evaluation.bean.ExamPlatformData
 import safeluck.drive.evaluation.bean.SignalConfigRemote
 import safeluck.drive.evaluation.bean.SimulateNightBean
 import safeluck.drive.evaluation.bean.SimulateNightBean.QuestionBean
+import safeluck.drive.evaluation.util.CThreadPoolExecutor
+import safeluck.drive.evaluation.util.FileUtil
 import safeluck.drive.evaluation.util.Utils
 import java.io.IOException
 import java.io.InputStreamReader
@@ -47,22 +53,12 @@
         tempQs.add(list[list.size-1])//鎻愮ず鐏厜鑰冭瘯缁撴潫
         simulateNightBean.setQuestion(tempQs)
         AYSdk.getInstance().sendCmd(0x8012, gson.toJson(simulateNightBean))
-
+        sendMapInfo()
+        sendVehicleInfo()
 
         MyLog.i(TAG,"鏌ュ埌鐨勮�冭瘯type="+examType)
         ExamPlatformData.getInstance().examType = examType
-        val data = Data.Builder().putInt(Constant.EXAM_STATUS_TYPE,examType).build()
-        if (examType != safeluck.drive.evaluation.Constant.NONE_BEEN_START_EXAM) {
-            try {
-                val jsonObject = JSONObject()
-                jsonObject.put("exam", 1)
-                jsonObject.put("type", examType)
-                val examJson = jsonObject.toString()
-                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.EXAM_STATUS, examJson)
-            } catch (e: JSONException) {
-                e.printStackTrace()
-            }
-        }
+
         var rtk =  WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao._getRtkConfig()
         if (rtk == null){
             try {
@@ -111,7 +107,18 @@
 
         sendSignalConfigsToRemote(indexs)
 
-
+        val data = Data.Builder().putInt(Constant.EXAM_STATUS_TYPE,examType).build()
+        if (examType != safeluck.drive.evaluation.Constant.NONE_BEEN_START_EXAM) {
+            try {
+                val jsonObject = JSONObject()
+                jsonObject.put("exam", 1)
+                jsonObject.put("type", examType)
+                val examJson = jsonObject.toString()
+                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.EXAM_STATUS, examJson)
+            } catch (e: JSONException) {
+                e.printStackTrace()
+            }
+        }
         return Result.success(data)
     }
 
@@ -160,4 +167,59 @@
         }
     }
 
+
+    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.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() }
+            }
+            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/DB/failitems/FailedProj.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java
index f6f50dd..46552c5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java
@@ -21,7 +21,6 @@
  */
 @Entity(tableName = "fail_projects",foreignKeys = {@ForeignKey(entity = CriteriaForI.class,
 parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE),@ForeignKey(entity = CriteriaForII.class,
-        parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE),@ForeignKey(entity = CriteriaForIII.class,
         parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE)},indices = @Index(value = {"emp_id"}))
 public class FailedProj {
     @PrimaryKey(autoGenerate = true)
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java
index 47b6daf..da614b5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java
@@ -21,10 +21,12 @@
 
 
     private FailProjDao failProjDao;
+    private LuKaoFailProjDao luKaofailProjDao;
 
     public FailedProjRepository(Application application) {
         WorkRoomDataBase dataBase = WorkRoomDataBase.getWorkRoomDataBase(application);
         failProjDao = dataBase.getFailProjDao();
+        luKaofailProjDao = dataBase.getLuKaoFailProjDao();
     }
 
 
@@ -34,6 +36,15 @@
             public void run() {
 
                 failProjDao.insert(proj);
+            }
+        });
+    }
+  public void insertLuKao(final LuKaoFailedProj proj) {
+        WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
+            @Override
+            public void run() {
+
+                luKaofailProjDao.insert(proj);
             }
         });
     }
@@ -75,7 +86,7 @@
      * @return
      */
     public LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id) {
-        return failProjDao.getFailedProjectsForIII(stu_id);
+        return luKaofailProjDao.getFailedProjectsForIII(stu_id);
     }
 
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java
index c62956c..60e62f2 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java
@@ -10,7 +10,7 @@
  */
 public class FailedProj_select {
 
-    @ColumnInfo(name = "emp_id")
+
     private int emp_id;
 
     private long stu_id;
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java
new file mode 100644
index 0000000..5cc6367
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java
@@ -0,0 +1,41 @@
+package safeluck.drive.evaluation.DB.failitems;
+
+import androidx.lifecycle.LiveData;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+
+import java.util.List;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/11/26. 18:08:08
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+@Dao
+public interface LuKaoFailProjDao {
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    void insert(LuKaoFailedProj proj);
+
+  /**
+     * 鏌ヨ 绉戠洰涓� 璺�冭�冨満鐨勫け璐ラ」鐩� 锛堝琛ㄦ煡璇級
+     * 濡傛灉瑕佹坊鍔� 绉戠洰浜孖I   III绫昏�冨満澶辫触椤圭洰锛岄渶瑕佸缓绔嬬浉搴旂殑璇勫垽鏍囧噯琛ㄦ暟鎹〃
+     * @return
+     */
+    @Query("SELECT emp_id,stu_id,utc,sn,deducting_reason,score_deducting,item_content from criteria_three INNER JOIN lukao_fail_projects ON  criteria_three.item_id= lukao_fail_projects.emp_id where lukao_fail_projects.stu_id=:stu_id and lukao_fail_projects.subject=3")
+    LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id);
+
+    /**
+     * 鑾峰彇澶辫触椤圭洰鏉℃暟
+     * @param subject_id
+     * @return
+     */
+    @Query("SELECT COUNT(*)  from lukao_fail_projects where subject=:subject_id")
+    LiveData<Integer> getSubject(int subject_id);
+
+    @Query("delete from fail_projects")
+    void deleteAll();
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailedProj.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailedProj.java
new file mode 100644
index 0000000..431c6e0
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailedProj.java
@@ -0,0 +1,107 @@
+package safeluck.drive.evaluation.DB.failitems;
+
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.ForeignKey;
+import androidx.room.Index;
+import androidx.room.PrimaryKey;
+
+import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
+import safeluck.drive.evaluation.DB.criterias.CriteriaForII;
+import safeluck.drive.evaluation.DB.criterias.CriteriaForIII;
+
+import static androidx.room.ForeignKey.CASCADE;
+
+/**
+ * MyApplication2
+ * 澶辫触椤圭洰鏉$洰
+ * Created by lzw on 2019/11/26. 17:59:20
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+@Entity(tableName = "lukao_fail_projects",foreignKeys = {@ForeignKey(entity = CriteriaForIII.class,
+        parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE)},indices = @Index(value = {"emp_id"}))
+public class LuKaoFailedProj {
+    @PrimaryKey(autoGenerate = true)
+    private int id;
+
+
+
+    @ColumnInfo(name = "stu_id")
+    private long  stu_id;
+
+// =1 I绫昏�冨満   ==2 II绫昏�冨満 3-璺��
+    @ColumnInfo(name = "subject")
+    private int  subject;
+
+    //浣滀负澶栭敭锛屽搴擨绫昏�冨満鐨刬tem_id
+    @ColumnInfo(name = "emp_id")
+    private int emp_id;
+    private int  sn;
+    private String utc;
+    public LuKaoFailedProj(int subject, int emp_id, long stu_id, String utc, int sn) {
+        this.subject = subject;
+        this.emp_id = emp_id;
+        this.stu_id = stu_id;
+        this.sn = sn;
+        this.utc = utc;
+    }
+    public int getSn() {
+        return sn;
+    }
+
+    public void setSn(int sn) {
+        this.sn = sn;
+    }
+
+    public String getUtc() {
+        return utc;
+    }
+
+    public void setUtc(String utc) {
+        this.utc = utc;
+    }
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public long getStu_id() {
+        return stu_id;
+    }
+
+    public void setStu_id(long stu_id) {
+        this.stu_id = stu_id;
+    }
+
+    public int getSubject() {
+        return subject;
+    }
+
+    public void setSubject(int subject) {
+        this.subject = subject;
+    }
+
+    public int getEmp_id() {
+        return emp_id;
+    }
+
+    public void setEmp_id(int emp_id) {
+        this.emp_id = emp_id;
+    }
+
+    @Override
+    public String toString() {
+        return "FailedProj{" +
+                "id=" + id +
+                ", stu_id=" + stu_id +
+                ", subject=" + subject +
+                ", emp_id=" + emp_id +
+                ", sn=" + sn +
+                ", utc='" + utc + '\'' +
+                '}';
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index a1a51b2..336d630 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -45,10 +45,12 @@
 import safeluck.drive.evaluation.DB.failitems.FailedProj;
 import safeluck.drive.evaluation.DB.failitems.FailedProjRepository;
 import safeluck.drive.evaluation.DB.failitems.FailedProj_select;
+import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj;
 import safeluck.drive.evaluation.DB.gps.GpsInfoWorker;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfigUpdateWorker;
 import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository;
+import safeluck.drive.evaluation.bean.ExamMap;
 import safeluck.drive.evaluation.bean.ExamPlatformData;
 import safeluck.drive.evaluation.cEventCenter.CEvent;
 import safeluck.drive.evaluation.cEventCenter.CEventCenter;
@@ -65,6 +67,7 @@
 import safeluck.drive.evaluation.util.SPUtils;
 import safeluck.drive.evaluation.util.SystemUtil;
 import safeluck.drive.evaluation.worker.MCUUpgradeWorker;
+import safeluck.drive.evaluation.worker.TTSWorker;
 
 /**
  * MyApplication2
@@ -155,8 +158,8 @@
         }
         switch (cmd) {
             case Constant.NDK_START:
-                sendVechileInfo();
-                sendMapInfo();
+//                sendVechileInfo();
+//                sendMapInfo();
                 OneTimeWorkRequest examStatausOutWorker = OneTimeWorkRequest.from(ExamStatusOutWorker.class);
                 OneTimeWorkRequest mcuUpgradeWorker = OneTimeWorkRequest.from(MCUUpgradeWorker.class);
                 WorkManager.getInstance(getApplicationContext()).beginWith(examStatausOutWorker).then(mcuUpgradeWorker).enqueue();
@@ -186,7 +189,9 @@
             case Constant.JUDGE_INFO:
 
                 if(!TextUtils.isEmpty(json)){
-
+                    Data judgeData = new Data.Builder().putString(Constant.TTS,json).build();
+                    OneTimeWorkRequest ttswoker = new OneTimeWorkRequest.Builder(TTSWorker.class).setInputData(judgeData).build();
+                    WorkManager.getInstance(getAppContext()).enqueue(ttswoker);
                     JsonArray jsonArray = JsonParser.parseString(json).getAsJsonArray();
                     for (int i = 0; i < jsonArray.size(); i++) {
                         JsonObject jsonObject = jsonArray.get(i).getAsJsonObject();
@@ -196,24 +201,24 @@
                         utc = utc.substring(2,utc.length()-3);
                         MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪悗鐨剈tc="+utc);
                         int sn = jsonObject.get("sn").getAsInt();
-                        if (ExamPlatformData.getInstance().getExamType()==2){//鍦哄湴璇勫垽娑堟伅
-                            if (emp_id>31|| emp_id<0){
-                                MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�");
-                                return;
-                            }
-                            FailedProj failedProj = new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID,utc,sn);
-                            MyLog.i("鎻掑叆fail_projects琛�="+failedProj.toString());
-                            failedProjRepository.insert(failedProj);
-                        }
-                        if (ExamPlatformData.getInstance().getExamType()>2){//閬撹矾 璇勫垽娑堟伅
-                            if (emp_id>66|| emp_id<1){
-                                MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙璺�冪被鑰冨満锛�");
-                                return;
-                            }
-                            FailedProj failedProj = new FailedProj(Constant.SUBJECT_III, emp_id, Constant.TEST_STU_ID,utc,sn);
-                            MyLog.i("鎻掑叆璺�僨ail_projects琛�="+failedProj.toString());
+//                        if (ExamPlatformData.getInstance().getExamType()==2){//鍦哄湴璇勫垽娑堟伅
+//                            if (emp_id>31|| emp_id<0){
+//                                MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�");
+//                                return;
+//                            }
+//                            FailedProj failedProj = new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID,utc,sn);
+//                            MyLog.i("鎻掑叆fail_projects琛�="+failedProj.toString());
 //                            failedProjRepository.insert(failedProj);
-                        }
+//                        }
+//                        if (ExamPlatformData.getInstance().getExamType()>2){//閬撹矾 璇勫垽娑堟伅
+//                            if (emp_id>66|| emp_id<1){
+//                                MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙璺�冪被鑰冨満锛�");
+//                                return;
+//                            }
+//                            LuKaoFailedProj failedProj = new LuKaoFailedProj(Constant.SUBJECT_III, emp_id, Constant.TEST_STU_ID,utc,sn);
+//                            MyLog.i("鎻掑叆璺�僨ail_projects琛�="+failedProj.toString());
+//                            failedProjRepository.insertLuKao(failedProj);
+//                        }
 
                     }
                 }
@@ -469,20 +474,36 @@
                             Toast.makeText(getAppContext(), "璇诲彇Assert鐩綍涓嬪垵濮嬪寲鐨勫湴鍥�", Toast.LENGTH_SHORT).show();
                         }
                     });
-                    StringBuffer buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.ROAD_MAP);
-                    if (buffer != null){
+                    StringBuffer buffer;
+                        buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.ROAD_MAP);
+                        if (buffer != null){
 
-                        AYSdk.getInstance().sendCmd(Constant.PUSH_ROAD_MAP_INFO,buffer.toString());
-                    }else{
-                        MyLog.d(TAG,String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()));
-                        CThreadPoolExecutor.runOnMainThread(new Runnable() {
-                            @Override
-                            public void run() {
-                                Toast.makeText(getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()), Toast.LENGTH_SHORT).show();
-                            }
-                        });
+                            AYSdk.getInstance().sendCmd(Constant.PUSH_ROAD_MAP_INFO,buffer.toString());
+                        }else{
+                            MyLog.d(TAG,String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()));
+                            CThreadPoolExecutor.runOnMainThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    Toast.makeText(getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()), Toast.LENGTH_SHORT).show();
+                                }
+                            });
 
-                    }
+                        }
+                        buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.MAP);
+                        if (buffer != null){
+
+                            AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,buffer.toString());
+                        }else{
+                            MyLog.d(TAG,String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()));
+                            CThreadPoolExecutor.runOnMainThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    Toast.makeText(getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()), Toast.LENGTH_SHORT).show();
+                                }
+                            });
+
+                        }
+
                 }
 
             }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
index 77bb4f6..0184737 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -287,8 +287,6 @@
                             mScoreAdapter.addDatas(mArrayList);
                             MyLog.i("item_score="+item_id);
                         }
-                        //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊
-                        sendJKMessage0203(failedProj_selects);
                         MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore);
                         currTotalScore -=item_id;
                         MyLog.i("璺�冨綋鍓嶅緱鍒嗭細"+currTotalScore);
@@ -332,8 +330,6 @@
                         mScoreAdapter.addDatas(mArrayList);
                         MyLog.i("item_score="+item_id);
                     }
-                    //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊
-                    sendJKMessage0203(failedProj_selects);
                     MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore);
                     currTotalScore -=item_id;
                     MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore);
@@ -425,59 +421,8 @@
         return view;
     }
     private List<Integer> sns =new ArrayList<>();
-    private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) {
-        JKMessage0203 jkMessage0203 = new JKMessage0203();
-        jkMessage0203.phone =  ExamPlatformData.getInstance().getPhone();
-        jkMessage0203.ID = ExamPlatformData.getInstance().getID();
-        jkMessage0203.exam_id = ExamPlatformData.getInstance().getExam_id();
-
-        for (int i = 0; i < failedProj_selects.size(); i++) {
-            if (hasSnEqulas(failedProj_selects.get(i).getSn())){
-                MyLog.i("sn鐩稿悓"+failedProj_selects.get(i).getSn());
-            }else{
-                ExamPlatformData.getInstance().getTTS().speak(failedProj_selects.get(i).getDeducting_reason()+(
-                        failedProj_selects.get(i).getScore_deducting()==100?"涓嶅悎鏍�":"鎵�"+
-                        failedProj_selects.get(i).getScore_deducting()+"鍒�"));
-                MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn());
-                sns.add(failedProj_selects.get(i).getSn());
-                String utc =   failedProj_selects.get(i).getUtc();
-                if (!TextUtils.isEmpty(utc)&&utc.length()>12){
-                    utc =utc.substring(0,12);
-                }
-                jkMessage0203.timeBCD = utc ;
-
-                jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id();
-                jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting();
-                jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason();
-            }
-
-        }
 
 
-
-
-
-
-
-        MessageProcessor.getInstance().sendMessage(jkMessage0203);
-    }
-
-    private boolean hasSnEqulas(int failedProjSn){
-        if (sns.size() > 0){
-            for (int j = 0; j < sns.size(); j++) {
-                MyLog.i("宸插瓨鍦ㄧ殑sn"+sns.get(j));
-                if (sns.get(j) == failedProjSn){
-                    MyLog.i("sn鐩稿悓锛屼笉鍙�"+sns.get(j));
-                    return true;
-                }else{
-                    continue;
-                }
-            }
-
-        }
-        return false;
-
-    }
 
 
     private void initView(View view) {
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 e01e7e5..6cd2d21 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -303,7 +303,7 @@
                         MyLog.i("item_score="+item_id);
                     }
                     //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊
-                    sendJKMessage0203(failedProj_selects);
+//                    sendJKMessage0203(failedProj_selects);
                     MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore);
                     currTotalScore -=item_id;
                     MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore);
@@ -395,59 +395,53 @@
         return view;
     }
 
-    private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) {
-        JKMessage0203 jkMessage0203 = new JKMessage0203();
-        jkMessage0203.phone =  ExamPlatformData.getInstance().getPhone();
-        jkMessage0203.ID = ExamPlatformData.getInstance().getID();
-        jkMessage0203.exam_id = ExamPlatformData.getInstance().getExam_id();
+//    private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) {
+//        JKMessage0203 jkMessage0203 = new JKMessage0203();
+//        jkMessage0203.phone =  ExamPlatformData.getInstance().getPhone();
+//        jkMessage0203.ID = ExamPlatformData.getInstance().getID();
+//        jkMessage0203.exam_id = ExamPlatformData.getInstance().getExam_id();
+//
+//        for (int i = 0; i < failedProj_selects.size(); i++) {
+//            if (hasSnEqulas(failedProj_selects.get(i).getSn())){
+//                MyLog.i("sn鐩稿悓"+failedProj_selects.get(i).getSn());
+//            }else{
+//                ExamPlatformData.getInstance().getTTS().speak(failedProj_selects.get(i).getDeducting_reason()+(
+//                        failedProj_selects.get(i).getScore_deducting()==100?"涓嶅悎鏍�":"鎵�"+
+//                                failedProj_selects.get(i).getScore_deducting()+"鍒�"));
+//                MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn());
+//                ExamPlatformData.getInstance().addSn(failedProj_selects.get(i).getSn());
+//                String utc =   failedProj_selects.get(i).getUtc();
+//                if (!TextUtils.isEmpty(utc)&&utc.length()>12){
+//                    utc =utc.substring(0,12);
+//                }
+//                jkMessage0203.timeBCD = utc ;
+//
+//                jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id();
+//                jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting();
+//                jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason();
+//            }
+//
+//        }
 
-        for (int i = 0; i < failedProj_selects.size(); i++) {
-            if (hasSnEqulas(failedProj_selects.get(i).getSn())){
-                MyLog.i("sn鐩稿悓"+failedProj_selects.get(i).getSn());
-            }else{
-                ExamPlatformData.getInstance().getTTS().speak(failedProj_selects.get(i).getDeducting_reason()+(
-                        failedProj_selects.get(i).getScore_deducting()==100?"涓嶅悎鏍�":"鎵�"+
-                                failedProj_selects.get(i).getScore_deducting()+"鍒�"));
-                MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn());
-                ExamPlatformData.getInstance().addSn(failedProj_selects.get(i).getSn());
-                String utc =   failedProj_selects.get(i).getUtc();
-                if (!TextUtils.isEmpty(utc)&&utc.length()>12){
-                    utc =utc.substring(0,12);
-                }
-                jkMessage0203.timeBCD = utc ;
+//        MessageProcessor.getInstance().sendMessage(jkMessage0203);
+//    }
 
-                jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id();
-                jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting();
-                jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason();
-            }
-
-        }
-
-
-
-
-
-
-
-        MessageProcessor.getInstance().sendMessage(jkMessage0203);
-    }
-
-    private boolean hasSnEqulas(int failedProjSn){
-        if (ExamPlatformData.getInstance().getSns().size() > 0){
-            for (int j = 0; j < ExamPlatformData.getInstance().getSns().size(); j++) {
-                MyLog.i("宸插瓨鍦ㄧ殑sn"+ExamPlatformData.getInstance().getSns().get(j));
-                if (ExamPlatformData.getInstance().getSns().get(j) == failedProjSn){
-                    MyLog.i("sn鐩稿悓锛屼笉鍙�"+ExamPlatformData.getInstance().getSns().get(j));
-                    return true;
-                }else{
-                    continue;
-                }
-            }
-
-        }
-        return false;
-
-    }
+//    private boolean hasSnEqulas(int failedProjSn){
+//        if (ExamPlatformData.getInstance().getSns().size() > 0){
+//            for (int j = 0; j < ExamPlatformData.getInstance().getSns().size(); j++) {
+//                MyLog.i("宸插瓨鍦ㄧ殑sn"+ExamPlatformData.getInstance().getSns().get(j));
+//                if (ExamPlatformData.getInstance().getSns().get(j) == failedProjSn){
+//                    MyLog.i("sn鐩稿悓锛屼笉鍙�"+ExamPlatformData.getInstance().getSns().get(j));
+//                    return true;
+//                }else{
+//                    continue;
+//                }
+//            }
+//
+//        }
+//        return false;
+//
+//    }
 
 
 
@@ -538,6 +532,7 @@
                     public void changKao() {
                         exam_type = 2;
                         iv_head.getDrawable().setLevel(1);
+                        ExamPlatformData.getInstance().setExamType(exam_type);
                         examStatusViewModel.updateStartExam(exam_type);
                         sendExamJson(1,exam_type);
                         ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭缁�");
@@ -551,36 +546,14 @@
                     @Override
                     public void luKao() {
                         exam_type = 3;
+                        ExamPlatformData.getInstance().setExamType(exam_type);
                         examStatusViewModel.updateStartExam(exam_type);
                         sendExamJson(1,exam_type);
-                        if (simulateNightBean == null){
-                            simulateNightBean = new SimulateNightBean();
-                        }
-                        iv_head.getDrawable().setLevel(1);
-                        simulateNightBean.setExam(0);
-                        ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭缁�");
-                        ExamPlatformData.getInstance().setTrainingMode(true);//璁剧疆涓鸿缁冩ā寮�
-                        final List<SimulateNightBean.QuestionBean> list = ExamPlatformData.getInstance().getSimulate_light_tips();
-                        simulateNightBean.setQuestion(list.subList(list.size()-2,list.size()-1));
-                        AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean));
                         jkMessage0202.curr_exam = 1;
 
                         MessageProcessor.getInstance().sendMessage(jkMessage0202);
 
-                        tempQs.add(list.get(0));
-                        int [] a =Utils.getRandomInts(4,12);
-                        for (int i = 0; i < a.length; i++) {
-                            tempQs.add(list.get(a[i]));
-                        }
 
-                        simulateNightBean.setQuestion(tempQs);
-                        mHandler.postDelayed(new Runnable() {
-                            @Override
-                            public void run() {
-                                AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean));
-                                tempQs.clear();
-                            }
-                        },10*1000);
 
                     }
                 });
diff --git a/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt b/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt
new file mode 100644
index 0000000..25851fd
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt
@@ -0,0 +1,101 @@
+package safeluck.drive.evaluation.worker
+
+import android.content.Context
+import android.text.TextUtils
+import androidx.work.Worker
+import androidx.work.WorkerParameters
+import com.anyun.exam.lib.MyLog
+import com.google.gson.Gson
+import com.google.gson.JsonParser
+import safeluck.drive.evaluation.Constant
+import safeluck.drive.evaluation.DB.WorkRoomDataBase
+import safeluck.drive.evaluation.DB.failitems.FailedProj
+import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj
+import safeluck.drive.evaluation.bean.ExamPlatformData
+import safeluck.drive.evaluation.im.MessageProcessor
+import safeluck.drive.evaluation.platformMessage.JKMessage0203
+
+/**
+ * 涓�鏀跺埌杩滅▼鏈嶅姟缁欑殑璇勫垽娑堟伅
+ * 瀹炵幇鎻掑叆绉戜簩銆佺涓夊け璐ラ」鐩〃
+ * 鎾斁tts
+ * 鍙戦��0203璇勫垽娑堟伅缁欐湇鍔″櫒
+ */
+class TTSWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
+    var gson:Gson =Gson()
+    override fun doWork(): Result {
+        val jkMessage0203 = JKMessage0203()
+        jkMessage0203.phone = ExamPlatformData.getInstance().phone
+        jkMessage0203.ID = ExamPlatformData.getInstance().id
+        jkMessage0203.exam_id = ExamPlatformData.getInstance().exam_id
+        var ttsInput = inputData.getString(Constant.TTS);
+
+
+        val jsonArray = JsonParser.parseString(ttsInput).asJsonArray
+
+        for ( i in 0 until jsonArray.size()) {
+            val jsonObject = jsonArray[i].asJsonObject
+            val emp_id = jsonObject["wrong_id"].asInt
+            var utc = jsonObject["utc"].asString
+            MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪墠鐨剈tc=$utc")
+            utc = utc.substring(2, utc.length - 3)
+            MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪悗鐨剈tc=$utc")
+        val sn = jsonObject["sn"].asInt
+
+            if (emp_id>1000){
+                var ttsStr=WorkRoomDataBase.getWorkRoomDataBase(applicationContext).criteriaIIIDao.queryItemForCriteriaIIINoLive(emp_id-1000)
+                ExamPlatformData.getInstance().tts.speak(ttsStr.getDeducting_reason() + if (ttsStr.getScore_deducting() == 100) "涓嶅悎鏍�" else "鎵�" +
+                        ttsStr.getScore_deducting() + "鍒�")
+                jkMessage0203.fail_item_id = ttsStr.item_id
+                        jkMessage0203.fail_score = ttsStr.score_deducting
+                jkMessage0203.fail_reason = ttsStr.deducting_reason
+            }else{
+                var ttsStr=WorkRoomDataBase.getWorkRoomDataBase(applicationContext).criteriaIDao.queryItemForCriteriaINoLive(emp_id)
+                ExamPlatformData.getInstance().tts.speak(ttsStr.getDeducting_reason() + if (ttsStr.getScore_deducting() == 100) "涓嶅悎鏍�" else "鎵�" +
+                        ttsStr.getScore_deducting() + "鍒�")
+                jkMessage0203.fail_item_id =ttsStr.item_id
+                        jkMessage0203.fail_score = ttsStr.score_deducting
+                jkMessage0203.fail_reason = ttsStr.deducting_reason
+            }
+
+
+            if (!TextUtils.isEmpty(utc) && utc.length > 12) {
+                utc = utc.substring(0, 12)
+            }
+            jkMessage0203.timeBCD = utc
+
+
+            MessageProcessor.getInstance().sendMessage(jkMessage0203)
+
+
+
+            if (emp_id<1000) { //鍦哄湴璇勫垽娑堟伅
+                if (emp_id > 31 || emp_id < 0) {
+                    MyLog.i("emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�")
+
+                }else{
+                    val failedProj = FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID, utc, sn)
+                    MyLog.i("鎻掑叆fail_projects琛�=$failedProj")
+                    WorkRoomDataBase.getWorkRoomDataBase(applicationContext).failProjDao.insert(failedProj)
+                }
+
+            }
+            if (emp_id>1000) { //閬撹矾 璇勫垽娑堟伅
+
+                if (emp_id >1066 || emp_id < 1000) {
+                    MyLog.i("emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙璺�冪被鑰冨満锛�")
+                }else{
+                    val failedProj = LuKaoFailedProj(Constant.SUBJECT_III, (emp_id-1000), Constant.TEST_STU_ID, utc, sn)
+                    MyLog.i("鎻掑叆璺�僨ail_projects琛�=$failedProj")
+                    WorkRoomDataBase.getWorkRoomDataBase(applicationContext).luKaoFailProjDao.insert(failedProj)
+                }
+
+            }
+
+
+        }
+
+
+        return Result.success()
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0