feat:评判修噶
This commit is contained in:
		
							parent
							
								
									e917107df1
								
							
						
					
					
						commit
						f0c6451623
					
				| @ -31,6 +31,7 @@ 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'; | import promptAction from '@ohos.promptAction'; | ||||||
|  | import { voiceService } from '../common/service/voiceService'; | ||||||
| 
 | 
 | ||||||
| @Entry | @Entry | ||||||
| @Component | @Component | ||||||
| @ -40,6 +41,8 @@ struct Index { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async aboutToAppear() { |   async aboutToAppear() { | ||||||
|  |     this.vocObj = new voiceService(async (status, val, next) => { | ||||||
|  |     }); | ||||||
|     globalThis.windowClass.setWindowSystemBarEnable([]) |     globalThis.windowClass.setWindowSystemBarEnable([]) | ||||||
|     const time = await getCurrentTime() |     const time = await getCurrentTime() | ||||||
| 
 | 
 | ||||||
| @ -57,11 +60,9 @@ struct Index { | |||||||
|     await this.initDb() |     await this.initDb() | ||||||
|     //断点续考 |     //断点续考 | ||||||
|     await this.goDdxkItems() |     await this.goDdxkItems() | ||||||
| 
 |  | ||||||
|     //初始化评判 |     //初始化评判 | ||||||
|     const judge = await this.initJudge(); |     const judge = await this.initJudge(); | ||||||
|     this.judge = judge |     this.judge = judge | ||||||
| 
 |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   //初始化相关数据库表 |   //初始化相关数据库表 | ||||||
| @ -760,6 +761,10 @@ struct Index { | |||||||
|                             .height(118 * 0.95) |                             .height(118 * 0.95) | ||||||
|                             .margin({ bottom: 8 }) |                             .margin({ bottom: 8 }) | ||||||
|                             .onClick(() => { |                             .onClick(() => { | ||||||
|  |                               this.vocObj.playAudio({ | ||||||
|  |                                 type: 1, | ||||||
|  |                                 name: 'button_media.wav' | ||||||
|  |                               }) | ||||||
|                               this.setManualProjectFn(index) |                               this.setManualProjectFn(index) | ||||||
|                             }) |                             }) | ||||||
|                           }) |                           }) | ||||||
| @ -792,6 +797,10 @@ struct Index { | |||||||
|             .alignItems(VerticalAlign.Center) |             .alignItems(VerticalAlign.Center) | ||||||
|             .border({ width: 5, color: '#4D4136', radius: 30 }) |             .border({ width: 5, color: '#4D4136', radius: 30 }) | ||||||
|             .onClick(() => { |             .onClick(() => { | ||||||
|  |               this.vocObj.playAudio({ | ||||||
|  |                 type: 1, | ||||||
|  |                 name: 'button_media.wav' | ||||||
|  |               }) | ||||||
|               this.signDisplayComVisible = true |               this.signDisplayComVisible = true | ||||||
|             }) |             }) | ||||||
| 
 | 
 | ||||||
| @ -827,6 +836,10 @@ struct Index { | |||||||
|               .backgroundImageSize({ width: '100%', height: '100%' }) |               .backgroundImageSize({ width: '100%', height: '100%' }) | ||||||
|               .margin({ bottom: 10 }) |               .margin({ bottom: 10 }) | ||||||
|               .onClick(() => { |               .onClick(() => { | ||||||
|  |                 this.vocObj.playAudio({ | ||||||
|  |                   type: 1, | ||||||
|  |                   name: 'button_media.wav' | ||||||
|  |                 }) | ||||||
|                 this.isDeductedPopShow = true |                 this.isDeductedPopShow = true | ||||||
|               }) |               }) | ||||||
|             } |             } | ||||||
| @ -856,6 +869,10 @@ struct Index { | |||||||
|             .backgroundImage($rawfile('judge/anniu_nor.png'), ImageRepeat.NoRepeat) |             .backgroundImage($rawfile('judge/anniu_nor.png'), ImageRepeat.NoRepeat) | ||||||
|             .backgroundImageSize({ width: '100%', height: '100%' }) |             .backgroundImageSize({ width: '100%', height: '100%' }) | ||||||
|             .onClick(() => { |             .onClick(() => { | ||||||
|  |               this.vocObj.playAudio({ | ||||||
|  |                 type: 1, | ||||||
|  |                 name: 'button_media.wav' | ||||||
|  |               }) | ||||||
|               if (this.judgeConfigObj['353'] == '0') { |               if (this.judgeConfigObj['353'] == '0') { | ||||||
|                 this.endPopupVisible = true |                 this.endPopupVisible = true | ||||||
|               } else { |               } else { | ||||||
| @ -919,6 +936,10 @@ struct Index { | |||||||
|           .backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat) |           .backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat) | ||||||
|           .backgroundImageSize({ width: '33.33%', height: '33.33%' }) |           .backgroundImageSize({ width: '33.33%', height: '33.33%' }) | ||||||
|           .onClick(() => { |           .onClick(() => { | ||||||
|  |             this.vocObj.playAudio({ | ||||||
|  |               type: 1, | ||||||
|  |               name: 'button_media.wav' | ||||||
|  |             }) | ||||||
|             this.signDisplayComVisible = false |             this.signDisplayComVisible = false | ||||||
|           }) |           }) | ||||||
|         }.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)') |         }.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)') | ||||||
| @ -1330,10 +1351,11 @@ struct Index { | |||||||
|   @State lane: LANE = { road: '', num: 0, count: 0 } |   @State lane: LANE = { road: '', num: 0, count: 0 } | ||||||
|   @State roadData: Object = {}; |   @State roadData: Object = {}; | ||||||
|   //定位差分状态时候正常 |   //定位差分状态时候正常 | ||||||
|   @State isDwztRight: boolean = false; |   @State isDwztRight: boolean = true; | ||||||
|   @State defaultTabIndex: number = 0; |   @State defaultTabIndex: number = 0; | ||||||
|   private context = getContext(this) as common.UIAbilityContext; |   private context = getContext(this) as common.UIAbilityContext; | ||||||
|   public kfArrScroller: Scroller = new Scroller() |   public kfArrScroller: Scroller = new Scroller() | ||||||
|  |   private vocObj = null; | ||||||
|   //档位 |   //档位 | ||||||
|   @State dw: string = '' |   @State dw: string = '' | ||||||
|   //速度 |   //速度 | ||||||
|  | |||||||
| @ -97,8 +97,8 @@ export interface MAPITEMPOINTITEM { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface EXAMDATA { | export interface EXAMDATA { | ||||||
|   //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件
 |   //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件 11:差分事件
 | ||||||
|   event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |   event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||||||
|   //时间
 |   //时间
 | ||||||
|   sj: number |   sj: number | ||||||
|   //考车状态 -1:后退 0:停车 1:前进
 |   //考车状态 -1:后退 0:停车 1:前进
 | ||||||
| @ -164,6 +164,9 @@ export interface EXAMDATA { | |||||||
|     xmdm:number, |     xmdm:number, | ||||||
|     xmxh:string |     xmxh:string | ||||||
|   } |   } | ||||||
|  |   nongps:{ | ||||||
|  |     type:0|1|2|3|4 | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface KSJS { | export interface KSJS { | ||||||
|  | |||||||
| @ -72,7 +72,6 @@ export default class Judge { | |||||||
|     this.kfArr = judgeUI.kfArr |     this.kfArr = judgeUI.kfArr | ||||||
|     this.xmmcStr = ''; |     this.xmmcStr = ''; | ||||||
|     this.xmmcCode = ''; |     this.xmmcCode = ''; | ||||||
|     this.xmmcEndCode = undefined; |  | ||||||
|     this.carztStr = ''; |     this.carztStr = ''; | ||||||
|     this.testKmItems = {}; |     this.testKmItems = {}; | ||||||
|     // 考试回放配置
 |     // 考试回放配置
 | ||||||
| @ -359,7 +358,7 @@ export default class Judge { | |||||||
|   handleRealExam = async (strData, callBack) => { |   handleRealExam = async (strData, callBack) => { | ||||||
|     let examData: EXAMDATA = JSON.parse(strData); |     let examData: EXAMDATA = JSON.parse(strData); | ||||||
|     const {getDqxmStr,getKfStr,goJudgeVoice,setMndg,avPlayer,fileLog,judgeUI} = this; |     const {getDqxmStr,getKfStr,goJudgeVoice,setMndg,avPlayer,fileLog,judgeUI} = this; | ||||||
|     const {carzt,xmks,kf,event,xmjs,xmqx,ksjs,sound,mndg,lane,precast} = examData |     const {carzt,xmks,kf,event,xmjs,xmqx,ksjs,sound,mndg,lane,precast,nongps} = examData | ||||||
|     const  param512 = (judgeUI.judgeConfigObj['512'] || '').split(','); |     const  param512 = (judgeUI.judgeConfigObj['512'] || '').split(','); | ||||||
|     //获取项目结束、项目开始代码
 |     //获取项目结束、项目开始代码
 | ||||||
|     const xmdm = event == 2 ? xmjs.xmdm : xmks.xmdm |     const xmdm = event == 2 ? xmjs.xmdm : xmks.xmdm | ||||||
| @ -386,7 +385,6 @@ export default class Judge { | |||||||
|         this.xmmcStr = xmmcStr; |         this.xmmcStr = xmmcStr; | ||||||
|         this.xmmcCode = xmmcCode; |         this.xmmcCode = xmmcCode; | ||||||
|         this.xmmcSingleCode = xmmcSingleCode |         this.xmmcSingleCode = xmmcSingleCode | ||||||
|         this.xmmcEndCode = xmmcCode |  | ||||||
|         this.xmdm = xmdm; |         this.xmdm = xmdm; | ||||||
|         this.xmxh = xmxh; |         this.xmxh = xmxh; | ||||||
|         this.judgeUI.isProjectIn = true |         this.judgeUI.isProjectIn = true | ||||||
| @ -484,7 +482,7 @@ export default class Judge { | |||||||
|       case 10:{ |       case 10:{ | ||||||
|         const param611 = judgeConfigObj['611'] || ''; |         const param611 = judgeConfigObj['611'] || ''; | ||||||
|         const [f,s] = param611.split('/') |         const [f,s] = param611.split('/') | ||||||
|         const {xmdm,xmxh} = precast; |         const {xmdm} = precast; | ||||||
|         const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter; |         const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter; | ||||||
|         const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode; |         const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode; | ||||||
|         // if(examSubject == 2 && ((xmdm == 0 && f == 1) || (xmdm == 1 && s == 1) || xmdm == 3)){
 |         // if(examSubject == 2 && ((xmdm == 0 && f == 1) || (xmdm == 1 && s == 1) || xmdm == 3)){
 | ||||||
| @ -494,13 +492,16 @@ export default class Judge { | |||||||
|         this.testKmItems[xmmcCode].status = 2; |         this.testKmItems[xmmcCode].status = 2; | ||||||
|         this.xmmcStr = xmmcStr; |         this.xmmcStr = xmmcStr; | ||||||
|         this.xmmcCode = xmmcCode; |         this.xmmcCode = xmmcCode; | ||||||
|         this.xmdm = xmdm; |  | ||||||
|         this.xmxh = xmxh; |  | ||||||
|         this.xmmcSingleCode = xmmcSingleCode; |         this.xmmcSingleCode = xmmcSingleCode; | ||||||
|         judgeUI.projectsObj[xmdm].type = '2'; |         judgeUI.projectsObj[xmdm].type = '2'; | ||||||
|       } |       } | ||||||
|         break; |         break; | ||||||
| 
 | 
 | ||||||
|  |     //差分事件
 | ||||||
|  |       case 11:{ | ||||||
|  |         const {type}= nongps | ||||||
|  |         this.checkDwzt(type) | ||||||
|  |       } | ||||||
|       default: |       default: | ||||||
|         break; |         break; | ||||||
| 
 | 
 | ||||||
| @ -593,7 +594,6 @@ export default class Judge { | |||||||
|               console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`) |               console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`) | ||||||
|               await endProject(xmdm); |               await endProject(xmdm); | ||||||
|               this.xmmcSingleCode = 0; |               this.xmmcSingleCode = 0; | ||||||
|               this.xmmcEndCode = undefined; |  | ||||||
|             }, {isDelay: true}) |             }, {isDelay: true}) | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
| @ -760,7 +760,7 @@ export default class Judge { | |||||||
|     const carInfo = globalThis.carInfo; |     const carInfo = globalThis.carInfo; | ||||||
|     const deviceNo = globalThis.deviceNo; |     const deviceNo = globalThis.deviceNo; | ||||||
|     const { examSubject,plateNo,carNo } = carInfo; |     const { examSubject,plateNo,carNo } = carInfo; | ||||||
|     const {judgeUI,getProjectInfo,fileLog,xmmcEndCode,filePath} = this; |     const {judgeUI,getProjectInfo,fileLog,xmmcSingleCode,filePath} = this; | ||||||
|     const {lsh,idCard,serialNumber,ksdd,projectsObj} = judgeUI |     const {lsh,idCard,serialNumber,ksdd,projectsObj} = judgeUI | ||||||
|     const time = await getCurrentTime(); |     const time = await getCurrentTime(); | ||||||
|     const project = getProjectInfo(ksxm); |     const project = getProjectInfo(ksxm); | ||||||
| @ -776,11 +776,6 @@ export default class Judge { | |||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
|     console.info('surenjun','开始扣分') |  | ||||||
|     console.info('surenjun ksxm=>',ksxm) |  | ||||||
|     console.info('surenjun commonKsxm=>',commonKsxm) |  | ||||||
|     console.info('surenjun project=>',JSON.stringify(project)) |  | ||||||
| 
 |  | ||||||
|     const data = { |     const data = { | ||||||
|       xtlb: '17', jkxlh: serialNumber, jkid: '17C53', |       xtlb: '17', jkxlh: serialNumber, jkid: '17C53', | ||||||
|       drvexam: { |       drvexam: { | ||||||
| @ -789,7 +784,7 @@ export default class Judge { | |||||||
|         ksxm: project == undefined |         ksxm: project == undefined | ||||||
|           ? (commonKsxm |           ? (commonKsxm | ||||||
|             ? (projectsObj[commonKsxm].projectCodeCenter) |             ? (projectsObj[commonKsxm].projectCodeCenter) | ||||||
|             : (examSubject == 3 ? 30000 : (xmmcEndCode == undefined?10000:xmmcEndCode))) |             : (examSubject == 3 ? 30000 : 10000)) | ||||||
|           : project.projectCodeCenter , |           : project.projectCodeCenter , | ||||||
|         kfxm: kf.markcatalog, |         kfxm: kf.markcatalog, | ||||||
|         kfxmmx: `${ksxm},${kf.markserial}`, |         kfxmmx: `${ksxm},${kf.markserial}`, | ||||||
| @ -1487,13 +1482,13 @@ export default class Judge { | |||||||
|       const str = await senorToWXDataStr(msg); |       const str = await senorToWXDataStr(msg); | ||||||
|       usbService.sendUSB(str) |       usbService.sendUSB(str) | ||||||
|     } |     } | ||||||
|     this.judgeUI.isDwztRight = (plcData.gps.dwzt == 4 && plcData.gps.jdzt == 3); |     // this.judgeUI.isDwztRight = (plcData.gps.dwzt == 4 && plcData.gps.jdzt == 3);
 | ||||||
|     const param350 = judgeUI.judgeConfigObj['350'] |     const param350 = judgeUI.judgeConfigObj['350'] | ||||||
|     //@ts-ignore
 |     //@ts-ignore
 | ||||||
|     this.judgeUI.sd = ((param350 == 0? plcData.gps.sd :plcData.sensor.cs) as number * 1.852).toFixed(0)   + '' |     this.judgeUI.sd = ((param350 == 0? plcData.gps.sd :plcData.sensor.cs) as number * 1.852).toFixed(0)   + '' | ||||||
|     this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + '' |     this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + '' | ||||||
|     //TODO 暂时关闭差分检测异常
 |     //TODO 暂时关闭差分检测异常
 | ||||||
|     await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt); |     // await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt);
 | ||||||
|     if(!isExamEnd){ |     if(!isExamEnd){ | ||||||
|       await examJudgeRealExam(plcData) |       await examJudgeRealExam(plcData) | ||||||
|     } |     } | ||||||
| @ -1579,7 +1574,7 @@ export default class Judge { | |||||||
|       const bytes = await this.getMessageHeartbeat(); |       const bytes = await this.getMessageHeartbeat(); | ||||||
|       bytes && globalThis.judgeUdp.send(bytes) |       bytes && globalThis.judgeUdp.send(bytes) | ||||||
| 
 | 
 | ||||||
|     }, 50) |     }, 20) | ||||||
| 
 | 
 | ||||||
|     globalThis.judgeTimer = judgeTimer; |     globalThis.judgeTimer = judgeTimer; | ||||||
|   } |   } | ||||||
| @ -1620,25 +1615,35 @@ export default class Judge { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   // 检测差分状态
 |   // 检测差分状态
 | ||||||
|   checkDwzt = async (dwzt,jdzt) => { |   checkDwzt = async (type) => { | ||||||
|     const {avPlayer} = this; |     const {avPlayer} = this; | ||||||
|     const judgeConfig = this.judgeUI.judgeConfig; |     const judgeConfig = this.judgeUI.judgeConfig; | ||||||
|     const param499 = judgeConfig['499'] || ''; |     switch (type){ | ||||||
|     if(param499 == '' || param499 == undefined){ |       case 0: | ||||||
|       return |         this.judgeUI.isDwztRight = true; | ||||||
|     } |         break; | ||||||
|     //10秒内dwzt不为4;
 | 
 | ||||||
|     const dwztNum = this.dwztNum |       case 1: | ||||||
|     if(dwztNum != 0 && (dwztNum % (5 * 10) == 0)  && (param499 !== '' || param499 !== undefined)){ |  | ||||||
|         this.judgeUI.dwztErrorVisible = true; |         this.judgeUI.dwztErrorVisible = true; | ||||||
|         avPlayer.playAudio([`voice/差分状态异常.mp3`],true) |         avPlayer.playAudio([`voice/差分状态异常.mp3`],true) | ||||||
|     } |         setTimeout(()=>{ | ||||||
|  |           router.back() | ||||||
|  |         },3000) | ||||||
|  |         break; | ||||||
| 
 | 
 | ||||||
|     if(dwzt != 4 || jdzt != 3){ |       case 2: | ||||||
|       this.dwztNum += 1 |         avPlayer.playAudio([`voice/差分状态异常.mp3`],true); | ||||||
|     }else{ | 
 | ||||||
|       this.dwztNum = 0; |         break; | ||||||
|       this.judgeUI.dwztErrorVisible = false; |       case 3: | ||||||
|  |         this.judgeUI.dwztErrorVisible = true; | ||||||
|  |         avPlayer.playAudio([`voice/差分状态异常.mp3`],true); | ||||||
|  |         break; | ||||||
|  | 
 | ||||||
|  |       case 4: | ||||||
|  |         this.judgeUI.isDwztRight = false; | ||||||
|  |       //差分异常上报
 | ||||||
|  |         break; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -1659,7 +1664,6 @@ export default class Judge { | |||||||
|   private xmmcStr: string |   private xmmcStr: string | ||||||
|   private xmmcCode: string |   private xmmcCode: string | ||||||
|   private xmmcSingleCode: number |   private xmmcSingleCode: number | ||||||
|   private xmmcEndCode?:number |  | ||||||
|   private xmdm: string | number |   private xmdm: string | number | ||||||
|   private xmxh: string |   private xmxh: string | ||||||
|   private fileModel: FileModel |   private fileModel: FileModel | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user