lizhanwei
2020-03-22 33ebb2eff576bde3de532d4be470737e8d1cc671
考试状态下 失败项目小于20分 不报语音
4个文件已修改
97 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
}
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();
  /**
   * 查询 科目三 路考考场的失败项目 (多表查询)
   * 如果要添加 科目二II   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);
}
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;
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,6 +45,79 @@
            MyLog.i("评判消息解析之后的utc=$utc")
        val sn = jsonObject["sn"].asInt
            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{
                //训练模式全部报 语音
            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 "扣" +
@@ -59,6 +133,9 @@
                        jkMessage0203.fail_score = ttsStr.score_deducting
                jkMessage0203.fail_reason = ttsStr.deducting_reason
            }
            }
            if (!TextUtils.isEmpty(utc) && utc.length > 12) {