From 33ebb2eff576bde3de532d4be470737e8d1cc671 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期日, 22 三月 2020 12:00:37 +0800
Subject: [PATCH] 考试状态下 失败项目小于20分 不报语音

---
 app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java         |    1 
 app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt                |  103 ++++++++++++++++++++++++++++++----
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java      |    7 ++
 app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java |   12 ++++
 4 files changed, 110 insertions(+), 13 deletions(-)

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 87fad35..4e9d7e2 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
@@ -53,4 +53,11 @@
 
     @Query("delete from fail_projects")
     void deleteAll();
+
+    /**
+     * 鏌ヨ 绉戠洰浜� I绫昏�冨満鐨勬墍鏈夊け璐ラ」鐩� 锛堝琛ㄦ煡璇級
+     * @return
+     */
+    @Query("SELECT emp_id,stu_id, utc ,sn ,deducting_reason,score_deducting,item_content from criteria_one INNER JOIN fail_projects ON  criteria_one.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=1")
+    List<FailedProj_select> getAllFailProjI(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
index 8d5e92e..6d0d443 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java
@@ -6,6 +6,8 @@
 import androidx.room.OnConflictStrategy;
 import androidx.room.Query;
 
+import org.jetbrains.annotations.NotNull;
+
 import java.util.List;
 
 /**
@@ -38,4 +40,14 @@
 
     @Query("delete from lukao_fail_projects")
     void deleteAll();
+
+
+
+  /**
+   * 鏌ヨ 绉戠洰涓� 璺�冭�冨満鐨勫け璐ラ」鐩� 锛堝琛ㄦ煡璇級
+   * 濡傛灉瑕佹坊鍔� 绉戠洰浜孖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")
+    List<FailedProj_select> getAllFailProjIII(long stu_id);
 }
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 d935629..14d9593 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -127,6 +127,7 @@
     private StringBuffer stringBuffer;
     private int rtkPort = 12125;
     private String rtkIP = "47.93.80.84";
+    public final int MAX_SCORE_DUCT = 20;
 
     public static ExamPlatformData getInstance() {
         return ourInstance;
diff --git a/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt b/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt
index 84e7230..935c91c 100644
--- a/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt
+++ b/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt
@@ -10,6 +10,7 @@
 import safeluck.drive.evaluation.Constant
 import safeluck.drive.evaluation.DB.WorkRoomDataBase
 import safeluck.drive.evaluation.DB.failitems.FailedProj
+import safeluck.drive.evaluation.DB.failitems.FailedProj_select
 import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj
 import safeluck.drive.evaluation.bean.ExamPlatformData
 import safeluck.drive.evaluation.im.MessageProcessor
@@ -44,23 +45,99 @@
             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
+
+            if(ExamPlatformData.getInstance().trainingMode == ExamPlatformData.EXAMING_MODE){
+                //鑰冭瘯妯″紡 鎬绘墸鍒嗗皬浜�80 鎵嶆姤瀛愬け璐ラ」鐩�
+                var totalDecutSocre:Int = 0;
+                if (emp_id>1000){
+                    var ttsStr=WorkRoomDataBase.getWorkRoomDataBase(applicationContext).criteriaIIIDao.queryItemForCriteriaIIINoLive(emp_id-1000)
+                    totalDecutSocre = ttsStr.score_deducting
+                    if (totalDecutSocre > ExamPlatformData.getInstance().MAX_SCORE_DUCT){
+                        ExamPlatformData.getInstance().tts.speak(ttsStr.getDeducting_reason() + if (ttsStr.getScore_deducting() == 100) "涓嶅悎鏍�" else "鎵�" +
+                                ttsStr.getScore_deducting() + "鍒�")
+                    }
+                }else{
+                    var ttsStr=WorkRoomDataBase.getWorkRoomDataBase(applicationContext).criteriaIDao.queryItemForCriteriaINoLive(emp_id)
+                    totalDecutSocre = ttsStr.score_deducting
+                    if (totalDecutSocre > ExamPlatformData.getInstance().MAX_SCORE_DUCT){
+                        ExamPlatformData.getInstance().tts.speak(ttsStr.getDeducting_reason() + if (ttsStr.getScore_deducting() == 100) "涓嶅悎鏍�" else "鎵�" +
+                                ttsStr.getScore_deducting() + "鍒�")
+                    }
+                }
+                if (totalDecutSocre>ExamPlatformData.getInstance().MAX_SCORE_DUCT){
+
+                }else{
+                    if (ExamPlatformData.getInstance().examType > ExamPlatformData.EXAM_TYPE_ChangKAO){
+                        //璺��
+                        var failedProjs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).luKaoFailProjDao.getAllFailProjIII(Constant.TEST_STU_ID)
+
+                        for (i in 0 until failedProjs.size){
+                            totalDecutSocre+=failedProjs[i].score_deducting
+                            if (totalDecutSocre>ExamPlatformData.getInstance().MAX_SCORE_DUCT){
+
+                                break;
+                            }
+                        }
+                        if (totalDecutSocre>ExamPlatformData.getInstance().MAX_SCORE_DUCT){
+                            for (i in 0 until failedProjs.size){
+                                //鎵�鏈夊瓨鍦ㄦ暟鎹簱閲岀殑澶辫触椤�
+                                var ttsStr=WorkRoomDataBase.getWorkRoomDataBase(applicationContext).criteriaIIIDao.queryItemForCriteriaIIINoLive(failedProjs[i].emp_id)
+                                    ExamPlatformData.getInstance().tts.speak(ttsStr.getDeducting_reason() + if (ttsStr.getScore_deducting() == 100) "涓嶅悎鏍�" else "鎵�" +
+                                            ttsStr.getScore_deducting() + "鍒�")
+                            }
+                            //鐜板湪澧炲姞鐨勪竴涓」鐩紝杩樻湭鎻掑叆鏁版嵁搴擄紱 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() + "鍒�")
+                        }
+
+                    }else{
+                        //鍦鸿��
+                        var failedProjs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).failProjDao.getAllFailProjI(Constant.TEST_STU_ID)
+
+                        for (i in 0 until failedProjs.size){
+                            totalDecutSocre+=failedProjs[i].score_deducting
+                            if (totalDecutSocre>ExamPlatformData.getInstance().MAX_SCORE_DUCT){
+                                break;
+                            }
+                        }
+                        if (totalDecutSocre>ExamPlatformData.getInstance().MAX_SCORE_DUCT){
+                            for (i in 0 until failedProjs.size){
+                                //鎵�鏈夊瓨鍦ㄦ暟鎹簱閲岀殑澶辫触椤�
+                                var ttsStr=WorkRoomDataBase.getWorkRoomDataBase(applicationContext).criteriaIDao.queryItemForCriteriaINoLive(failedProjs[i].emp_id)
+                                ExamPlatformData.getInstance().tts.speak(ttsStr.getDeducting_reason() + if (ttsStr.getScore_deducting() == 100) "涓嶅悎鏍�" else "鎵�" +
+                                        ttsStr.getScore_deducting() + "鍒�")
+                            }
+                            //鐜板湪澧炲姞鐨勪竴涓」鐩紝杩樻湭鎻掑叆鏁版嵁搴擄紱 emp_id>1000 璺�冪殑璇�
+                            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() + "鍒�")
+                        }
+                    }
+                }
+
             }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 (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)
             }

--
Gitblit v1.8.0