lizhanwei
2020-03-28 babb05583f59eb5e2c853168490f54fc7261e84a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
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.FailedProj_select
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.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("评判消息解析之前的utc=$utc")
            MyLog.i("wrong_id=$emp_id")
            utc = utc.substring(2, utc.length - 3)
            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 "扣" +
//                            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("插入路考fail_projects表=$failedProj")
                    WorkRoomDataBase.getWorkRoomDataBase(applicationContext).luKaoFailProjDao.insert(failedProj)
                }
 
            }
 
 
        }
 
 
        return Result.success()
    }
}