From 9859fc6b5e4f873400fb1e7ae143f79fe32010b8 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期六, 21 三月 2020 13:09:47 +0800
Subject: [PATCH] 提交路考地图增加触发线

---
 app/src/main/java/safeluck/drive/evaluation/Constant.java                           |    1 
 app/src/main/java/safeluck/drive/evaluation/app.java                                |   24 +++++++++---
 app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java              |   12 ++++++
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java        |    2 
 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.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            |    2 +
 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt   |   11 ++---
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java           |   10 ++++
 app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java    |   30 +++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java   |    3 +
 11 files changed, 96 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index e6bc036..adf6c25 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -88,6 +88,7 @@
     public static final String BIND_RTK_SPEED_TOPIC = "BIND_RTK_SPEED_TOPIC";
     public static final int EXIT_CURRENT_ITEM = 0;//閫�鍑烘煇鍦哄湴
     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 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/criterias/CriteriaForIII.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java
index d211da3..b1d275e 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
@@ -11,7 +11,7 @@
  * 閭锛�632393724@qq.com
  * All Rights Saved! Chongqing AnYun Tech co. LTD
  *
- * 绉戠洰浜� II绫昏�冨満璇勫垽鏍囧噯琛�
+ * 璺�冪被鑰冨満璇勫垽鏍囧噯琛�
  */
 @Entity(tableName = "criteria_three")
 public class CriteriaForIII {
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 485910a..e1a173c 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
@@ -28,32 +28,29 @@
     val TAG:String = "ExamStatusOutWorker"
     private var signalConfiglist: MutableList<SignalConfigRemote> = ArrayList()
     private val gson = Gson()
-    lateinit var  simulateNightBean:SimulateNightBean
+    var  simulateNightBean:SimulateNightBean=SimulateNightBean()
     private var singalConfigs :List<SingalConfig> = ArrayList()
     private val tempQs: MutableList<QuestionBean> = java.util.ArrayList()
     override fun doWork(): Result {
         val examType =WorkRoomDataBase.getWorkRoomDataBase(applicationContext).examStatusDao.startExamInt;
 
-            simulateNightBean = SimulateNightBean()
         simulateNightBean.setExam(0)
 
         val list = ExamPlatformData.getInstance().simulate_light_tips
-        simulateNightBean.setQuestion(list.subList(list.size - 2, list.size - 1))
 
-
-
-
+        tempQs.add(list[list.size-2])//鎻愮ず涓嬮潰灏嗚繘琛岀伅鍏夎�冭瘯
         tempQs.add(list[0])
         val a = Utils.getRandomInts(4, 12)
         for (i in a.indices) {
             tempQs.add(list[a[i]])
         }
-
+        tempQs.add(list[list.size-1])//鎻愮ず鐏厜鑰冭瘯缁撴潫
         simulateNightBean.setQuestion(tempQs)
         AYSdk.getInstance().sendCmd(0x8012, gson.toJson(simulateNightBean))
 
 
         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 {
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java
index fd52cf7..3473fd7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java
@@ -8,6 +8,8 @@
 
 import java.util.List;
 
+import safeluck.drive.evaluation.bean.ExamPlatformData;
+
 public class ExamStatusViewModel extends AndroidViewModel {
     ExamStatusWorkRepo examStatusWorkRepo;
     LiveData<List<ExamStatus>> examStatus;
@@ -32,6 +34,7 @@
     }
 
     public void updateStartExam(int statExam) {
+
         examStatusWorkRepo.updateStartExam(statExam);
     }
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java
index 39fe12a..87fad35 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java
@@ -4,6 +4,7 @@
 import androidx.room.Dao;
 import androidx.room.Delete;
 import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
 import androidx.room.Query;
 
 import java.util.List;
@@ -17,7 +18,7 @@
 @Dao
 public interface FailProjDao {
 
-    @Insert
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
     void insert(FailedProj proj);
 
     /**
@@ -34,6 +35,13 @@
      */
     @Query("SELECT emp_id,stu_id,utc,sn,deducting_reason,score_deducting,item_content from criteria_two INNER JOIN fail_projects ON  criteria_two.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=2")
     LiveData<List<FailedProj_select>> getFailedProjectsForII(long stu_id);
+  /**
+     * 鏌ヨ 绉戠洰涓� 璺�冭�冨満鐨勫け璐ラ」鐩� 锛堝琛ㄦ煡璇級
+     * 濡傛灉瑕佹坊鍔� 绉戠洰浜孖I   III绫昏�冨満澶辫触椤圭洰锛岄渶瑕佸缓绔嬬浉搴旂殑璇勫垽鏍囧噯琛ㄦ暟鎹〃
+     * @return
+     */
+    @Query("SELECT emp_id,stu_id,utc,sn,deducting_reason,score_deducting,item_content from criteria_three INNER JOIN fail_projects ON  criteria_three.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=3")
+    LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id);
 
     /**
      * 鑾峰彇澶辫触椤圭洰鏉℃暟
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 5c4fa41..f6f50dd 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
@@ -8,6 +8,7 @@
 
 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;
 
@@ -20,6 +21,7 @@
  */
 @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 838dac3..47b6daf 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
@@ -4,8 +4,11 @@
 
 import androidx.lifecycle.LiveData;
 
+import com.anyun.exam.lib.MyLog;
+
 import java.util.List;
 
+import safeluck.drive.evaluation.Constant;
 import safeluck.drive.evaluation.DB.WorkRoomDataBase;
 
 /**
@@ -65,5 +68,15 @@
      */
     public LiveData<List<FailedProj_select>> getFailedProjectsForII(long stu_id) {
         return failProjDao.getFailedProjectsForII(stu_id);
+    }  /**
+     * 鑾峰緱绉戠洰涓� 璺�冭�冨満澶辫触椤圭洰鎵e垎椤�
+     *
+     * @param stu_id
+     * @return
+     */
+    public LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id) {
+        return failProjDao.getFailedProjectsForIII(stu_id);
     }
+
+
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java
index a2874c9..098cc70 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java
@@ -29,6 +29,9 @@
     public  LiveData<List<FailedProj_select>> getFailedProjectsForII(long stu_id){
            return failedProjRepository.getFailedProjectsForII(stu_id);
     }
+    public  LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id){
+           return failedProjRepository.getFailedProjectsForIII(stu_id);
+    }
     public void insert(FailedProj proj){
         failedProjRepository.insert(proj);
     }
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 1ce605c..a1a51b2 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -196,13 +196,25 @@
                         utc = utc.substring(2,utc.length()-3);
                         MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪悗鐨剈tc="+utc);
                         int sn = jsonObject.get("sn").getAsInt();
-                        if (emp_id>31|| emp_id<0){
-                            MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�");
-                            return;
+                        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);
                         }
-                        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());
+//                            failedProjRepository.insert(failedProj);
+                        }
+
                     }
                 }
 
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 3d3434a..728e6c3 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -34,6 +34,10 @@
 
     private String mPhone = "";//鑰冭瘯骞冲彴娑堟伅鐢ㄥ埌鐨刾hone
 
+    private int examType = 0;//2 鍦哄湴锛�
+//3 閬撹矾锛屾ā鎷熷鑰冿紱
+//            4 閬撹矾锛屽疄闄呭鑰冿紱
+
     public static final int TCP_DISCONNECT = 1;
     public static final int TCP_CONNECTED = 2;///2-鏈繛鎺ワ紙tcp杩炴帴涓嶄笂锛�
     public static final int DEV_NOT_REGISTERED = 3;
@@ -338,4 +342,12 @@
         setQfAndSatNum(0,0);
         setExamplatformStatus(0);
     }
+
+    public int getExamType() {
+        return examType;
+    }
+
+    public void setExamType(int examType) {
+        this.examType = examType;
+    }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java b/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java
index 8b719c1..9ae9d92 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java
@@ -280,15 +280,33 @@
         if (maps != null&& maps.size()>0){
             for (int i = 0; i < maps.size(); i++) {
                 RoadExamMap.MapsBean mapItem = maps.get(i);
+
                 if (mapItem.getItem() == ALL_MAP){
                     List<List<Integer>> redLines= mapItem.getRed_line();
                     List<List<Integer>> greenLines = mapItem.getGreen_line();
+                    List<List<Integer>> allTringgerLines =  mapItem.getAll_trigger_line();
+
+
+                    for (List<Integer> allTriggerLine: allTringgerLines
+                    ) {
+                        for (int kk = 1; kk < allTriggerLine.size(); kk++) {
+                            int pos = allTriggerLine.get(kk);
+                            if (kk ==1){
+                                path.moveTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y));
+                            }
+                            path.lineTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y));
+                            Log.i(TAG,String.format("trigerline map[%d][0]=%f,map[%d][1]=%f,line to (%f,%f)",pos,map[pos][0],pos,map[pos][1],
+                                    (float) (base_x + (map[pos][0] - min_x) * scale_x),(float) (base_y + (map[pos][1] - min_y) * scale_y)));
+                        }
+                    }
+
                     paint.reset();
                     paint.setStyle(Paint.Style.STROKE);
                     paint.setStrokeWidth(1.5f);
                     paint.setAntiAlias(true);
                     paint.setColor(Color.RED);
                     paint.setPathEffect(null);
+
                     Log.i(TAG,"redLinesSize"+redLines.size());
                     for (List<Integer> redline: redLines
                     ) {
@@ -326,6 +344,18 @@
                     }
                     canvas2.drawPath(path,paint);
 
+                }else{
+                    List<Integer> area = mapItem.getArea();
+                    for (int jj = 0; jj < area.size(); jj++) {
+                        int pos = area.get(jj);
+                        if (jj==0){
+                            path.moveTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y));
+                        }else{
+                            path.lineTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y));
+                        }
+                    }
+                    path.close();
+                    canvas2.drawPath(path,paint);
                 }
             }
 

--
Gitblit v1.8.0