Compare commits
	
		
			4 Commits
		
	
	
		
			c612ff8afd
			...
			6ecddd7cbf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6ecddd7cbf | |||
| 9e5749b296 | |||
| 8da91d74e0 | |||
| 9082c5169c | 
| @ -24,11 +24,12 @@ export async function setCurrentTime():Promise<void> { | |||||||
|   let times = new Date(currentTime).getTime(); |   let times = new Date(currentTime).getTime(); | ||||||
|   console.log('jiangsong:times==' + times); |   console.log('jiangsong:times==' + times); | ||||||
|   try { |   try { | ||||||
|     systemTime.setTime(times).then(() => { |     await systemTime.setTime(times) | ||||||
|       console.info(`Succeeded in setting time.`); |     // systemTime.setTime(times).then(() => {
 | ||||||
|     }).catch((error) => { |     //   console.info(`Succeeded in setting time.`);
 | ||||||
|       console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`); |     // }).catch((error) => {
 | ||||||
|     }); |     //   console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`);
 | ||||||
|  |     // });
 | ||||||
|   } catch(e) { |   } catch(e) { | ||||||
|     console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`); |     console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`); | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -92,7 +92,6 @@ export class voiceService { | |||||||
|   } |   } | ||||||
|   // 以下为使用资源管理接口获取打包在HAP内的媒体资源文件并通过fdSrc属性进行播放示例
 |   // 以下为使用资源管理接口获取打包在HAP内的媒体资源文件并通过fdSrc属性进行播放示例
 | ||||||
|   avPlayerFdSrc(name) { |   avPlayerFdSrc(name) { | ||||||
| 
 |  | ||||||
|     globalThis.context.resourceManager.getRawFd(name,async (error, value) => { |     globalThis.context.resourceManager.getRawFd(name,async (error, value) => { | ||||||
|       if (error != null) { |       if (error != null) { | ||||||
|         console.log(`jiangsong callback getRawFd failed error code: ${error.code}, message: ${error.message}.`); |         console.log(`jiangsong callback getRawFd failed error code: ${error.code}, message: ${error.message}.`); | ||||||
|  | |||||||
| @ -42,7 +42,7 @@ export default class GetDistance { | |||||||
|     const content = await fileUtil.readFile(`${folderPath}/${date}.txt`) || ''; |     const content = await fileUtil.readFile(`${folderPath}/${date}.txt`) || ''; | ||||||
|     const contentArr = content.split('\n').filter(item => item) |     const contentArr = content.split('\n').filter(item => item) | ||||||
|     console.info('surenjun contentArr',JSON.stringify(contentArr)) |     console.info('surenjun contentArr',JSON.stringify(contentArr)) | ||||||
|     this.totalDistance += str * 1 |     this.totalDistance += (str * 1 > 200 ? 200 : str*1) | ||||||
|     this.totalTime += 1; |     this.totalTime += 1; | ||||||
|     contentArr[contentArr.length - 1] = `程序启动时间:${timeStr} 累计行驶距离:${(this.totalDistance).toFixed(2)}m 累计运行时常:${Math.ceil(this.totalTime/60)}min`+ '\n' |     contentArr[contentArr.length - 1] = `程序启动时间:${timeStr} 累计行驶距离:${(this.totalDistance).toFixed(2)}m 累计运行时常:${Math.ceil(this.totalTime/60)}min`+ '\n' | ||||||
|     console.info('surenjun',contentArr.join('\n')) |     console.info('surenjun',contentArr.join('\n')) | ||||||
|  | |||||||
| @ -298,7 +298,8 @@ export async function setJudgeUdp() { | |||||||
| 
 | 
 | ||||||
|   if (config && config.udplocalIp) { |   if (config && config.udplocalIp) { | ||||||
|     const {udplocalIp} = config; |     const {udplocalIp} = config; | ||||||
|     const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080', globalThis.carInfo?.gpsAddress, globalThis.carInfo?.hintPort) |     const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080', globalThis.carInfo?.udpAddress, globalThis.carInfo?.hintPort) | ||||||
|  | 
 | ||||||
|     await udpClientbyCenter.onError_Callback(()=>{}) |     await udpClientbyCenter.onError_Callback(()=>{}) | ||||||
|     await udpClientbyCenter.bindUdp() |     await udpClientbyCenter.bindUdp() | ||||||
|     await udpClientbyCenter.onMessage_2((val) => {}) |     await udpClientbyCenter.onMessage_2((val) => {}) | ||||||
|  | |||||||
| @ -43,11 +43,8 @@ export const initJudgeUdp = async () => { | |||||||
|           wd2:wd, |           wd2:wd, | ||||||
|           h:msgArr[90]*1 || 1, |           h:msgArr[90]*1 || 1, | ||||||
|         }) |         }) | ||||||
|         if(distance < 1){ |  | ||||||
|           return |  | ||||||
|         } |  | ||||||
|         //@ts-ignore
 |         //@ts-ignore
 | ||||||
|         globalThis.distanceClass.setTimeData(((distance / 100).toFixed(2)) * 1) |         globalThis.distanceClass?.setTimeData(((distance / 100).toFixed(2)) * 1) | ||||||
|       } |       } | ||||||
|       prevJd = jd; |       prevJd = jd; | ||||||
|       preWd = wd; |       preWd = wd; | ||||||
| @ -66,7 +63,7 @@ export const getMessageHeartbeat = async (msg) => { | |||||||
|       ? '1111111111111' |       ? '1111111111111' | ||||||
|       : globalThis.lsh, |       : globalThis.lsh, | ||||||
|     13)); |     13)); | ||||||
|   const ascksyhArr = stringToASC(fillZero('1111111111111', 13)) |   const ascksyhArr = stringToASC(fillZero(examSubject == 2 ? '0000000000000':'1111111111111', 13)) | ||||||
|   const ascsbxhArr = stringToASC('00000000') |   const ascsbxhArr = stringToASC('00000000') | ||||||
|   // const ascsbxhArr = stringToASC('153216400880')
 |   // const ascsbxhArr = stringToASC('153216400880')
 | ||||||
|   const serialIndex = globalThis.serialIndex |   const serialIndex = globalThis.serialIndex | ||||||
|  | |||||||
| @ -62,6 +62,7 @@ export default async function request(req: any) { | |||||||
|         //处理中心服务code
 |         //处理中心服务code
 | ||||||
|         if(res.Envelope){ |         if(res.Envelope){ | ||||||
|             const msgXml = res.Envelope.Body.writeObjectOutResponse.return; |             const msgXml = res.Envelope.Body.writeObjectOutResponse.return; | ||||||
|  |                              //Envelope.Body.writeObjectOutResponse.return
 | ||||||
|             const dd = handleCenterCode(msgXml,isNewCenter); |             const dd = handleCenterCode(msgXml,isNewCenter); | ||||||
|             return dd |             return dd | ||||||
|         } |         } | ||||||
| @ -165,12 +166,14 @@ function handleCenterCode(msgXml,isNewCenter){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //正则匹配code message字段
 |     //正则匹配code message字段
 | ||||||
|     const [code,message] = [/<code>(.*)<\/code>/i,/<message>(.*)<\/message>/i].map(pattern=>{ |     const [code,message,keystr] = [/<code>(.*)<\/code>/i,/<message>(.*)<\/message>/i,/<keystr>(.*)<\/keystr>/i].map(pattern=>{ | ||||||
|         const patternArr =  pattern.exec(msgXml); |         const patternArr =  pattern.exec(msgXml); | ||||||
|         return patternArr[1] |         return patternArr[1] | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     if(code === ''){ |     console.info('surenjun =>request-prev',keystr) | ||||||
|  | 
 | ||||||
|  |     if(code != '1'){ | ||||||
|         prompt.showToast({ |         prompt.showToast({ | ||||||
|             message: decodeURIComponent(message as string), |             message: decodeURIComponent(message as string), | ||||||
|             duration: 3000 |             duration: 3000 | ||||||
| @ -180,7 +183,8 @@ function handleCenterCode(msgXml,isNewCenter){ | |||||||
|         // globalThis.errorDialog.open()
 |         // globalThis.errorDialog.open()
 | ||||||
|         return {code,message:decodeURIComponent(message)} |         return {code,message:decodeURIComponent(message)} | ||||||
|     }else{ |     }else{ | ||||||
|         return { code } |         console.info('surenjun =>request',keystr) | ||||||
|  |         return { code ,keystr, message } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -236,4 +236,16 @@ export function convertGpsCoord2 (num){ | |||||||
|   const du =  Math.floor(tempNum / 100); |   const du =  Math.floor(tempNum / 100); | ||||||
|   const fen = tempNum % 100 + num - tempNum; |   const fen = tempNum % 100 + num - tempNum; | ||||||
|   return du + fen / 60 |   return du + fen / 60 | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export function debounce(fn, delay){ | ||||||
|  |   // 利用闭包定义定时器id变量存储
 | ||||||
|  |   let timer = null; | ||||||
|  |   return () => { | ||||||
|  |     // 如果有值就清除定时器,重新计时
 | ||||||
|  |     if (timer) { | ||||||
|  |       clearTimeout(timer) | ||||||
|  |     } | ||||||
|  |     timer = setTimeout(fn, delay); | ||||||
|  |   } | ||||||
|  | }; | ||||||
| @ -28,10 +28,10 @@ export default class EntryAbility extends UIAbility { | |||||||
|         globalThis.examinerInfo = {} |         globalThis.examinerInfo = {} | ||||||
|         globalThis.deviceNo = ''; |         globalThis.deviceNo = ''; | ||||||
|         globalThis.hasAuth = false |         globalThis.hasAuth = false | ||||||
|         // globalThis.version = '2022.08.13.01'//洛阳
 |         globalThis.version = '2022.08.13.01'//洛阳
 | ||||||
|         // globalThis.judgeVersion = '2022.12.05.1'
 |  | ||||||
|         globalThis.judgeVersion = '2022.12.05.1' |         globalThis.judgeVersion = '2022.12.05.1' | ||||||
|         globalThis.version = '2022.08.13.01' |         // globalThis.judgeVersion = '2022.12.05.1'
 | ||||||
|  |         // globalThis.version = '2022.08.13.01'
 | ||||||
|         // globalThis.version = '2024.11.22.14'//济南
 |         // globalThis.version = '2024.11.22.14'//济南
 | ||||||
|         // globalThis.judgeVersion = '2024.11.22.14'
 |         // globalThis.judgeVersion = '2024.11.22.14'
 | ||||||
|         globalThis.videoVersion= '1.0' |         globalThis.videoVersion= '1.0' | ||||||
|  | |||||||
| @ -9,6 +9,8 @@ import Judge from './judgeSDK/judge'; | |||||||
| import { defaultJudgeConfigObj } from './judgeSDK/utils//judgeCommon'; | import { defaultJudgeConfigObj } from './judgeSDK/utils//judgeCommon'; | ||||||
| import {uploadExamMileage} from '../api/judge' | import {uploadExamMileage} from '../api/judge' | ||||||
| import DwztErrorPopup from './compontents/judge/DwztErrorPopup' | import DwztErrorPopup from './compontents/judge/DwztErrorPopup' | ||||||
|  | import {debounce} from '../common/utils/tools' | ||||||
|  | 
 | ||||||
| import { | import { | ||||||
|   CARINFO, |   CARINFO, | ||||||
|   CDSBInfo, |   CDSBInfo, | ||||||
| @ -28,6 +30,7 @@ import { getSyncData } from '../common/service/initable'; | |||||||
| import { judgeConfig } from './judgeSDK/utils/judgeConfig'; | import { judgeConfig } from './judgeSDK/utils/judgeConfig'; | ||||||
| import FileUtil from '../common/utils/File'; | import FileUtil from '../common/utils/File'; | ||||||
| import SignDisplayCom from './compontents/signDisplayCom'; | import SignDisplayCom from './compontents/signDisplayCom'; | ||||||
|  | import promptAction from '@ohos.promptAction'; | ||||||
| 
 | 
 | ||||||
| @Entry | @Entry | ||||||
| @Component | @Component | ||||||
| @ -161,7 +164,8 @@ struct Index { | |||||||
|     const syssetParams = sysset || await getSyncData('MA_SYSSET') |     const syssetParams = sysset || await getSyncData('MA_SYSSET') | ||||||
|     //@ts-ignore |     //@ts-ignore | ||||||
|     const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901'); |     const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901'); | ||||||
|     this.serialNumber = (serialNumberArr[0] && serialNumberArr[0].v_value) || '123456' |     console.info('surenjun serialNumberArr' + JSON.stringify(serialNumberArr)) | ||||||
|  |     this.serialNumber = (serialNumberArr[0] && serialNumberArr[0].v_value) || ''; | ||||||
|     const {isTrajectoryOpen} = judgeConfig |     const {isTrajectoryOpen} = judgeConfig | ||||||
|     const syssetJudgeConfigArr = [] |     const syssetJudgeConfigArr = [] | ||||||
| 
 | 
 | ||||||
| @ -294,12 +298,15 @@ struct Index { | |||||||
|         this.projectsObj[no2*1] = currentProject |         this.projectsObj[no2*1] = currentProject | ||||||
|         this.projectsCenterObj[txt2] = currentProject |         this.projectsCenterObj[txt2] = currentProject | ||||||
|         this.projects.push(currentProject); |         this.projects.push(currentProject); | ||||||
|         console.info('surenjun txt2=>',txt2) | 
 | ||||||
|         //真实监管下发考试项目 |         //真实监管下发考试项目 | ||||||
|         if(isInExam && !kStringArr.includes(txt2)){ |         if(isInExam && !kStringArr.includes(txt2)){ | ||||||
|           this.projectsObj[no2*1].type = '3' |           this.projectsObj[no2*1].type = '3' | ||||||
|           this.projectsObj[no2*1].isUpload = true |           this.projectsObj[no2*1].isUpload = true | ||||||
|           this.projectsObj[no2*1].isEnd = true |           this.projectsObj[no2*1].isEnd = true | ||||||
|  |           this.projectsCenterObj[txt2].type = '3' | ||||||
|  |           this.projectsCenterObj[txt2].isUpload = true | ||||||
|  |           this.projectsCenterObj[txt2].isEnd = true | ||||||
|           this.isDdxk = true |           this.isDdxk = true | ||||||
|           this.ddxkKsxmArr.push(txt2) |           this.ddxkKsxmArr.push(txt2) | ||||||
|         } |         } | ||||||
| @ -381,6 +388,8 @@ struct Index { | |||||||
|               const projectCode = this.projectsCenterObj[xmdm].projectCode |               const projectCode = this.projectsCenterObj[xmdm].projectCode | ||||||
|               if(this.projectsObj[projectCode]){ |               if(this.projectsObj[projectCode]){ | ||||||
|                 this.projectsObj[projectCode].type = '3' |                 this.projectsObj[projectCode].type = '3' | ||||||
|  |                 this.projectsObj[projectCode].isUpload = true | ||||||
|  |                 this.projectsObj[projectCode].isEnd = true | ||||||
|               } |               } | ||||||
|             }) |             }) | ||||||
|             this.ddxkKsxmArr = ddxkKsxmArr |             this.ddxkKsxmArr = ddxkKsxmArr | ||||||
| @ -845,10 +854,15 @@ struct Index { | |||||||
|             this.isDeductedPopShow = false; |             this.isDeductedPopShow = false; | ||||||
|             this.defaultTabIndex = 0; |             this.defaultTabIndex = 0; | ||||||
|           }, |           }, | ||||||
|           confirmMark: async (itemno, serial) => { |           confirmMark: async (itemno, serial)=>{ | ||||||
|             const judge = this.judge |             clearTimeout(this.popTimer) | ||||||
|             await judge.setJudgeMark(itemno, serial); |             this.popTimer = null | ||||||
|             this.isDeductedPopShow = false |             this.popTimer =  setTimeout(async ()=>{ | ||||||
|  |               const judge = this.judge | ||||||
|  |               await judge.setJudgeMark(itemno, serial); | ||||||
|  |               this.isDeductedPopShow = false | ||||||
|  |               this.popTimer = null; | ||||||
|  |             },500) | ||||||
|           } |           } | ||||||
|         }) |         }) | ||||||
|       } |       } | ||||||
| @ -878,10 +892,15 @@ struct Index { | |||||||
|       if (this.isAmplifyPopShow && this.examSubject == 3) { |       if (this.isAmplifyPopShow && this.examSubject == 3) { | ||||||
|         AmplifyPopup({ |         AmplifyPopup({ | ||||||
|           amplifyImgIndex: this.amplifiedImgIndex, |           amplifyImgIndex: this.amplifiedImgIndex, | ||||||
|           confirmAmplify: async (amplify) => { |           confirmAmplify:async (amplify)=>{ | ||||||
|             const judge = this.judge |             clearTimeout(this.popTimer) | ||||||
|             await judge.setJudgeItem(amplify.projectCode, 1); |             this.popTimer = null | ||||||
|             this.isAmplifyPopShow = false |             this.popTimer =  setTimeout(async ()=>{ | ||||||
|  |               const judge = this.judge | ||||||
|  |               await judge.setJudgeItem(amplify.projectCode, 1); | ||||||
|  |               this.isAmplifyPopShow = false | ||||||
|  |               this.popTimer = null; | ||||||
|  |             },500) | ||||||
|           }, |           }, | ||||||
|           closeAmplifyPop: () => { |           closeAmplifyPop: () => { | ||||||
|             this.isAmplifyPopShow = false |             this.isAmplifyPopShow = false | ||||||
| @ -1262,4 +1281,5 @@ struct Index { | |||||||
|   @State mileageTimer: number = 0; |   @State mileageTimer: number = 0; | ||||||
|   @State passingScore: number = 80 |   @State passingScore: number = 80 | ||||||
|   @State dwztErrorVisible: boolean = false; |   @State dwztErrorVisible: boolean = false; | ||||||
|  |   @State popTimer:number =0; | ||||||
| } | } | ||||||
|  | |||||||
| @ -650,6 +650,8 @@ struct UserInfo { | |||||||
|           message, |           message, | ||||||
|           duration: 4000 |           duration: 4000 | ||||||
|         }) |         }) | ||||||
|  |         avPlayer.playAudio(['voice/监管审核未通过.mp3']); | ||||||
|  |         this.isLoadingPopupVisible = false | ||||||
|         return |         return | ||||||
|       } |       } | ||||||
|       this.currentUser.id = '0' |       this.currentUser.id = '0' | ||||||
| @ -799,7 +801,7 @@ struct UserInfo { | |||||||
|       drvexam, |       drvexam, | ||||||
|       xtlb: '17', |       xtlb: '17', | ||||||
|       //接口序列号 |       //接口序列号 | ||||||
|       jkxlh: this.jkxlh || '', |       jkxlh: this.jkxlh, | ||||||
|       //接口标识 |       //接口标识 | ||||||
|       jkid: '17C51', |       jkid: '17C51', | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -80,14 +80,16 @@ export default class Judge { | |||||||
| 
 | 
 | ||||||
|     this.isExam = !this.judgeUI.singlePlay; |     this.isExam = !this.judgeUI.singlePlay; | ||||||
|     const {projectsCenterObj,examSubject} = judgeUI; |     const {projectsCenterObj,examSubject} = judgeUI; | ||||||
|     //科目三待修改
 | 
 | ||||||
|     (examSubject ==2 ? testKm2Items : testKm3Items ).forEach(item => { |     (examSubject ==2 ? testKm2Items : testKm3Items ).forEach(item => { | ||||||
|  |       const projectCenterObj = projectsCenterObj[item.code] | ||||||
|       this.testKmItems[item.code] = item; |       this.testKmItems[item.code] = item; | ||||||
|       //考试项目存在
 |       //考试项目存在
 | ||||||
|       this.testKmItems[item.code] = { |       this.testKmItems[item.code] = { | ||||||
|         code: item.code, |         code: item.code, | ||||||
|         status: 1, |         status: projectCenterObj === undefined | ||||||
|         // status: projectsCenterObj[item.code]?.isRequired ? 1 : 0
 |               ? 0 | ||||||
|  |               : ( projectCenterObj.isEnd ? 3 : 1 ) | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     console.info(judgeTag+'testKmItems',JSON.stringify(this.testKmItems)) |     console.info(judgeTag+'testKmItems',JSON.stringify(this.testKmItems)) | ||||||
| @ -156,13 +158,25 @@ export default class Judge { | |||||||
|     let beginExamInfo = isTrajectoryOpen ? { |     let beginExamInfo = isTrajectoryOpen ? { | ||||||
|       ...JSON.parse(strArr[1]), |       ...JSON.parse(strArr[1]), | ||||||
|       replay: 1, |       replay: 1, | ||||||
|       ykxm:judgeConfig.ignoreProjects |  | ||||||
|     } : await getJudgeBeginData() |     } : await getJudgeBeginData() | ||||||
| 
 | 
 | ||||||
|     await fileLog.setExamJudgeData(beginExamInfo) |     await fileLog.setExamJudgeData(beginExamInfo) | ||||||
|     await examJudgeBeginExam(beginExamInfo); |     await examJudgeBeginExam(beginExamInfo); | ||||||
|     console.info(judgeTag, '6.开始考试注册完成') |     console.info(judgeTag, '6.开始考试注册完成') | ||||||
|     avPlayer.playAudio([globalThis.singlePlay ? 'voice/ksks.WAV' : 'voice/监管成功.mp3']) |     avPlayer.playAudio([globalThis.singlePlay ? 'voice/ksks.WAV' : 'voice/监管成功.mp3']) | ||||||
|  | 
 | ||||||
|  |     const {examSubject,projectsObj} = this.judgeUI | ||||||
|  |     if(examSubject == 3){ | ||||||
|  |       //不做模拟灯光,需要做上车准备 =>(请上车准备)
 | ||||||
|  |       if(projectsObj[41]?.type == 3 && projectsObj[1]?.type != 3){ | ||||||
|  |         avPlayer.playAudio(['voice/上车准备.mp3']) | ||||||
|  |       } | ||||||
|  |       //不做模拟灯光,不做上车准备 =>(请起步,完成考试)
 | ||||||
|  |       if(projectsObj[41]?.type == 3 && projectsObj[1]?.type == 3){ | ||||||
|  |         avPlayer.playAudio(['voice/402001.mp3']) | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     this.judgeUI.draw = true |     this.judgeUI.draw = true | ||||||
|     // 处理轨迹plc信息
 |     // 处理轨迹plc信息
 | ||||||
|     if (isTrajectoryOpen) { |     if (isTrajectoryOpen) { | ||||||
| @ -179,24 +193,15 @@ export default class Judge { | |||||||
|         handDistance(); |         handDistance(); | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
| 
 |  | ||||||
|     //TODO 监听远程扣分
 |     //TODO 监听远程扣分
 | ||||||
|   } |   } | ||||||
| 
 |   //实时计算gps经纬度距离
 | ||||||
| 
 |  | ||||||
|   handDistance= async ()=>{ |   handDistance= async ()=>{ | ||||||
|     const {jd,wd,hxj,dwzt} = this.tempData.gps; |     const {jd,wd,hxj,dwzt} = this.tempData.gps; | ||||||
|     const tJD = convertGpsCoord2(jd) |     const tJD = convertGpsCoord2(jd) | ||||||
|     const tWD = convertGpsCoord2(wd) |     const tWD = convertGpsCoord2(wd) | ||||||
|     const {prevJd,prevWd} = this |     const {prevJd,prevWd} = this | ||||||
|     console.info('surenjun =>prevJd',prevJd) |  | ||||||
|     console.info('surenjun =>dwzt',dwzt) |  | ||||||
|     if(prevJd && dwzt == 4){ |     if(prevJd && dwzt == 4){ | ||||||
|       console.info('surenjun =>tJD',tJD) |  | ||||||
|       console.info('surenjun =>tWD',tWD) |  | ||||||
|       console.info('surenjun =>prevJd',prevJd) |  | ||||||
|       console.info('surenjun =>preWd',prevWd) |  | ||||||
|       console.info('surenjun =>hxj',hxj) |  | ||||||
|       const distance = await examCalcGpsDistance({ |       const distance = await examCalcGpsDistance({ | ||||||
|         jd1:prevJd, |         jd1:prevJd, | ||||||
|         wd1:prevWd, |         wd1:prevWd, | ||||||
| @ -204,9 +209,8 @@ export default class Judge { | |||||||
|         wd2:tWD, |         wd2:tWD, | ||||||
|         h:hxj || 1, |         h:hxj || 1, | ||||||
|       }) |       }) | ||||||
|       console.info('surenjun =>distance',distance) |  | ||||||
|       //@ts-ignore
 |       //@ts-ignore
 | ||||||
|       globalThis.distanceClass.setTimeData(((distance / 100).toFixed(2)) * 1) |       globalThis.distanceClass?.setTimeData(((distance / 100).toFixed(2)) * 1) | ||||||
|     } |     } | ||||||
|     this.prevJd = tJD; |     this.prevJd = tJD; | ||||||
|     this.prevWd = tWD; |     this.prevWd = tWD; | ||||||
| @ -638,7 +642,6 @@ export default class Judge { | |||||||
|         kssj: time |         kssj: time | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     console.info(judgeTag +'filePath' , filePath) |  | ||||||
|     const {code} = await writeObjectOut(data,filePath) |     const {code} = await writeObjectOut(data,filePath) | ||||||
|     console.info(judgeTag, '项目开始 end') |     console.info(judgeTag, '项目开始 end') | ||||||
|     if (code === 2300007) { |     if (code === 2300007) { | ||||||
| @ -802,18 +805,9 @@ export default class Judge { | |||||||
|     //及格分
 |     //及格分
 | ||||||
|     let passingGrade = passingScore |     let passingGrade = passingScore | ||||||
|     if (isManual) { |     if (isManual) { | ||||||
|       if (isAllProjectsEnd) { |       // 考试不合格
 | ||||||
|         // 考试合格
 |       await examJudgeEndExam() | ||||||
|         if (totalScore >= passingGrade) { |       this.isExamEnd = true | ||||||
|           // 考试合格
 |  | ||||||
|           await examJudgeEndExam(); |  | ||||||
|           this.isExamEnd = true |  | ||||||
|         } |  | ||||||
|       } else { |  | ||||||
|         // 考试不合格
 |  | ||||||
|         await examJudgeEndExam() |  | ||||||
|         this.isExamEnd = true |  | ||||||
|       } |  | ||||||
|       this.isManual = true |       this.isManual = true | ||||||
|     } else { |     } else { | ||||||
|       const param302 = judgeConfigObj['302']; |       const param302 = judgeConfigObj['302']; | ||||||
| @ -824,17 +818,30 @@ export default class Judge { | |||||||
|       if (singlePlay) { |       if (singlePlay) { | ||||||
|         console.info(judgeTag + ' isAllProjectsEnd => ',isAllProjectsEnd) |         console.info(judgeTag + ' isAllProjectsEnd => ',isAllProjectsEnd) | ||||||
|         if (isAllProjectsEnd) { |         if (isAllProjectsEnd) { | ||||||
|           if (examSubject == 3 && (param342 == 0 || param342 == 2) && (param302 != 6 || param302 != 7 || param302 != 8)) { |            //成绩合格
 | ||||||
|             if(param512[7] != 0){ |            if(totalScore >= passingGrade && !isEndTip) { | ||||||
|               avPlayer.playAudio(['voice/综合评判.mp3']) |              if (examSubject == 3 && (param342 == 0 || param342 == 2) && (param302 != 6 || param302 != 7 || param302 != 8)) { | ||||||
|               this.judgeUI.isDeductedPopShow = true |                if(param512[7] != 0){ | ||||||
|               this.judgeUI.defaultTabIndex = 1 |                  avPlayer.playAudio(['voice/综合评判.mp3']) | ||||||
|               this.isEndTip = true |                  this.judgeUI.isDeductedPopShow = true | ||||||
|             } |                  this.judgeUI.defaultTabIndex = 1 | ||||||
|           } else { |                  this.isEndTip = true | ||||||
|             await examJudgeEndExam() |                  return | ||||||
|             this.isExamEnd = true |                } | ||||||
|           } |              } else { | ||||||
|  |                await examJudgeEndExam() | ||||||
|  |                this.isExamEnd = true | ||||||
|  |                return | ||||||
|  |              } | ||||||
|  |            }else{ | ||||||
|  |              if(examSubject == 3 && param302 == 4){ | ||||||
|  |                await examJudgeEndExam() | ||||||
|  |                this.isExamEnd = true | ||||||
|  |                return | ||||||
|  |              } | ||||||
|  |            } | ||||||
|  |           await examJudgeEndExam() | ||||||
|  |           this.isExamEnd = true | ||||||
|         } |         } | ||||||
|       } else { |       } else { | ||||||
|         //成绩不合格
 |         //成绩不合格
 | ||||||
| @ -850,6 +857,11 @@ export default class Judge { | |||||||
|         } |         } | ||||||
|         //成绩合格
 |         //成绩合格
 | ||||||
|         if (isAllProjectsEnd && totalScore >= passingGrade && !isEndTip) { |         if (isAllProjectsEnd && totalScore >= passingGrade && !isEndTip) { | ||||||
|  |           if(examSubject == 2){ | ||||||
|  |             await examJudgeEndExam() | ||||||
|  |             this.isExamEnd = true | ||||||
|  |             return | ||||||
|  |           } | ||||||
|           //考试合格自动退出
 |           //考试合格自动退出
 | ||||||
|           if(examSubject == 3 && param302 == 4){ |           if(examSubject == 3 && param302 == 4){ | ||||||
|             await examJudgeEndExam() |             await examJudgeEndExam() | ||||||
| @ -955,8 +967,15 @@ export default class Judge { | |||||||
|         dwlc: [d1,d2,d3,d4,d5].map((d,index) => `${index+1},${Math.floor(d /100)}`).join(';'), |         dwlc: [d1,d2,d3,d4,d5].map((d,index) => `${index+1},${Math.floor(d /100)}`).join(';'), | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     const temp = await writeObjectOut(data,filePath); |     const {code,keystr,message} = await writeObjectOut(data,filePath); | ||||||
|     promptWxCode('17C56', temp.code) |     promptWxCode('17C56', code) | ||||||
|  | 
 | ||||||
|  |     if(code != 1){ | ||||||
|  |       avPlayer.playAudio(['voice/监管失败.mp3']) | ||||||
|  |       this.isUdpEnd = true | ||||||
|  |       router.back(); | ||||||
|  |       return | ||||||
|  |     } | ||||||
|     console.info(judgeTag, '考试结束 end') |     console.info(judgeTag, '考试结束 end') | ||||||
|     const param302 = judgeConfigObj['302']; |     const param302 = judgeConfigObj['302']; | ||||||
|     judgeUI.loadingPopupVisible = true; |     judgeUI.loadingPopupVisible = true; | ||||||
| @ -964,8 +983,13 @@ export default class Judge { | |||||||
|     let currentKssycs =0; |     let currentKssycs =0; | ||||||
|     let voiceURL = '' |     let voiceURL = '' | ||||||
|     if (examSubject == 2) { |     if (examSubject == 2) { | ||||||
|       voiceURL = (totalScore < passingScore ? `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav` : 'voice/qualified.mp3') |        if (isAllProjectsEnd) { | ||||||
|       switch (voiceURL){ |          voiceURL = (totalScore < passingScore ? `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav` : 'voice/qualified.mp3') | ||||||
|  |        }else{ | ||||||
|  |          voiceURL = `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav` | ||||||
|  |          currentKssycs = kssycs == 1 ? 0 : 1 | ||||||
|  |        } | ||||||
|  |        switch (voiceURL){ | ||||||
|         case 'voice/unqualified_one.wav': |         case 'voice/unqualified_one.wav': | ||||||
|           currentKssycs = 0; |           currentKssycs = 0; | ||||||
|           break; |           break; | ||||||
| @ -1063,6 +1087,7 @@ export default class Judge { | |||||||
|     const projectsObj = this.judgeUI.projectsObj |     const projectsObj = this.judgeUI.projectsObj | ||||||
|     return projectsObj[type]?.abbreviation || '通用评判' |     return projectsObj[type]?.abbreviation || '通用评判' | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|   // 扣分项目转换
 |   // 扣分项目转换
 | ||||||
|   getKfStr = (code) => { |   getKfStr = (code) => { | ||||||
|     const markRuleListObj = this.judgeUI.markRuleListObj; |     const markRuleListObj = this.judgeUI.markRuleListObj; | ||||||
| @ -1107,7 +1132,7 @@ export default class Judge { | |||||||
|     const sbxh = getSbxh(xmdm, xmxh) |     const sbxh = getSbxh(xmdm, xmxh) | ||||||
|     const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo || {}; |     const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo || {}; | ||||||
|     const asclshArr = stringToASC( |     const asclshArr = stringToASC( | ||||||
|       fillZero((singlePlay ? 1111111111111 : lsh) || 0, 13) |       fillZero((singlePlay ? (examSubject == 2 ? '0000000000000':'1111111111111') : lsh) || 0, 13) | ||||||
|     ); |     ); | ||||||
|     //13不足要补0
 |     //13不足要补0
 | ||||||
|     const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13)) |     const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13)) | ||||||
| @ -1124,7 +1149,6 @@ export default class Judge { | |||||||
| 
 | 
 | ||||||
|     //@ts-ignore
 |     //@ts-ignore
 | ||||||
|     let tempSd = ((judgeConfigObj['350'] ==0 ? sd : cs) * 1.852).toFixed(0) * 1 |     let tempSd = ((judgeConfigObj['350'] ==0 ? sd : cs) * 1.852).toFixed(0) * 1 | ||||||
|     console.info(judgeTag + "prevSD",tempSd); |  | ||||||
|     if(tempSd < 1){ |     if(tempSd < 1){ | ||||||
|       tempSd = 0 |       tempSd = 0 | ||||||
|     } |     } | ||||||
| @ -1228,7 +1252,6 @@ export default class Judge { | |||||||
|         status: getCenterProjectStatus(current.status) |         status: getCenterProjectStatus(current.status) | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     // console.info(judgeTag+'TranslateProject',JSON.stringify(tempItems));
 |  | ||||||
| 
 | 
 | ||||||
|     const arr = []; |     const arr = []; | ||||||
|     for (let i = 0; i <= 4; i++) { |     for (let i = 0; i <= 4; i++) { | ||||||
| @ -1276,6 +1299,7 @@ export default class Judge { | |||||||
|   } |   } | ||||||
|   //人工操作项目
 |   //人工操作项目
 | ||||||
|   public setJudgeItem = async (itemno, type: 1 | 2) => { |   public setJudgeItem = async (itemno, type: 1 | 2) => { | ||||||
|  |     console.info('surenjun','2') | ||||||
|     const {fileLog} = this; |     const {fileLog} = this; | ||||||
|     await examJudgeArtificialItem(itemno * 1, type); |     await examJudgeArtificialItem(itemno * 1, type); | ||||||
|     await fileLog.setExamJudgeData({ |     await fileLog.setExamJudgeData({ | ||||||
| @ -1392,7 +1416,10 @@ export default class Judge { | |||||||
|     if (udpIndex % 5 === 0 && !isUdpEnd) { |     if (udpIndex % 5 === 0 && !isUdpEnd) { | ||||||
|       const judgeUdp = globalThis.judgeUdp |       const judgeUdp = globalThis.judgeUdp | ||||||
|       const bytes = await this.getMessageHeartbeat(isExamEnd); |       const bytes = await this.getMessageHeartbeat(isExamEnd); | ||||||
|  |       console.info(judgeTag,JSON.stringify(bytes)) | ||||||
|  |       console.info(judgeTag,'udp-prev-send') | ||||||
|       judgeUdp.send(bytes) |       judgeUdp.send(bytes) | ||||||
|  |       console.info(judgeTag,'udp-prev-end') | ||||||
|     } |     } | ||||||
|     globalThis.udpIndex += 1 |     globalThis.udpIndex += 1 | ||||||
|   } |   } | ||||||
| @ -1444,12 +1471,13 @@ export default class Judge { | |||||||
|       const msgStr = strArr[num]; |       const msgStr = strArr[num]; | ||||||
|       if(msgStr == ''){ |       if(msgStr == ''){ | ||||||
|         console.info(judgeTag, '模拟数据考试结束') |         console.info(judgeTag, '模拟数据考试结束') | ||||||
|         // globalThis.windowClass.setWindowSystemBarEnable(['navigation'])
 |         globalThis.windowClass.setWindowSystemBarEnable(['navigation']) | ||||||
|         clearInterval(judgeTimer) |         clearInterval(judgeTimer) | ||||||
|         this.checkExamIsEnd(true) |         this.checkExamIsEnd(true) | ||||||
|         return |         return | ||||||
|       } |       } | ||||||
|       const msg = JSON.parse(strArr[num]); |       const msg = JSON.parse(strArr[num]); | ||||||
|  |       num++ | ||||||
|       // 4.过程数据
 |       // 4.过程数据
 | ||||||
|       this.tempData = msg |       this.tempData = msg | ||||||
|       this.judgeUI.isDwztRight = msg?.gps?.dwzt == 4; |       this.judgeUI.isDwztRight = msg?.gps?.dwzt == 4; | ||||||
| @ -1467,8 +1495,8 @@ export default class Judge { | |||||||
|       await examJudgeRealExam(msg) |       await examJudgeRealExam(msg) | ||||||
|       const bytes = await this.getMessageHeartbeat(); |       const bytes = await this.getMessageHeartbeat(); | ||||||
|       bytes && globalThis.judgeUdp.send(bytes) |       bytes && globalThis.judgeUdp.send(bytes) | ||||||
|       num++ | 
 | ||||||
|     }, 200) |     }, 50) | ||||||
| 
 | 
 | ||||||
|     globalThis.judgeTimer = judgeTimer; |     globalThis.judgeTimer = judgeTimer; | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -16,7 +16,7 @@ export const judgeConfig = { | |||||||
|   // 本地模型地址
 |   // 本地模型地址
 | ||||||
|   modelPath: 'models/model_enc', |   modelPath: 'models/model_enc', | ||||||
|   // 济南科目三
 |   // 济南科目三
 | ||||||
|   trajectoryPath: 'logs/2024_08_17/2024_08_17_16_51_24_9999282315477_203908531884520064_彭雯季/judge_exam_data.txt', |   trajectoryPath: 'logs/2024_08_29/2024_08_29_09_48_08_2230612098578_410311200501058031_闫嘉衡/judge_exam_data.txt', | ||||||
|   //四合一画面配置
 |   //四合一画面配置
 | ||||||
|   fourInOneScreen:{ |   fourInOneScreen:{ | ||||||
|     //gps位数
 |     //gps位数
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user