From f7717785a510129bc81bc317b8b9f1b1534eb127 Mon Sep 17 00:00:00 2001 From: surenjun Date: Fri, 16 Aug 2024 08:52:38 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E7=A7=91=E7=9B=AE=E4=B8=89?= =?UTF-8?q?=E8=81=94=E7=BD=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/common/constants/USER.ts | 4 +- entry/src/main/ets/common/utils/UdpJudge.ts | 4 +- entry/src/main/ets/pages/Judge.ets | 7 ++- .../main/ets/pages/judgeSDK/dataTest/index.ts | 8 +-- entry/src/main/ets/pages/judgeSDK/judge.ts | 59 +++++++++---------- 5 files changed, 42 insertions(+), 40 deletions(-) diff --git a/entry/src/main/ets/common/constants/USER.ts b/entry/src/main/ets/common/constants/USER.ts index e9000a73..4174c843 100644 --- a/entry/src/main/ets/common/constants/USER.ts +++ b/entry/src/main/ets/common/constants/USER.ts @@ -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'] }; /** diff --git a/entry/src/main/ets/common/utils/UdpJudge.ts b/entry/src/main/ets/common/utils/UdpJudge.ts index 30569725..b0f2c043 100644 --- a/entry/src/main/ets/common/utils/UdpJudge.ts +++ b/entry/src/main/ets/common/utils/UdpJudge.ts @@ -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 diff --git a/entry/src/main/ets/pages/Judge.ets b/entry/src/main/ets/pages/Judge.ets index b1814c8b..3b5a6bab 100644 --- a/entry/src/main/ets/pages/Judge.ets +++ b/entry/src/main/ets/pages/Judge.ets @@ -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 = '' diff --git a/entry/src/main/ets/pages/judgeSDK/dataTest/index.ts b/entry/src/main/ets/pages/judgeSDK/dataTest/index.ts index 803bef85..d47bb248 100644 --- a/entry/src/main/ets/pages/judgeSDK/dataTest/index.ts +++ b/entry/src/main/ets/pages/judgeSDK/dataTest/index.ts @@ -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 = [{ diff --git a/entry/src/main/ets/pages/judgeSDK/judge.ts b/entry/src/main/ets/pages/judgeSDK/judge.ts index 7580a79a..404e578a 100644 --- a/entry/src/main/ets/pages/judgeSDK/judge.ts +++ b/entry/src/main/ets/pages/judgeSDK/judge.ts @@ -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)