refactor: 更新类型定义,优化代码可读性
This commit is contained in:
		
							parent
							
								
									365199bf28
								
							
						
					
					
						commit
						e4af4393b7
					
				| @ -41,7 +41,17 @@ struct Index { | ||||
|   @State devPath: string = "/dev/ttyS3" | ||||
|   @State stopFlag: boolean = false | ||||
|   @State fromIndex: boolean = false | ||||
|   @State carInfo: CarInfoType = {} | ||||
|   @State carInfo: CarInfoType = { | ||||
|     carId: '', | ||||
|     examinationRoomId: '', | ||||
|     plateNo: '', | ||||
|     carNo: '', | ||||
|     examSubject: 'C1', | ||||
|     isNeedCheck: '0', | ||||
|     udpAddress: '', | ||||
|     messagePort: '', | ||||
|     hintPort: '' | ||||
|   } | ||||
|   private vocObj?: voiceService; | ||||
|   private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext | ||||
| 
 | ||||
|  | ||||
| @ -38,7 +38,9 @@ export default struct FaceCompare { | ||||
|   @State showControls: boolean = false | ||||
|   @State isAutoPlay: boolean = true | ||||
|   @State signNum: number = 0; | ||||
|   @State carInfo: CarInfoType = {}; | ||||
|   @State carInfo: CarInfoType = { | ||||
| 
 | ||||
|   }; | ||||
|   @State param: VideoConfig = VideoConfigData | ||||
|   private times = 1; //人脸比对失败次数, 超过3次将不会自动比对,需要点击重新打开重新触发 | ||||
|   private vocObj!: voiceService; | ||||
|  | ||||
| @ -706,7 +706,7 @@ export default class Judge { | ||||
|   getJudgeInitData = async () => { | ||||
|     const carInfo = AppStorage.get<CarInfoType>('carInfo'); | ||||
|     const judgeUI = this.judgeUI | ||||
|     const projectsObj = judgeUI.projectsObj | ||||
|     // const projectsObj = judgeUI.projectsObj | ||||
|     const itemInfoObj = judgeUI.itemInfoObj | ||||
|     const markRuleListObj = judgeUI.markRuleListObj | ||||
|     const carType = judgeUI.carType | ||||
| @ -721,9 +721,9 @@ export default class Judge { | ||||
|         const cdsb: CDSBInfo = Reflect.get(itemInfoObj, cdsbKey); | ||||
|         const model = this.getModelData(`${examType}/${cdsb.modelKey}.txt`) | ||||
|         const temp: ItemInfo = { | ||||
|           xmdm: cdsb?.xmdm||0, | ||||
|           xmxh: cdsb?.xmxh||"", | ||||
|           model:model||"" | ||||
|           xmdm: cdsb?.xmdm || 0, | ||||
|           xmxh: cdsb?.xmxh || "", | ||||
|           model: model || "" | ||||
|         } | ||||
|         return temp | ||||
|       }) | ||||
| @ -736,14 +736,14 @@ export default class Judge { | ||||
|     }) | ||||
|     const initInfo: JudgeInitObj = { | ||||
|       sdkver: await examJudgeVersion(), | ||||
|       appver: AppStorage.get<BaseInfoType>('baseInfo')?.version||"", | ||||
|       kskm: Number(carInfo?.examSubject||"2"), | ||||
|       kchp: carInfo?.plateNo||"", | ||||
|       kchm: Number(carInfo?.carId||""), | ||||
|       appver: AppStorage.get<BaseInfoType>('baseInfo')?.version || "", | ||||
|       kskm: Number(carInfo?.examSubject || "2"), | ||||
|       kchp: carInfo?.plateNo || "", | ||||
|       kchm: Number(carInfo?.carId || ""), | ||||
|       kscx: carType, | ||||
|       cxcode: '1', | ||||
|       name: carName, | ||||
|       carmodel: this.getModelData(`${examType}/${carType}.txt`)||"", | ||||
|       carmodel: this.getModelData(`${examType}/${carType}.txt`) || "", | ||||
|       allitems, | ||||
|       iteminfo: [], | ||||
|       systemparm: systemparmArr, | ||||
| @ -772,7 +772,7 @@ export default class Judge { | ||||
|   getJudgeBeginData = async () => { | ||||
|     const examinerInfo = AppStorage.get<ExaminerInfoType>('examinerInfo') | ||||
|     // const code = examinerInfo.code | ||||
|     const examinerName = examinerInfo?.name||"" | ||||
|     const examinerName = examinerInfo?.name || "" | ||||
| 
 | ||||
|     let currentParams: RouteParamsType = router.getParams() as RouteParamsType; | ||||
|     const sczb = currentParams.sczb; | ||||
| @ -893,9 +893,9 @@ export default class Judge { | ||||
|           this.rmndg = 1 | ||||
|         } | ||||
|         this.judgeUI.currentXmdm = xmdm; | ||||
|         const xmmcStr = project.name||""; | ||||
|         const xmmcCode = project.projectCodeCenter||""; | ||||
|         const xmmcSingleCode = project.projectCode||""; | ||||
|         const xmmcStr = project?.name || ""; | ||||
|         const xmmcCode = project?.projectCodeCenter || ""; | ||||
|         const xmmcSingleCode = project?.projectCode || ""; | ||||
|         const kmItem: KmItem = Reflect.get(this.kmItems, xmmcCode) | ||||
|         kmItem.status = 2; | ||||
|         this.xmmcStr = xmmcStr; | ||||
| @ -906,13 +906,13 @@ export default class Judge { | ||||
|         this.xmxh = xmxh; | ||||
|         this.judgeUI.isProjectIn = true | ||||
|         Reflect.set(this.judgeUI.projectsObj, xmdm, project) | ||||
|         Reflect.set(this.kmItems, xmmcCode||0, kmItem) | ||||
|         Reflect.set(this.kmItems, xmmcCode || 0, kmItem) | ||||
|         break; | ||||
| 
 | ||||
|     //项目结束 | ||||
|       case 2: { | ||||
|         const project: ProjectInfo = Reflect.get(judgeUI.projectsObj, xmdm) | ||||
|         const xmmcCode = project.projectCodeCenter||""; | ||||
|         const xmmcCode = project.projectCodeCenter || ""; | ||||
|         project.type = (xmjs.xmhg === 0 ? '4' : '3') | ||||
| 
 | ||||
|         //计算项目是否全部结束 | ||||
| @ -954,9 +954,9 @@ export default class Judge { | ||||
|           //扣分类型 | ||||
|           type: kf.type | ||||
|         } | ||||
|       //扣分信息 | ||||
|         this.kfArr.push(kfObj) | ||||
|         this.judgeUI.totalScore += thisKf.score * 1; | ||||
|         //扣分信息 | ||||
|         this.kfArr?.push(kfObj) | ||||
|         this.judgeUI.totalScore += Number(thisKf?.score); | ||||
|         if (kf.xmdm != 20) { | ||||
|           const project: ProjectInfo = Reflect.get(judgeUI.projectsObj, kf.xmdm) | ||||
|           const type = project.type; | ||||
| @ -984,7 +984,7 @@ export default class Judge { | ||||
|         const xmdm = xmqx.xmdm; | ||||
|         const project: ProjectInfo = Reflect.get(judgeUI.projectsObj, xmdm) | ||||
|         // const examSubject = this.judgeUI.examSubject | ||||
|         const xmmcCode = project.projectCodeCenter||""; | ||||
|         const xmmcCode = project.projectCodeCenter || ""; | ||||
|         // const voiceCode = getKmProjectCancelVoice(examSubject, xmmcCode); | ||||
|         // avPlayer.playAudio([`voice/${voiceCode}.mp3`],true) | ||||
|         project.type = '1' | ||||
| @ -1016,19 +1016,20 @@ export default class Judge { | ||||
|         const param611: JudgeConfigObj = Reflect.get(judgeConfigObj, '611') || '' | ||||
|         const xmdm = precast.xmdm | ||||
|         const xmxh = precast.xmxh | ||||
| 
 | ||||
|         const project: ProjectInfo = Reflect.get(judgeUI.projectsObj, xmdm) | ||||
|         const xmmcCode = project.projectCodeCenter||"" | ||||
|         const projectCode = project.projectCode | ||||
|         // const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter; | ||||
|         // const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode; | ||||
|         const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter; | ||||
|         const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode; | ||||
|         const kmItem: KmItem = Reflect.get(this.kmItems, xmmcCode) | ||||
|         const xmmcStr = project?.name || ""; | ||||
|         kmItem.status = 2; | ||||
|         Reflect.set(this.kmItems, xmmcCode, project) | ||||
|         this.xmmcStr = xmmcStr; | ||||
|         this.xmmcCode = xmmcCode; | ||||
|         this.xmmcStr = xmmcStr||""; | ||||
|         this.xmmcCode = xmmcCode||""; | ||||
|         this.xmdm = xmdm; | ||||
|         this.xmxh = xmxh; | ||||
|         this.xmmcSingleCode = xmmcSingleCode; | ||||
|         this.xmmcSingleCode = xmmcSingleCode||""; | ||||
|         project.type = '2'; | ||||
|         Reflect.set(this.judgeUI.projectsObj, xmdm, project) | ||||
|       } | ||||
| @ -1046,7 +1047,7 @@ export default class Judge { | ||||
|     }); | ||||
| 
 | ||||
|     //语音播报 | ||||
|     this.goVoiceAnnounce(event, xmdm, this.kfArr, xmjs, ksjs, xmxh) | ||||
|     this.goVoiceAnnounce(event, xmdm, this.kfArr||[], xmjs, ksjs, xmxh) | ||||
|     //更新UI | ||||
|     if (event == 1 || event == 2 || event == 3 || event == 6) { | ||||
|       const copyProjectsObj = this.judgeUI.projectsObj; | ||||
| @ -1088,21 +1089,21 @@ export default class Judge { | ||||
|           const project: ProjectInfo = Reflect.get(projectsObj, xmdm) | ||||
|           const code = project.projectCodeCenter; | ||||
|           const isEnd = project.isEnd; | ||||
|         // const kmCode = getKmProjectVoice(code, 1, judgeConfigObj, lane, xmxh) | ||||
|         // if (!ignoreVoiceCodeArr.includes(code)) { | ||||
|         //   if(examSubject == 2 && ((xmdm == 0 && f == 2) || (xmdm == 1 && s == 2) || xmdm == 3)){ | ||||
|         //     //倒出入库、桩考\进项目语音控制 | ||||
|         //   }else{ | ||||
|         //     kmCode && avPlayer.playAudio([`voice/${kmCode}.mp3`],true) | ||||
|         //   } | ||||
|         // } | ||||
|           // const kmCode = getKmProjectVoice(code, 1, judgeConfigObj, lane, xmxh) | ||||
|           // if (!ignoreVoiceCodeArr.includes(code)) { | ||||
|           //   if(examSubject == 2 && ((xmdm == 0 && f == 2) || (xmdm == 1 && s == 2) || xmdm == 3)){ | ||||
|           //     //倒出入库、桩考\进项目语音控制 | ||||
|           //   }else{ | ||||
|           //     kmCode && avPlayer.playAudio([`voice/${kmCode}.mp3`],true) | ||||
|           //   } | ||||
|           // } | ||||
|           setTimeout(() => { | ||||
|             if (Reflect.get(param512, 7) != 0) { | ||||
|               clearTimeout(this.deductedPopShowTimer) | ||||
|               this.judgeUI.isDeductedPopShow = true | ||||
|             } | ||||
|           }, 200) | ||||
|         //项目已考不上传监管信息 | ||||
|           //项目已考不上传监管信息 | ||||
|           if (!isEnd) { | ||||
|             judgeTask.addTask(async () => { | ||||
|               console.info(judgeTag, `项目开始-${xmdm}-${project.name}`) | ||||
| @ -1148,7 +1149,7 @@ export default class Judge { | ||||
|           if (!this.judgeUI.isProjectIn) { | ||||
|             this.deductedPopShowTimer = setTimeout(() => { | ||||
|               this.judgeUI.isDeductedPopShow = false | ||||
|             }, (Reflect.get(param512, 5) || 0) * 1000) | ||||
|             }, (Reflect.get(param512!, 5) || 0) * 1000) | ||||
|           } | ||||
|           project.isEnd = true; | ||||
|           Reflect.set(this.judgeUI.projects, xmdm, project) | ||||
| @ -1158,11 +1159,11 @@ export default class Judge { | ||||
|       // 扣分 | ||||
|         case 3: | ||||
|           console.info('surenjun', '扣分开始') | ||||
|         //扣分时实时播报语音(0-否+1-是) | ||||
|           //扣分时实时播报语音(0-否+1-是) | ||||
|           const currentKf = kf[kfLen -1]; | ||||
|           if (JudgeConfig.kfVoiceOpen || (examSubject == '2' && judgeConfigObj['618'] == '1') || | ||||
|             (examSubject == '3' && judgeConfigObj['418'] == '1')) { | ||||
|             avPlayer.playAudio([`voice/${currentKf.markcatalog}.mp3`, `voice/mark_${Math.abs(currentKf.score)}.mp3`]) | ||||
|             avPlayer?.playAudio([`voice/${currentKf.markcatalog}.mp3`, `voice/mark_${Math.abs(currentKf?.score||0)}.mp3`]) | ||||
|           } | ||||
|           const isStart = await checkProjectIsStart(Number(currentKf.xmdm), 2, currentKf); | ||||
|           if (isStart) { | ||||
| @ -1182,9 +1183,9 @@ export default class Judge { | ||||
|       // 考试结束 | ||||
|         case 5: | ||||
|           console.info(judgeTag, '考试结束') | ||||
|         //关闭录像 | ||||
|           //关闭录像 | ||||
|           const singlePlay = AppStorage.get<boolean>('singlePlay') | ||||
|           if (!singlePlay) { | ||||
|           if (!singlePlay&&this.videoData) { | ||||
|             await endRecordVideo(this.videoData) | ||||
|           } | ||||
|           judgeTask.addTask(async () => { | ||||
| @ -1192,8 +1193,8 @@ export default class Judge { | ||||
|             AppStorage.setOrCreate('isJudge', false) | ||||
|             await handEndExam(ksjs) | ||||
|           }) | ||||
|         // TODO待修改 | ||||
|         // clearInterval(globalThis.judgeTimer) | ||||
|           // TODO待修改 | ||||
|           // clearInterval(globalThis.judgeTimer) | ||||
|           break | ||||
|         default: | ||||
|           break | ||||
| @ -1211,15 +1212,15 @@ export default class Judge { | ||||
|     } | ||||
|   // 考试扣分 | ||||
|   pointsDedute = async (ksxm: number, kf: MarkRule) => { | ||||
|     const carInfo = AppStorage.get<CarInfoType>('carInfo'); | ||||
|     const carInfo = AppStorage.get<CarInfoType>('carInfo')!; | ||||
|     const examSubject = carInfo.examSubject | ||||
|     const plateNo = carInfo.plateNo | ||||
|     const carNo = carInfo.carNo | ||||
|     // const plateNo = carInfo.plateNo | ||||
|     // const carNo = carInfo.carNo | ||||
| 
 | ||||
|     const judgeUI = this.judgeUI | ||||
|     const getProjectInfo = this.getProjectInfo | ||||
|     const fileLog = this.fileLog | ||||
|     const xmmcSingleCode = this.xmmcSingleCode | ||||
|     // const getProjectInfo = this.getProjectInfo | ||||
|     // const fileLog = this.fileLog | ||||
|     // const xmmcSingleCode = this.xmmcSingleCode | ||||
|     const xmmcEndCode = this.xmmcEndCode | ||||
|     const filePath = this.filePath | ||||
| 
 | ||||
| @ -1248,7 +1249,7 @@ export default class Judge { | ||||
| 
 | ||||
|     const ksxmD: string = project == undefined | ||||
|       ? (commonKsxm | ||||
|         ? (project.projectCodeCenter) | ||||
|         ? (project?.projectCodeCenter||"") | ||||
|         : (examSubject == '3' ? '30000' : (xmmcEndCode == undefined ? '10000' : xmmcEndCode))) | ||||
|       : project.projectCodeCenter | ||||
|     const drvexam: DrvexamType = { | ||||
| @ -1258,7 +1259,7 @@ export default class Judge { | ||||
|       kfxm: kf.markcatalog, | ||||
|       kfxmmx: `${ksxm},${kf.markserial}`, | ||||
|       sfzmhm: idCard, | ||||
|       kchp: encodeURI(carInfo.plateNo), | ||||
|       kchp: encodeURI(carInfo?.plateNo||""), | ||||
|       //扣分方式 | ||||
|       kffs: kf.type == 0 ? 1 : 2, | ||||
|       ksdd: encodeURI(ksdd), | ||||
| @ -1270,14 +1271,14 @@ export default class Judge { | ||||
|       jkid: '17C53', | ||||
|       drvexam | ||||
|     } | ||||
|     console.info(judgeTag + 'ksxm=>', data.drvexam.ksxm) | ||||
|     // console.info(judgeTag + 'ksxm=>', data.drvexam.ksxm) | ||||
| 
 | ||||
|     const temp = await this.sendWriteObjectOut(data, filePath); | ||||
|     if (temp.code == 2300007) { | ||||
|       this.isJudgeDisConnect = true | ||||
|     } | ||||
|     console.info(judgeTag, '项目扣分 end') | ||||
|     promptWxCode('17C53', temp.code) | ||||
|     promptWxCode('17C53', temp?.code||0) | ||||
|   } | ||||
|   // 评判语音提示 | ||||
|   goJudgeVoice = async (sound: JudgeSound) => { | ||||
| @ -1286,11 +1287,11 @@ export default class Judge { | ||||
|     console.info('surenjun code=>', JSON.stringify(sound.code)) | ||||
|     //判断是不是模拟灯光语音 | ||||
|     if (sound.type == 1) { | ||||
|       avPlayer.playAudio([`voice/${sound.code[0]}.mp3`], false, () => { | ||||
|       avPlayer?.playAudio([`voice/${sound.code[0]}.mp3`], false, () => { | ||||
|         examJudgeSoundEnd({ | ||||
|           xmdm: sound.xmdm, code: sound.code[0], type: sound.type | ||||
|         }) | ||||
|         fileLog.setExamJudgeData(JSON.stringify({ | ||||
|         fileLog?.setExamJudgeData(JSON.stringify({ | ||||
|           method: 'examJudgeSoundEnd', | ||||
|           itemno: sound.xmdm, | ||||
|           code: sound.code[0], | ||||
| @ -1298,7 +1299,7 @@ export default class Judge { | ||||
|         })) | ||||
|       }) | ||||
|     } else { | ||||
|       avPlayer.playAudio([`voice/${sound.code[0]}.mp3`]) | ||||
|       avPlayer?.playAudio([`voice/${sound.code[0]}.mp3`]) | ||||
|     } | ||||
|   } | ||||
|   // 处理考试结束 | ||||
| @ -1331,11 +1332,11 @@ export default class Judge { | ||||
|     //自动退出待验证并且不合格 | ||||
|     if (!isManual && examSubject == '3' && (param302 == '1' || (singlePlay && param302 == '2')) && | ||||
|       totalScore < passingScore) { | ||||
|       avPlayer.playAudio([`voice/考试结束.mp3`]) | ||||
|       avPlayer?.playAudio([`voice/考试结束.mp3`]) | ||||
|     } | ||||
|     //联网模式下手动结束的直接退出 | ||||
|     if (!singlePlay && isManual && !isAllProjectsEnd) { | ||||
|       avPlayer.playAudio(['voice/empty.mp3'], true, () => { | ||||
|       avPlayer?.playAudio(['voice/empty.mp3'], true, () => { | ||||
|         this.isUdpEnd = true; | ||||
|         closeAllFiles() | ||||
|         router.back(); | ||||
| @ -1352,7 +1353,7 @@ export default class Judge { | ||||
|       } | ||||
|     } | ||||
|     await handleSEP(306); | ||||
|     avPlayer.playAudio(['voice/exam_waiting.mp3'], AppStorage.get('singlePlay'), async () => { | ||||
|     avPlayer?.playAudio(['voice/exam_waiting.mp3'], AppStorage.get('singlePlay'), async () => { | ||||
|       try { | ||||
|         if (!singlePlay) { | ||||
|           // TODO const bytes = await this.getMessageHeartbeat(true); | ||||
| @ -1367,10 +1368,10 @@ export default class Judge { | ||||
|   } | ||||
|   // 考试结束 | ||||
|   public endExam = async (isManual?: Boolean) => { | ||||
|     const carInfo = AppStorage.get<CarInfoType>('carInfo'); | ||||
|     const singlePlay = AppStorage.get<boolean>('singlePlay') | ||||
|     const examSubject = carInfo.examSubject | ||||
|     const plateNo = carInfo.plateNo | ||||
|     const carInfo = AppStorage.get<CarInfoType>('carInfo')!; | ||||
|     const singlePlay = AppStorage.get<boolean>('singlePlay')||false | ||||
|     const examSubject = carInfo?.examSubject||"2" | ||||
|     const plateNo = carInfo?.plateNo||"" | ||||
| 
 | ||||
|     const judgeUI = this.judgeUI | ||||
|     const ksjs = this.ksjs | ||||
| @ -1392,11 +1393,11 @@ export default class Judge { | ||||
|     // await uploadDisConnectData(); | ||||
|     const time = GetCurrentTime(); | ||||
|     const photoBase64 = await getPhoto(); | ||||
|     const d1 = ksjs.d1; | ||||
|     const d2 = ksjs.d2; | ||||
|     const d3 = ksjs.d3; | ||||
|     const d4 = ksjs.d4; | ||||
|     const d5 = ksjs.d5; | ||||
|     const d1 = ksjs?.d1||0; | ||||
|     const d2 = ksjs?.d2||0; | ||||
|     const d3 = ksjs?.d3||0; | ||||
|     const d4 = ksjs?.d4||0; | ||||
|     const d5 = ksjs?.d5||0; | ||||
| 
 | ||||
|     const drvexam: DrvexamType = { | ||||
|       lsh, | ||||
| @ -1406,7 +1407,7 @@ export default class Judge { | ||||
|       zp: photoBase64, | ||||
|       jssj: time, | ||||
|       kscj: (totalScore * 1) > 0 ? totalScore : 0, | ||||
|       kslc: Math.ceil(((ksjs?.qjjl + ksjs?.dcjl) || 0) / 100), | ||||
|       kslc: Math.ceil(((ksjs?.qjjl ?? 0) + (ksjs?.dcjl ?? 0)) / 100), | ||||
|       // 1,22;2,560;3,128;4,0;5,0; | ||||
|       dwlc: [d1, d2, d3, d4, d5].map((d, index) => `${index + 1},${Math.floor(d / 100)}`).join(';'), | ||||
|     } | ||||
| @ -1421,11 +1422,11 @@ export default class Judge { | ||||
|       router.back() | ||||
|     }, 90 * 1000) | ||||
|     const temp = await this.sendWriteObjectOut(data, filePath); | ||||
|     promptWxCode('17C56', temp.code) | ||||
|     promptWxCode('17C56', temp?.code||0) | ||||
| 
 | ||||
|     if (temp.code != 1) { | ||||
|       avPlayer.playAudio(['voice/监管失败.mp3']) | ||||
|       this.judgeUI.errorMsg = decodeURIComponent(temp.message) | ||||
|       avPlayer?.playAudio(['voice/监管失败.mp3']) | ||||
|       this.judgeUI.errorMsg = decodeURIComponent(temp?.message||"") | ||||
| 
 | ||||
|       if (temp.code == 2300028 || temp.code == 2300007) { | ||||
|         this.judgeUI.errorMsg = '当前的考试过程信息监管审核未通过,程序将退出!' | ||||
| @ -1504,24 +1505,24 @@ export default class Judge { | ||||
|     let score = 0; | ||||
|     //结束考试时候是否播报一遍所有扣分 | ||||
|     const param634: string = Reflect.get(judgeConfigObj, '634') | ||||
|     if (kfArr.length && ((examSubject == '2' && param634 == '1') || examSubject == '3')) { | ||||
|       avPlayer.playAudio([`voice/kfdesc.mp3`], false, () => { | ||||
|     if (kfArr&&kfArr.length && ((examSubject == '2' && param634 == '1') || examSubject == '3')) { | ||||
|       avPlayer?.playAudio([`voice/kfdesc.mp3`], false, () => { | ||||
|         try { | ||||
|           kfArr.forEach((kf, index) => { | ||||
|             score += Math.abs(Number(kf.score)); | ||||
|             //TODO 考试分数待替换 | ||||
|             if (score <= (examSubject == '3' ? 10 : 20)) { | ||||
|               if (kfArr.length - 1 === index) { | ||||
|                 avPlayer.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => { | ||||
|               if (kfArr&&kfArr.length - 1 === index) { | ||||
|                 avPlayer?.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => { | ||||
|                   this.isUdpEnd = true; | ||||
|                   closeAllFiles() | ||||
|                   router.back(); | ||||
|                 }) | ||||
|                 throw new Error('End Loop') | ||||
|               } | ||||
|               avPlayer.playAudio([`voice/${kf.markcatalog}.mp3`]) | ||||
|               avPlayer?.playAudio([`voice/${kf.markcatalog}.mp3`]) | ||||
|             } else { | ||||
|               avPlayer.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => { | ||||
|               avPlayer?.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => { | ||||
|                 this.isUdpEnd = true; | ||||
|                 closeAllFiles() | ||||
|                 router.back(); | ||||
| @ -1534,7 +1535,7 @@ export default class Judge { | ||||
|         } | ||||
|       }) | ||||
|     } else { | ||||
|       avPlayer.playAudio([voiceURL], true, () => { | ||||
|       avPlayer?.playAudio([voiceURL], true, () => { | ||||
|         setTimeout(() => { | ||||
|           this.isUdpEnd = true | ||||
|           closeAllFiles() | ||||
| @ -1691,7 +1692,8 @@ export default class Judge { | ||||
|       return '0000000000' | ||||
|     } | ||||
|     const projectKey = `${ksxm}_${xmxh}`; | ||||
|     const currentCdsb: CDSBInfo = Reflect.get(cdsbInfoObj, projectKey) || {} | ||||
|     // const currentCdsb: CDSBInfo = Reflect.get(cdsbInfoObj, projectKey) || {} | ||||
|     const currentCdsb: CDSBInfo = (Reflect.get(cdsbInfoObj, projectKey) ?? {}) as CDSBInfo; | ||||
|     const sbxh: string = currentCdsb.sbbh || '0000000000' | ||||
|     return sbxh | ||||
|   } | ||||
| @ -1750,7 +1752,7 @@ export default class Judge { | ||||
|   } | ||||
|   // 获取模型数据 | ||||
|   getModelData = (modelName: string) => { | ||||
|     const modelData = this.fileModel.getModelContent(this.modelPath, modelName); | ||||
|     const modelData = this.fileModel?.getModelContent(this.modelPath, modelName); | ||||
|     return modelData | ||||
|   } | ||||
|   // 统计必考项目、所有项目、已考数量 | ||||
| @ -1795,30 +1797,30 @@ export default class Judge { | ||||
| 
 | ||||
|       case 1: | ||||
|         this.judgeUI.dwztErrorVisible = true; | ||||
|         avPlayer.playAudio([`voice/差分状态异常.mp3`], true) | ||||
|         avPlayer?.playAudio([`voice/差分状态异常.mp3`], true) | ||||
|         setTimeout(() => { | ||||
|           router.back() | ||||
|         }, 3000) | ||||
|         break; | ||||
| 
 | ||||
|       case 2: | ||||
|         avPlayer.playAudio([`voice/差分状态异常.mp3`], true); | ||||
|         avPlayer?.playAudio([`voice/差分状态异常.mp3`], true); | ||||
| 
 | ||||
|         break; | ||||
|       case 3: | ||||
|         this.judgeUI.dwztErrorVisible = true; | ||||
|         avPlayer.playAudio([`voice/差分状态异常.mp3`], true); | ||||
|         avPlayer?.playAudio([`voice/差分状态异常.mp3`], true); | ||||
|         break; | ||||
| 
 | ||||
|       case 4: | ||||
|         this.judgeUI.isDwztRight = false; | ||||
|       //差分异常上报 | ||||
|         //差分异常上报 | ||||
|         break; | ||||
|     } | ||||
|   } | ||||
|   closeAllFiles = () => { | ||||
|     setTimeout(() => { | ||||
|       this.fileLog.closeAllFiles() | ||||
|       this.fileLog?.closeAllFiles() | ||||
|     }, 1000) | ||||
|   } | ||||
| 
 | ||||
| @ -1833,7 +1835,7 @@ export default class Judge { | ||||
|     const manualMarkRules = judgeUI.manualMarkRules | ||||
| 
 | ||||
|     const fileLog = new FileLog(judgeUI.context); | ||||
|     const filePath = await fileLog.initFileLogo({ | ||||
|     const filePath = await fileLog?.initFileLogo({ | ||||
|       name, lsh, idCard | ||||
|     }); | ||||
|     this.fileLog = fileLog; | ||||
| @ -1858,13 +1860,13 @@ export default class Judge { | ||||
|     console.info(judgeTag, '1.进入评判入口') | ||||
|     await examJudgeSetLogCallback(3, async (level: number, info: string, len: number) => { | ||||
|       console.log('评判日志:' + info) | ||||
|       await fileLog.setExamJudgeLogData(info); | ||||
|       await fileLog?.setExamJudgeLogData(info); | ||||
|     }) | ||||
| 
 | ||||
|     console.info(judgeTag, '2.注册日志回调完成') | ||||
| 
 | ||||
|     let initInfo: JudgeInitObj = isTrajectoryOpen ? JSON.parse(strArr[0]) : await this.getJudgeInitData(); | ||||
|     await fileLog.setExamJudgeData(JSON.stringify(initInfo)) | ||||
|     await fileLog?.setExamJudgeData(JSON.stringify(initInfo)) | ||||
|     //相关评判初始化只做一次 | ||||
|     if (!isJudgeInitBool) { | ||||
|       const tempJudge = await examJudgeInit(initInfo); | ||||
| @ -1874,7 +1876,7 @@ export default class Judge { | ||||
|     AppStorage.setOrCreate('isJudge', true) | ||||
|     // 2.评判过程回调 | ||||
|     await examJudgeSetRealExamCallback(async (strData: string, len: number) => { | ||||
|       await fileLog.setExamJudgeCallbackData(strData) | ||||
|       await fileLog?.setExamJudgeCallbackData(strData) | ||||
|       console.info('评判回调数据', strData) | ||||
|       this.handleRealExam(strData, callBack) | ||||
|     }) | ||||
| @ -1892,7 +1894,7 @@ export default class Judge { | ||||
|       // globalThis.laneData = performInfo.lane; | ||||
|     }) | ||||
| 
 | ||||
|     let beginExamInfo: JudgeBeginObj = undefined | ||||
|     let beginExamInfo: JudgeBeginObj|undefined = undefined | ||||
|     // 3.开始考试 | ||||
|     if (isTrajectoryOpen) { | ||||
|       beginExamInfo = JSON.parse(strArr[1]) | ||||
| @ -1900,10 +1902,10 @@ export default class Judge { | ||||
|     } else { | ||||
|       beginExamInfo = await getJudgeBeginData() | ||||
|     } | ||||
|     await fileLog.setExamJudgeData(JSON.stringify(beginExamInfo)) | ||||
|     await fileLog?.setExamJudgeData(JSON.stringify(beginExamInfo)) | ||||
|     await examJudgeBeginExam(beginExamInfo); | ||||
|     console.info(judgeTag, '6.开始考试注册完成') | ||||
|     avPlayer.playAudio([judgeUI.singlePlay ? 'voice/ksks.wav' : 'voice/监管成功.mp3']) | ||||
|     avPlayer?.playAudio([judgeUI.singlePlay ? 'voice/ksks.wav' : 'voice/监管成功.mp3']) | ||||
| 
 | ||||
|     if (!judgeUI.singlePlay) { | ||||
|       this.videoData = await saveStartRecordVideo(`${name}_${kssycs}`, this.context) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user