feat:科目三联网优化
This commit is contained in:
		
							parent
							
								
									438e8bc278
								
							
						
					
					
						commit
						f7717785a5
					
				| @ -25,8 +25,8 @@ CommonConstants { | ||||
|    */ | ||||
|   static readonly ACCOUNT_TABLE = { | ||||
|     tableName: 'USER', | ||||
|     sqlCreate: 'CREATE TABLE IF NOT EXISTS USER(id INTEGER PRIMARY KEY AUTOINCREMENT,sfzmhm TEXT,xm CHAR(20), lsh TEXT, kszp TEXT,ksdd TEXT,kssycs TEXT,kslx TEXT,kscx TEXT,ksxl TEXT)', | ||||
|     columns: ['id','sfzmhm','xm','lsh','kszp','ksdd','kssycs','kslx','kscx','ksxl'] | ||||
|     sqlCreate: 'CREATE TABLE IF NOT EXISTS USER(id INTEGER PRIMARY KEY AUTOINCREMENT,sfzmhm TEXT,xm CHAR(20), lsh TEXT, kszp TEXT,ksdd TEXT,kssycs TEXT,kslx TEXT,kscx TEXT,ksxl TEXT,xldm TEXT)', | ||||
|     columns: ['id','sfzmhm','xm','lsh','kszp','ksdd','kssycs','kslx','kscx','ksxl','xldm'] | ||||
|   }; | ||||
| 
 | ||||
|   /** | ||||
|  | ||||
| @ -39,8 +39,8 @@ export const getMessageHeartbeat = async (msg) => { | ||||
|   const { examSubject,plateNo } = carInfo; | ||||
|   const ksyh='0000000000000' | ||||
|   const {fourInOneScreen:{gpsDigit}} = judgeConfig | ||||
|   const asclshArr = stringToASC(fillZero('0000000000000', 13)); | ||||
|   const ascksyhArr = stringToASC(fillZero('0000000000000', 13)) | ||||
|   const asclshArr = stringToASC(fillZero('1111111111111', 13)); | ||||
|   const ascksyhArr = stringToASC(fillZero('1111111111111', 13)) | ||||
|   const ascsbxhArr = stringToASC('00000000') | ||||
|   // const ascsbxhArr = stringToASC('153216400880')
 | ||||
|   const serialIndex = globalThis.serialIndex | ||||
|  | ||||
| @ -115,7 +115,7 @@ struct Index { | ||||
|   async initStudent() { | ||||
|     const students = await getSyncData('USER') | ||||
|     const stuInfo = students[0] || {}; | ||||
|     const {xm,sfzmhm,lsh,kszp,ksdd,kssycs,kslx,ksxl} = stuInfo; | ||||
|     const {xm,sfzmhm,lsh,kszp,ksdd,kssycs,kslx,ksxl,xldm} = stuInfo; | ||||
|     this.name = xm || '测试考生'; | ||||
|     this.idCard = sfzmhm || '01234567891010'; | ||||
|     this.lsh = globalThis.singlePlay?'0000000000000':lsh; | ||||
| @ -124,6 +124,7 @@ struct Index { | ||||
|     this.kssycs = kssycs; | ||||
|     this.ksxl = ksxl; | ||||
|     this.wayno = ksxl; | ||||
|     this.xldm = xldm; | ||||
|     this.kslx = kslx; | ||||
|   } | ||||
| 
 | ||||
| @ -279,7 +280,7 @@ struct Index { | ||||
|           projectCode: no2, | ||||
|           projectCodeCenter: txt2, | ||||
|           //是否是必考  加减档设置成非必考 | ||||
|           isRequired: no2== 14?false:allItems.includes(no2 + ''), | ||||
|           isRequired: no2== 14 ? false : allItems.includes(no2 + ''), | ||||
|           //是否考过了 | ||||
|           isEnd: false, | ||||
|           //项目开始数据是否上传过 | ||||
| @ -1178,6 +1179,8 @@ struct Index { | ||||
|   @State kssycs: string = '' | ||||
|   @State ksxl: string = '' | ||||
|   @State kslx: string = '' | ||||
|   //监管线路代码 | ||||
|   @State xldm: string = '' | ||||
|   //监管接口序列号 | ||||
|   @State serialNumber: number = 0 | ||||
|   @State carType: string = '' | ||||
|  | ||||
| @ -558,7 +558,7 @@ export const testUIAllitems = [ | ||||
| ] | ||||
| 
 | ||||
| export const wuxiKm3Items = [ | ||||
|     //3,5,9,12,14,15,16,
 | ||||
| //3,5,9,12,14,15,16,
 | ||||
|     {projectCode:'1',projectCodeCenter:'40100',name:'上车准备',abbreviation:'上车准备'}, | ||||
|     {projectCode:'2',projectCodeCenter:'40200',name:'起步',abbreviation:'起步'}, | ||||
|     {projectCode:'3',projectCodeCenter:'40300',name:'直线行驶',abbreviation:'直线行驶'}, | ||||
| @ -571,7 +571,7 @@ export const wuxiKm3Items = [ | ||||
|     {projectCode:'10',projectCodeCenter:'41400',name:'超车',abbreviation:'超车'}, | ||||
|     {projectCode:'11',projectCodeCenter:'40600',name:'靠边停车',abbreviation:'靠边停车'}, | ||||
|     {projectCode:'12',projectCodeCenter:'41500',name:'掉头',abbreviation:'掉头'}, | ||||
|     {projectCode:'41',projectCodeCenter:'41600',name:'夜间行驶',abbreviation:'夜间行驶'}, | ||||
|     {projectCode:'41',projectCodeCenter:'41600',name:'模拟夜间灯光',abbreviation:'模拟夜间灯光'}, | ||||
|     {projectCode:'14',projectCodeCenter:'40400',name:'加减档位操作',abbreviation:'加减档位操作'}, | ||||
|     {projectCode:'15',projectCodeCenter:'40800',name:'路口左转弯',abbreviation:'路口左转弯'}, | ||||
|     {projectCode:'16',projectCodeCenter:'40900',name:'路口右转弯',abbreviation:'路口右转弯'}, | ||||
| @ -622,9 +622,9 @@ export const testKm3Items= [ | ||||
|     {code:'41300',status:0}, | ||||
|     {code:'41400',status:0}, | ||||
|     {code:'41500',status:0}, | ||||
|     {code:'41600',status:0}, | ||||
| 
 | ||||
|     {code:'41700',status:0}, | ||||
| 
 | ||||
|     {code:'41600',status:0}, | ||||
| ] | ||||
| 
 | ||||
| export const testMarkRules = [{ | ||||
|  | ||||
| @ -462,14 +462,14 @@ export default class Judge { | ||||
|         } | ||||
|       //项目已考不上传监管信息
 | ||||
|         if (!isEnd) { | ||||
|            judgeTask.addTask(async () => { | ||||
|               console.info(judgeTag, `项目开始-${xmdm}-${projectsObj[xmdm].name}`) | ||||
|               await beginProject(xmdm) | ||||
|            },{isDelay: true}) | ||||
|            judgeTask.addTask(async () => { | ||||
|           judgeTask.addTask(async () => { | ||||
|             console.info(judgeTag, `项目开始-${xmdm}-${projectsObj[xmdm].name}`) | ||||
|             await beginProject(xmdm) | ||||
|           },{isDelay: true}) | ||||
|           judgeTask.addTask(async () => { | ||||
|             console.info(judgeTag, `项目-${xmdm}-上传照片 start`) | ||||
|             await uploadProgressPhoto(xmdm) | ||||
|            },{isDelay: true}) | ||||
|           },{isDelay: true}) | ||||
|           this.judgeUI.projectsObj[xmdm].isUpload = true; | ||||
|         } | ||||
|         break; | ||||
| @ -581,7 +581,7 @@ export default class Judge { | ||||
|     const carInfo = globalThis.carInfo; | ||||
|     const { examSubject,plateNo } = carInfo; | ||||
|     const {judgeUI,fileLog,getSbbm,xmxh,filePath} = this; | ||||
|     const {lsh,idCard,serialNumber,projectsObj,ksdd,kslx,ksxl} = judgeUI | ||||
|     const {lsh,idCard,serialNumber,projectsObj,ksdd,kslx,xldm} = judgeUI | ||||
|     const time = await getCurrentTime(); | ||||
|     const project = projectsObj[ksxm] | ||||
|     const sbxh = getSbbm(ksxm, xmxh) | ||||
| @ -595,7 +595,7 @@ export default class Judge { | ||||
|         sfzmhm: idCard, | ||||
|         ksxm: project.projectCodeCenter, | ||||
|         sbxh, | ||||
|         ksxl, | ||||
|         ksxl:xldm, | ||||
|         kchp: encodeURI(plateNo), | ||||
|         //                                                开始时间
 | ||||
|         ksdd: encodeURI(ksdd), | ||||
| @ -618,7 +618,7 @@ export default class Judge { | ||||
|     const deviceNo = globalThis.deviceNo; | ||||
|     const { examSubject,plateNo,carNo } = carInfo; | ||||
|     const {judgeUI,fileLog,getSbxh,xmxh,getSbbm,filePath} = this; | ||||
|     const {lsh,idCard,serialNumber,projectsObj,cdsbInfoObj,ksdd,kslx,ksxl,} = judgeUI | ||||
|     const {lsh,idCard,serialNumber,projectsObj,cdsbInfoObj,ksdd,kslx,xldm,} = judgeUI | ||||
|     const time = await getCurrentTime(); | ||||
|     const project = projectsObj[ksxm] | ||||
|     const sbxh = examSubject == 3 ? undefined : getSbbm(ksxm, xmxh) | ||||
| @ -633,7 +633,7 @@ export default class Judge { | ||||
|         sbxh, | ||||
|         //TODO 操作类型 1:正常 0:撤销该考试记录
 | ||||
|         czlx: '1', | ||||
|         ksxl, | ||||
|         ksxl:xldm, | ||||
|         kchp: encodeURI(plateNo), | ||||
|         ksdd: encodeURI(ksdd), | ||||
|         kslx: encodeURI(kslx) || '', | ||||
| @ -726,15 +726,15 @@ export default class Judge { | ||||
|     //判断是不是模拟灯光语音
 | ||||
|     if (type == 1) { | ||||
|       avPlayer.playAudio([`voice/${code}.mp3`], false, () => { | ||||
|           examJudgeSoundEnd({ | ||||
|             itemno: xmdm, code, type | ||||
|           }) | ||||
|           fileLog.setExamJudgeData({ | ||||
|             method: 'examJudgeSoundEnd', | ||||
|             itemno: xmdm, | ||||
|             code, | ||||
|             type, | ||||
|           }) | ||||
|         examJudgeSoundEnd({ | ||||
|           itemno: xmdm, code, type | ||||
|         }) | ||||
|         fileLog.setExamJudgeData({ | ||||
|           method: 'examJudgeSoundEnd', | ||||
|           itemno: xmdm, | ||||
|           code, | ||||
|           type, | ||||
|         }) | ||||
|       }) | ||||
|     }else{ | ||||
|       avPlayer.playAudio([`voice/${code}.mp3`]) | ||||
| @ -1008,6 +1008,7 @@ export default class Judge { | ||||
|       getSbxh | ||||
|     } = this; | ||||
|     console.info(judgeTag,2) | ||||
|     const singlePlay = globalThis.singlePlay | ||||
|     const {lsh,startHourTime,totalScore,examTime} = judgeUI; | ||||
| 
 | ||||
|     const {fourInOneScreen:{gpsDigit}} = judgeConfig | ||||
| @ -1026,7 +1027,9 @@ export default class Judge { | ||||
|     const sbxh = getSbxh(xmdm, xmxh) | ||||
|     console.info(judgeTag,JSON.stringify(performInfo)) | ||||
|     const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo || {}; | ||||
|     const asclshArr = stringToASC(fillZero(lsh || 0, 13)); | ||||
|     const asclshArr = stringToASC( | ||||
|       fillZero((singlePlay?1111111111111:lsh) || 0, 13) | ||||
|     ); | ||||
|     //13不足要补0
 | ||||
|     console.info(judgeTag,6) | ||||
|     const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13)) | ||||
| @ -1046,11 +1049,10 @@ export default class Judge { | ||||
|     // console.info(judgeTag,JSON.stringify(translateProject))
 | ||||
|     //@ts-ignore
 | ||||
|     // const translateProjects= translateProject.map(num => string2Bytes(p,8)[0])
 | ||||
|     console.info('surenjunxstartHourTime' , startHourTime) | ||||
|     console.info('surenjunxmmcexamTime' , examTime) | ||||
| 
 | ||||
|     const arr = [ | ||||
|       //考生号
 | ||||
|     //考生号
 | ||||
|       asclshArr.map(lsh => string2Bytes(lsh, 8)[0]), | ||||
|       //考试员号
 | ||||
|       ascksyhArr.map(ksyh => string2Bytes(ksyh, 8)[0]), | ||||
| @ -1079,9 +1081,6 @@ export default class Judge { | ||||
|       string2Bytes(Math.floor((dcjl + qjjl) / 100), 2 * 8), | ||||
|       //扣分
 | ||||
|       string2Bytes(100 - Math.abs(totalScore), 2 * 8), | ||||
|       //扣分数
 | ||||
|       //todo扣分值/扣分项
 | ||||
|       string2Bytes(0, 2 * 8), | ||||
|       //扣分项数量
 | ||||
|       string2Bytes(kfArr.length, 8), | ||||
|       //n个扣分序号
 | ||||
| @ -1092,8 +1091,8 @@ export default class Judge { | ||||
|       string2Bytes(0, 2 * 8), | ||||
|       //TODO 摩托压线 Byte[20],
 | ||||
|       string2Bytes(0, 20 * 8), | ||||
|       //TODO 考试用时
 | ||||
|       string2Bytes(fillZero(examTime+'',4), 4 * 8), | ||||
|       //考试用时
 | ||||
|       string2Bytes(examTime, 4 * 8), | ||||
|       //TODO 项目用时
 | ||||
|       string2Bytes(fillZero(0,2), 2 * 8), | ||||
|       //TODO 设备信号状态
 | ||||
| @ -1316,7 +1315,7 @@ export default class Judge { | ||||
|     this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + '' | ||||
|     await examJudgeRealExam(plcData) | ||||
|     const udpIndex = globalThis.udpIndex; | ||||
|     if (udpIndex % 5 === 0) { | ||||
|     if (udpIndex % 5 === 0 && !isExamEnd) { | ||||
|       const judgeUdp = globalThis.judgeUdp | ||||
|       const bytes = await this.getMessageHeartbeat(); | ||||
|       console.info(judgeTag+'UDP',JSON.stringify(bytes)) | ||||
| @ -1395,8 +1394,8 @@ export default class Judge { | ||||
|         setJudgeItem(msg.itemno, msg.serial) | ||||
|       } | ||||
|       await examJudgeRealExam(msg) | ||||
|       // const bytes = await this.getMessageHeartbeat();
 | ||||
|       // bytes && globalThis.judgeUdp.send(bytes)
 | ||||
|       const bytes = await this.getMessageHeartbeat(); | ||||
|       bytes && globalThis.judgeUdp.send(bytes) | ||||
|       num++ | ||||
|     }, 200) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user