lizhanwei
2020-03-22 33ebb2eff576bde3de532d4be470737e8d1cc671
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("评判消息解析之后的utc=$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)
            }