From 62388d126a0da117f0cc57740f1c745d1e7248d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cwangzhongjie=E2=80=9D?= Date: Fri, 23 Feb 2024 10:04:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/UserInfo.ets | 1157 ++++++++----------------- 1 file changed, 366 insertions(+), 791 deletions(-) diff --git a/entry/src/main/ets/pages/UserInfo.ets b/entry/src/main/ets/pages/UserInfo.ets index 5456506..5e25226 100644 --- a/entry/src/main/ets/pages/UserInfo.ets +++ b/entry/src/main/ets/pages/UserInfo.ets @@ -1,24 +1,23 @@ -import { getExaminationItem, getExaminationStudentInfo, examinationStuAbsent, getPhotosForOther } from '../api/userInfo' +import { getExaminationItem, getExaminationStudentInfo, examinationStuAbsent,getPhotosForOther } from '../api/userInfo' import { voiceService } from '../common/service/voiceService' - +import {string2Bytes} from '../common/utils/tools' import router from '@ohos.router' import TopLogo from './compontents/topLogo' import Md5 from '../common/utils/md5'; import AccountTable from '../common/database/tables/AccountTable'; import USER from '../common/constants/USER'; -import { dateFormat, getCurrentTime } from '../common/utils/tools'; +import { dateFormat,getCurrentTime } from '../common/utils/tools'; import MA_SYSSET from '../common//constants/MA_SYSSET'; import FaceCompare from './compontents/faceCompareByhaikang' import ethernet from '@ohos.net.ethernet'; import prompt from '@ohos.prompt' -import { initJudgeUdp } from '../common/utils/UdpJudge' +import {initJudgeUdp} from '../common/utils/UdpJudge' -import { writeObjectOut } from '../api/judge' +import {writeObjectOut} from '../api/judge' import testNapi from "@ohos.idcard"; import common from '@ohos.app.ability.common'; import { VideoConfig } from './interfaces' import WebRTCVoice from './webRTC/' - @Entry @Component struct Index { @@ -63,6 +62,7 @@ struct Index { @State dataList: Array = [] @State list: Array = [] @State param: VideoConfig = { + videoNum:'1', spls: '', faceFlag: false, pztd: '2', @@ -79,14 +79,16 @@ struct Index { videoRecord2: false, videoRecord3: false, videoRecord4: false, - rlls: '1' + rlls:'1' } private AccountTable = new AccountTable(() => { }, USER); + private context = getContext(this) as common.UIAbilityContext; + @State name: string = 'initName'; @State sex: string = ''; - @State callBackFlag: boolean = false; + @State callBackFlag:boolean=false; @State born?: string = ''; @State address: string = ''; @State nation: string = ''; @@ -95,108 +97,26 @@ struct Index { @State effectDate: string = ''; @State interval: any = null; @State interval2: any = null; - @State interval3: any = null; @State studentRefreshStatue: string = '0'; @State photo: string = 'data:image/bmp;base64,'; @State numCount: number = 0; @State signNum: number = 0; - // @State examItems: string = ''; @State isCanClick: boolean = true; subscriber; - @State faceCatchImg: string = '' + @State faceCatchImg:string='' - // private fileUtil: FileUtil - // that.sfzmhm = 'surenjun'; onPageShow() { + //打开读卡器 + this.openChuankouDeviceFn() //语音功能 - this.stepFlag = false + this.stepFlag=false + this.initData() + this.initSysset() + initJudgeUdp() new WebRTCVoice(this.context); - this.faceCompareSucess = 0 - this.showFaceCompare = false - globalThis.indexComponent = this; - this.lsh = '0000000000000' - this.callBackFlag = false - globalThis.lsh = this.lsh - this.currentUser = { - sfzmhm: '', - xm: '', - lsh: '', - ksy1: '', - id: '', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - } - globalThis.statue = 2 - this.numCount = 0 - - - globalThis.udpClient2 && globalThis.udpClient2.onMessage((val) => { - console.log('valvaltotol2', val.id, val.body, val.length) - - if (val.id == '32') { - globalThis.signNum = val.body[1] - if (val.body[0] == '7') { - this.getqkFn() - this.signNum = val.body[1] - } - } else if (val.id == '48') { - console.log('valvalkkkk', val.body) - // if(val.body[13]=='1'){ - // this.faceCompareSucess=1 - // console.log('ttt111') - // // clearInterval(this.interval) - // this.facePass() - // } - } else if (val.id == '42') { - console.log('qkfnqkfn', val.body[0]) - this.qkFn() - // this.getExaminationStudentInfoFn() - // const arr = [globalThis.signNum,1]; - // let tmpList = []; - // tmpList.push(this.string2Bytes(arr[0], 1 * 8)[0]) - // tmpList.push(this.string2Bytes(arr[1], 1 * 8)[0]) - // - // const param= {id: 41,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId} - // - // globalThis.udpClient2.sendMsg(param, this.context) - } - }) - // 应用启动时打开读卡设备 - let ret = testNapi.OpenDevice(); - if (ret == 0) { - testNapi.StartReadCard(this.onReadCard); - } else { - console.error("zzctest Failed to Open Device"); - } - // this.vocObj = new voiceService(async (status,val) => { - // if (status == 'idle') { - // if(val==='ksks.WAV'){ - // router.pushUrl({ - // url: 'pages/Judge', - // params:{examItems:this.examItems} - // }, router.RouterMode.Single); - // globalThis.statue=4 - // this.vocObj&&this.vocObj.releasePlayer() - // } - // } - // }); - - if (globalThis.singlePlay) { - this.list = [ + if(globalThis.singlePlay){ + this.list=[ { sfzmhm: '342323199501470011', xm: '测试学员1', @@ -218,307 +138,68 @@ struct Index { xh: '', xldm: '', yycs: '' - }, { - sfzmhm: '341182199308155624', - xm: '测试学员2', - lsh: '0000000000002', - ksy1: '考试员2', - id: '002', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }, { - sfzmhm: '3423231995014700003', - xm: '测试学员3', - lsh: '0000000000003', - ksy1: '考试员2', - id: '002', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }, { - sfzmhm: '3423231995014700004', - xm: '测试学员4', - lsh: '0000000000004', - ksy1: '考试员2', - id: '002', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }, { - sfzmhm: '3423231995014700005', - xm: '测试学员5', - lsh: '0000000000004', - ksy1: '考试员2', - id: '002', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }, { - sfzmhm: '342323199501470016', - xm: '测试学员6', - lsh: '0000000000005', - ksy1: '考试员1', - id: '001', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }, { - sfzmhm: '3423231995014700007', - xm: '测试学员7', - lsh: '0000000000007', - ksy1: '考试员2', - id: '002', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }, { - sfzmhm: '3423231995014700008', - xm: '测试学员8', - lsh: '0000000000008', - ksy1: '考试员2', - id: '002', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }, { - sfzmhm: '3423231995014700009', - xm: '测试学员9', - lsh: '0000000000009', - ksy1: '考试员2', - id: '002', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }, { - sfzmhm: '34232319950147000010', - xm: '测试学员10', - lsh: '002', - ksy1: '考试员2', - id: '0000000000010', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - }] - this.pageIndex = 0 + }] + this.pageIndex=0 this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) - this.currentUser = this.dataList[0] - this.lsh = this.currentUser.lsh - globalThis.ksyh = this.currentUser.ksy1sfzmhm || this.currentUser.ksy2sfzmhm - globalThis.lsh = this.lsh + this.currentUser=this.dataList[0] + this.lsh=this.currentUser.lsh + globalThis.ksyh=this.currentUser.ksy1sfzmhm||this.currentUser.ksy2sfzmhm + globalThis.lsh=this.lsh return - } else { + }else{ // this.getExaminationStudentInfoFn() } - this.initSysset() - initJudgeUdp() - } - changeQkfn() { - this.qkFn() } - - getqkFn() { - let tmpList = []; - tmpList.push(this.string2Bytes(globalThis.signNum, 1 * 8)[0]) - const param = { - id: 41, - list: tmpList, - carNo: globalThis.carInfo.carNo, - placeId: globalThis.carInfo.examinationRoomId + //初始化reset data + initData(){ + this.lsh='0000000000000' + this.faceCompareSucess=0 + this.showFaceCompare=false + globalThis.lsh = this.lsh + this.currentUser= { + sfzmhm: '', + xm: '', + lsh: '', + ksy1: '', + id: '', + kszp: '', + ksmjzp: '', + bz1: '', + jxmc: '', + kchp: '', + kscx: '', + ksdd: '', + kssycs: '', + ksxl: '', + ksy1sfzmhm: '', + kszt: '', + xb: '', + xh: '', + xldm: '', + yycs: '' } - - globalThis.udpClient2.sendMsg(param, this.context) + globalThis.statue=2 + this.numCount=0 + this.callBackFlag=false } - - async heartMsg(context) { - let tmpList = [] - const str = globalThis.lsh - for (let i = 0; i < str.length; i++) { - tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) - } - - const param = { - id: 46, - list: tmpList, - carNo: globalThis.carInfo.carNo, - placeId: globalThis.carInfo.examinationRoomId, - callback: () => { - console.log('46send') - this.callBackFlag = true - } - } - this.interval = setInterval(() => { - if (this.callBackFlag) { - console.log('validqqq333') - const param2 = { - id: 47, - list: tmpList, - carNo: globalThis.carInfo.carNo, - placeId: globalThis.carInfo.examinationRoomId - } - globalThis.udpClient2 && globalThis.udpClient2.sendMsg(param2, this.context) - } - }, 1000) - // const param = { id: 31, list: tmpList, carNo: 489, placeId: 62 } - globalThis.udpClient2 && globalThis.udpClient2.sendMsg(param, this.context) - - - // return {id: 31,list:tmpList,carNo:489,placeId:62} - } - - aboutToDisappear() { - clearInterval(this.interval) - clearInterval(this.interval2) - testNapi.StopReadCard(); - // console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); - } - - changeStudentStatue(val) { - const arr = [globalThis.signNum || 0, val] - let tmpList = []; - tmpList.push(this.string2Bytes(arr[0], 1 * 8)[0]) - tmpList.push(this.string2Bytes(arr[1], 1 * 8)[0]) - const str = globalThis.lsh - for (let i = 0; i < str.length; i++) { - tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) - } - // const str ='1111160366580' - // for (let i = 0;i < str.length; i++) { - // tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) - // } - // const param = { id: 46, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId,callback:()=>{ - - // const param = { id: 46, list: tmpList, carNo: 489, placeId: 62 } - const param = { - id: 31, - list: tmpList, - carNo: globalThis.carInfo.carNo, - placeId: globalThis.carInfo.examinationRoomId - } - - globalThis.udpClient2 && globalThis.udpClient2.sendMsg(param, this.context) - } - - facePass() { - if (!this.stepFlag) { - this.sfbdinterfaceFn() +//打开读卡器 + openChuankouDeviceFn(){ + // 应用启动时打开读卡设备 + globalThis.indexComponent = this; + let ret = testNapi.OpenDevice(); + if (ret == 0) { + testNapi.StartReadCard(this.onReadCard); + } else { + console.error("zzctest Failed to Open Device"); } } - + //读卡器阅读 onReadCard(ret) { console.info(`zzctest xx Read Card ret =${ret.status}`) let thisVar = globalThis.indexComponent; - if (ret.status == 0) { // status = 1 为读到身份证信息; status = 1 为身份证离开读卡器 + if(ret.status == 0) { // status = 1 为读到身份证信息; status = 1 为身份证离开读卡器 // 收到身份证离开读卡器的事件通知,根据实际业务需要决定是否需要清空之前已读取的身份证信息。 // 如果身份证卡片离开读卡器时,需要继续保留UI界面上已读取到的身份信息,以下代码可以注释掉。 thisVar.name = ""; @@ -545,9 +226,9 @@ struct Index { thisVar.born = baseInfos[3]; thisVar.address = baseInfos[4]; thisVar.idCard = baseInfos[5]; - setTimeout(() => { + setTimeout(()=>{ thisVar.getCurrentStudent(baseInfos[5]) - }, 1000) + },1000) } // 身份证照片数据处理 @@ -555,7 +236,7 @@ struct Index { let dataView = new DataView(ret.photo) console.info(`Read Card ret = length = ${dataView.byteLength}`) let str = "" - for (let i = 0; i < dataView.byteLength; ++i) { + for (let i = 0;i < dataView.byteLength; ++i) { let c = String.fromCharCode(dataView.getUint8(i)) if (c !== "\n") { str += c @@ -566,316 +247,109 @@ struct Index { console.info(`zzctest Read Card end`); return true; } - - async initSysset() { - const that = this; - const db = new AccountTable(() => { - }, MA_SYSSET); - db.getRdbStore(() => { - db.query('0', (syssetParams) => { - const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901') - that.jkxlh = serialNumberArr?.[0]?.v_value || '1234567' - const ksxtbhArr = syssetParams.filter(sys => sys.v_no === '902') - that.ksxtbh = ksxtbhArr?.[0]?.v_value || '222' - const studentRefreshParam = syssetParams.filter(sys => sys.v_no === '452') - that.studentRefreshStatue = studentRefreshParam?.[0]?.v_value || '0' - //0不自动更新 1自动更新(不限次数) 2没有考生更新2次 - if (that.studentRefreshStatue == '2') { - clearInterval(that.interval2) - that.interval2 = setInterval(() => { - if (that.dataList.length == 0 && that.numCount < 3) { - that.numCount++ - that.getExaminationStudentInfoFn() - } - }, 5000) - } else if (that.studentRefreshStatue == '1') { - clearInterval(that.interval2) - that.interval2 = setInterval(() => { - if (that.dataList.length == 0) { - that.getExaminationStudentInfoFn() - } - }, 5000) - } - - }) - }) - } - - // async getVideoConfig(){ - // const data = await this.fileUtil.readFile('/mnt/hmdfs/100/account/device_view/localfiles/files/logs/config/config3.txt'); - // this.param=JSON.parse(data) - // } - changefaceCompareSucess() { - // globalThis.statue=3 - console.log('this.faceCompareSuces', this.faceCompareSucess, JSON.stringify(this.currentUser)) - // if(this.faceCompareSucess!=1){ - // this.heartMsg(this.context) - // return - // }else{ - // console.log('kkkk2') - // this.sfbdinterfaceFn() - // - // } - if (this.faceCompareSucess > 0) { - this.sfbdinterfaceFn() - } - } - - nextClick() { - if (this.list.length <= 4 || this.pageIndex == Math.floor(this.list.length / 4)) { - return - } - this.pageIndex++; - this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) - } - - prevClick() { - if (this.list.length <= 4 || this.pageIndex == 0) { - return - } - this.pageIndex--; - this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) - } - - getCurrentStudent(id) { - let flag = false + //读卡器通过身份证定位学员 + getCurrentStudent(id){ + let flag=false this.pageIndex - this.list.map((res, index) => { - if (res.sfzmhm == id) { - flag = true - this.currentUser = res - this.lsh = this.currentUser.lsh - globalThis.lsh = this.currentUser.lsh - globalThis.ksyh = this.currentUser.ksy1sfzmhm || this.currentUser.ksy2sfzmhm + this.list.map((res,index)=>{ + if(res.sfzmhm==id){ + flag=true + this.currentUser=res + this.lsh=this.currentUser.lsh + globalThis.lsh=this.currentUser.lsh + globalThis.ksyh=this.currentUser.ksy1sfzmhm||this.currentUser.ksy2sfzmhm // this.currentUser.kszp=this.photo+res.kszp // this.currentUser.ksmjzp=this.photo+this.currentUser.ksmjzp - if (globalThis.singlePlay) { + if(globalThis.singlePlay){ testNapi.StopReadCard(); // globalThis.statue=4 router.pushUrl({ url: 'pages/Judge', - }, router.RouterMode.Single); + },router.RouterMode.Single); return } - this.showFaceCompare = true - this.pageIndex = Math.floor(index / 4) + this.showFaceCompare=true + this.pageIndex=Math.floor(index/4) } }) this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) - if (!flag) { + if(!flag){ prompt.showToast({ message: '未匹配到对应下载学员', duration: 3000 }); } } - - getExaminationStudentInfoFn() { - if (globalThis.singlePlay) { - return - } - console.log('tttttttttt') - const param = `${Md5.Instance.get_md5(globalThis.carInfo.carId + globalThis.carInfo.examinationRoomId + globalThis.username)}${globalThis.carInfo.carId}${globalThis.carInfo.examinationRoomId}${globalThis.username}` - getExaminationStudentInfo(param).then(res => { - console.log('mmmmmmmmmmmm', JSON.stringify(res)) - if (!res) { - this.dataList = [] - this.currentUser = { - sfzmhm: '', - xm: '', - lsh: '', - ksy1: '', - id: '', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - } - console.log('currentUser', JSON.stringify(this.currentUser)) - this.errorMsg = decodeURI(res.getExaminationStudentInfoRsp.head.resultMessage) - return - } - let dataList = [] - this.list = [] - for (let key in res.getExaminationStudentInfoRsp.body) { - const a = res.getExaminationStudentInfoRsp.body[key] - if (a instanceof Array) { - dataList = a - } else { - dataList = [a] + async initSysset(){ + const that = this; + const db = new AccountTable(()=>{},MA_SYSSET); + db.getRdbStore(()=>{ + db.query('0', (syssetParams) => { + const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901') + that.jkxlh = serialNumberArr?.[0]?.v_value || '1234567' + const ksxtbhArr = syssetParams.filter(sys => sys.v_no === '902') + that.ksxtbh = ksxtbhArr?.[0]?.v_value || '222' + const studentRefreshParam=syssetParams.filter(sys => sys.v_no === '452') + that.studentRefreshStatue=studentRefreshParam?.[0]?.v_value || '0' + //0不自动更新 1自动更新(不限次数) 2没有考生更新2次 + if(that.studentRefreshStatue=='2'){ + clearInterval(that.interval2) + that.interval2=setInterval(()=>{ + if(that.dataList.length==0&&that.numCount<3){ + that.numCount++ + that.getExaminationStudentInfoFn() + } + },5000) + }else if(that.studentRefreshStatue=='1'){ + clearInterval(that.interval2) + that.interval2=setInterval(()=>{ + if(that.dataList.length==0){ + that.getExaminationStudentInfoFn() + } + },5000) } - } - if (dataList.length) { - this.numCount = 0 - } - - this.list = JSON.parse(JSON.stringify(dataList)) - if (dataList.length > 4) { - dataList = dataList.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) - } else { - dataList = dataList - } - dataList.forEach(listData => { - for (let i in listData) { - listData[i] = decodeURI(listData[i]) - } - listData.kszp = this.photo + listData.kszp - listData.ksmjzp = this.photo + listData.ksmjzp }) - this.dataList = dataList - if (this.dataList.length) { - this.currentUser = this.dataList[0] - } else { - this.currentUser = { - sfzmhm: '', - xm: '', - lsh: '', - ksy1: '', - id: '', - kszp: '', - ksmjzp: '', - bz1: '', - jxmc: '', - kchp: '', - kscx: '', - ksdd: '', - kssycs: '', - ksxl: '', - ksy1sfzmhm: '', - kszt: '', - xb: '', - xh: '', - xldm: '', - yycs: '' - } - } - - this.lsh = this.currentUser.lsh - globalThis.lsh = this.lsh - globalThis.ksyh = this.currentUser.ksy1sfzmhm || this.currentUser.ksy2sfzmhm - - // this.currentUser.kszp=this.photo+this.currentUser.kszp - // this.currentUser.ksmjzp=this.photo+this.currentUser.ksmjzp - // this.currentUser.kszp='data:image/jpg;base64,'+this.currentUser.kszp - // this.currentUser.ksmjzp='data:image/jpg;base64,'+this.currentUser.ksmjzp - // this.getPhotosForOtherFn(this.currentUser,1) - // this.getPhotosForOtherFn(this.currentUser,2) - // for (let i in this.currentUser) { - // this.currentUser[i] = decodeURI(this.currentUser[i]) - // } - console.log('this.currentUse3' + JSON.stringify(this.currentUser)) - this.pageIndex = 0 - }).catch((error) => { - console.log('error12error' + error) }) } - - fillZero(str, len) { - str = str + ''; - if (str.length > len || !len) { - return str - } - - let num = len - str.length; - let zeroStr = ''; - for (var i = 0; i < num; i++) { - zeroStr = zeroStr + '0' - } - - return zeroStr + str; + changeQkfn(){ + this.qkFn() } + //考点端查询缺考指令内容消息请求 + getqkFn(){ + let tmpList = []; + tmpList.push(string2Bytes(globalThis.signNum, 1 * 8)[0]) + const param= {id: 41,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId} - string2Bytes(number, len) { - // console.log('string2Bytes == ', number) - let str = (+number).toString(2); - if (str.length > len) { - console.log('数据长度不对~~'); - return - } - var byteString = this.fillZero(str, len); - - var arrBytes = new Array(); - for (var i = byteString.length; i > 0; ) { - let j = i - 8; - if (j < 0) { - j = 0 - } - var s = byteString.slice(j, i); - var v = parseInt(s, 2); - arrBytes.push(v); - i = i - 8 - - } - return arrBytes; + globalThis.udpClient2.sendMsg(param, this.context) } - - getPhotosForOtherFn(data, type) { - const date = new Date() - const param = { - time: dateFormat(date), - ksrq: dateFormat(date).split(' ')[0], - sfzmhm: data.sfzmhm, - zptype: type - } - getPhotosForOther(param).then(res => { - if (type == '1') { - this.currentUser.kszp = 'data:image/jpg;base64,' + res.getBmzpRsp.body.kszp - } else { - this.currentUser.ksmjzp = 'data:image/jpg;base64,' + res.getBmzpRsp.body.ksmjzp - } - }) - } - + //车载端学员缺考 qkFn() { - this.faceCompareSucess = 0 - - if (globalThis.singlePlay) { - this.qkFlag = false + this.faceCompareSucess=0 + if(globalThis.singlePlay){ + this.qkFlag=false return } // const param = { id: 46, list: tmpList, carNo: 489, placeId: 62 } - console.log('JsonJson', JSON.stringify(this.currentUser)) + console.log('JsonJson',JSON.stringify(this.currentUser)) const param = `${globalThis.carInfo.carId}${this.currentUser.sfzmhm}${globalThis.carInfo.examinationRoomId}${globalThis.username}${this.lsh}` - console.log('carNo1111', param) + console.log('carNo1111',param) examinationStuAbsent(param).then(res => { - const arr = [this.signNum || 0, 1] + const arr = [this.signNum||0,1] let tmpList = []; - tmpList.push(this.string2Bytes(arr[0], 1 * 8)[0]) - tmpList.push(this.string2Bytes(arr[1], 1 * 8)[0]) + tmpList.push(string2Bytes(arr[0], 1 * 8)[0]) + tmpList.push(string2Bytes(arr[1], 1 * 8)[0]) - // const str ='1111160366580' - // for (let i = 0;i < str.length; i++) { - // tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) - // } - // const param = { id: 46, list: tmpList, carNo: 489, placeId: 62 } - console.log('globalThis.signNum', globalThis.signNum) - const param = { - id: 43, - list: tmpList, - carNo: globalThis.carInfo.carNo, - placeId: globalThis.carInfo.examinationRoomId - } + const param= {id: 43,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId} globalThis.udpClient2.sendMsg(param, this.context) - if (res.examinationStuAbsentRsp.head.resultCode == '0') { + if (res.examinationStuAbsentRsp.head.resultCode=='0') { this.pageIndex = 0 - this.qkFlag = false - this.currentUser = { + this.qkFlag=false + this.currentUser={ sfzmhm: '', xm: '', lsh: '', @@ -908,28 +382,188 @@ struct Index { }) } + async heartMsg(context) { + let tmpList=[] + const str =globalThis.lsh + for (let i = 0;i < str.length; i++) { + tmpList.push(string2Bytes(str.charCodeAt(i), 1 * 8)[0]) + } - outClick() { - testNapi.StopReadCard(); - // console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); + const param = { id: 46, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId,callback:()=>{ + console.log('46send') + this.callBackFlag=true + }} + this.interval=setInterval(()=>{ + if(this.callBackFlag){ + console.log('validqqq333') + const param2 = { id: 47, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId,callback:(val)=>{ + if(val.id=='32'){ + globalThis.signNum=val.body[1] + if(val.body[0]=='7'){ + this.getqkFn() + this.signNum=val.body[1] + } + }else if(val.id=='48'){ + console.log('valvalkkkk',val.body) + + }else if(val.id=='42'){ + console.log('qkfnqkfn',val.body[0]) + this.qkFn() + } + } } + globalThis.udpClient2&&globalThis.udpClient2.sendMsg(param2,this.context) + } + },1000) + globalThis.udpClient2&&globalThis.udpClient2.sendMsg(param, this.context) } - async sfbdinterfaceFn() { - this.stepFlag = true - console.info('surenjun', this.currentUser.lsh) + facePass(){ + if(!this.stepFlag){ + this.sfbdinterfaceFn() + } + } + changefaceCompareSucess() { + if(this.faceCompareSucess>0){ + this.sfbdinterfaceFn() + } + } + + nextClick() { + if (this.list.length <= 4||this.pageIndex==Math.floor(this.list.length/4)) { + return + } + this.pageIndex++; + this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) + } + + prevClick() { + if (this.list.length <= 4||this.pageIndex==0) { + return + } + this.pageIndex--; + this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) + } + //获取下载学员接口 + getExaminationStudentInfoFn() { + if(globalThis.singlePlay){ + return + } + const param = `${Md5.Instance.get_md5(globalThis.carInfo.carId + globalThis.carInfo.examinationRoomId + globalThis.username)}${globalThis.carInfo.carId}${globalThis.carInfo.examinationRoomId}${globalThis.username}` + getExaminationStudentInfo(param).then(res => { + if (!res) { + this.dataList=[] + this.currentUser={ + sfzmhm: '', + xm: '', + lsh: '', + ksy1: '', + id: '', + kszp: '', + ksmjzp: '', + bz1: '', + jxmc: '', + kchp: '', + kscx: '', + ksdd: '', + kssycs: '', + ksxl: '', + ksy1sfzmhm: '', + kszt: '', + xb: '', + xh: '', + xldm: '', + yycs: '' + } + console.log('currentUser',JSON.stringify(this.currentUser)) + this.errorMsg = decodeURI(res.getExaminationStudentInfoRsp.head.resultMessage) + return + } + let dataList = [] + this.list=[] + for (let key in res.getExaminationStudentInfoRsp.body) { + const a = res.getExaminationStudentInfoRsp.body[key] + if(a instanceof Array){ + dataList=a + }else{ + dataList=[a] + } + + } + if(dataList.length){ + this.numCount=0 + } + + this.list=JSON.parse(JSON.stringify(dataList)) + if (dataList.length > 4) { + dataList = dataList.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) + } else { + dataList = dataList + } + dataList.forEach(listData=>{ + for(let i in listData){ + listData[i]= decodeURI(listData[i]) + } + listData.kszp=this.photo+listData.kszp + listData.ksmjzp=this.photo+listData.ksmjzp + }) + this.dataList = dataList + if(this.dataList.length){ + this.currentUser = this.dataList[0] + }else{ + this.currentUser={ + sfzmhm: '', + xm: '', + lsh: '', + ksy1: '', + id: '', + kszp: '', + ksmjzp: '', + bz1: '', + jxmc: '', + kchp: '', + kscx: '', + ksdd: '', + kssycs: '', + ksxl: '', + ksy1sfzmhm: '', + kszt: '', + xb: '', + xh: '', + xldm: '', + yycs: '' + } + } + + this.lsh=this.currentUser.lsh + globalThis.lsh=this.lsh + globalThis.ksyh=this.currentUser.ksy1sfzmhm||this.currentUser.ksy2sfzmhm + + + console.log('this.currentUse3' + JSON.stringify(this.currentUser)) + this.pageIndex = 0 + }).catch((error) => { + console.log('error12error' + error) + }) + } + + +//身份比对 + async sfbdinterfaceFn(){ + this.stepFlag=true + console.info('surenjun',this.currentUser.lsh) const carInfo = globalThis.carInfo; const {carId,examinationRoomId} = carInfo; const examItems = await getExaminationItem({ - time: getCurrentTime(), + time:getCurrentTime(), carId, - lsh: this.currentUser.lsh || '', + lsh:this.currentUser.lsh || '', examinationRoomId }); //获取已考项目 console.log('goroute') const date = new Date() - this.showFaceCompare = false + this.showFaceCompare=false const { examSubject,plateNo } = carInfo; const drvexam = { lsh: this.currentUser.lsh || '', @@ -937,9 +571,9 @@ struct Index { ksxtbh: this.ksxtbh || '222', sfzmhm: this.currentUser.sfzmhm || '', ksysfzmhm: this.currentUser.ksy1sfzmhm || '', - zp: encodeURIComponent(this.faceCatchImg || ''), + zp:encodeURIComponent(this.faceCatchImg ||''), kssj: dateFormat(date) || '', - kchp: decodeURI(plateNo), + kchp:decodeURI(plateNo), Ksy2sfzmhm: this.currentUser.Ksy2sfzmhm || '' } const param = { @@ -953,58 +587,54 @@ struct Index { const code = await writeObjectOut(param); // this.examItems=examItems?.getExaminationItemRsp?.body?.ykxx - console.log('codecode', code) - globalThis.lsh = this.currentUser.lsh - globalThis.ksyh = this.currentUser.ksy1sfzmhm || this.currentUser.ksy2sfzmhm - this.currentUser.id = '1' + console.log('codecode',code) + globalThis.lsh=this.currentUser.lsh + globalThis.ksyh=this.currentUser.ksy1sfzmhm||this.currentUser.ksy2sfzmhm + this.currentUser.id='1' if (code) { this.AccountTable.query('0', (result) => { if (result.length == 0) { this.AccountTable.insertData(this.currentUser, (id) => { this.AccountTable.query('0', (result) => { console.log(result) - globalThis.statue = 4 - this.stepFlag = false - // this.vocObj.playAudio({ - // type: 1, - // name: 'ksks.WAV' - // }) + globalThis.statue=4 + this.stepFlag=false router.pushUrl({ url: 'pages/Judge', - params: { examItems: examItems?.getExaminationItemRsp?.body?.ykxx } + params:{examItems:examItems?.getExaminationItemRsp?.body?.ykxx} }, router.RouterMode.Single); testNapi.StopReadCard(); - // console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); }) }) } else { this.AccountTable.updateData(this.currentUser, (id) => { this.AccountTable.query('0', (result) => { - this.stepFlag = false - // this.vocObj.playAudio({ - // type: 1, - // name: 'ksks.WAV' - // }) - + this.stepFlag=false router.pushUrl({ url: 'pages/Judge', - params: { examItems: examItems?.getExaminationItemRsp?.body?.ykxx } + params:{examItems:examItems?.getExaminationItemRsp?.body?.ykxx} }, router.RouterMode.Single); - globalThis.statue = 4 + globalThis.statue=4 testNapi.StopReadCard(); - // console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); }) }) } }) - } else { - this.stepFlag = false + }else{ + this.stepFlag=false } } - + outClick(){ + clearInterval(this.interval) + clearInterval(this.interval2) + testNapi.StopReadCard(); + } + aboutToDisappear() { + this.outClick() + } build() { Column() { - TopLogo({ outFlag: $outFlag }).margin({ bottom: 10 }) + TopLogo({outFlag:$outFlag}).margin({ bottom: 10 }) Row() { Row() { ForEach(this.dataList, (item, index) => { @@ -1024,17 +654,10 @@ struct Index { } .width(165 * this.ratio) .height(85 * this.ratio) - .backgroundImage(item.sfzmhm != this.currentUser.sfzmhm ? $r('app.media.userbox2') : $r('app.media.userboxbg')) + .backgroundImage(item.sfzmhm != this.currentUser.sfzmhm? $r('app.media.userbox2') : $r('app.media.userboxbg')) .backgroundImageSize({ width: '100%', height: '100%' }) .onClick(() => { - // this.vocObj.playAudio({ - // type: 1, - // name: 'media_button.wav' - // }) this.currentUser = item - // this.getPhotosForOtherFn(item,1) - // this.getPhotosForOtherFn(item,2) - // this.index = index }) }) }.width(640 * this.ratio).margin({ left: 30 * this.ratio }) @@ -1042,43 +665,36 @@ struct Index { Image($r('app.media.dk_prev')) .width(90 * this.ratio) .height(70 * this.ratio) - .margin({ left: 65 * this.ratio, right: 10 * this.ratio }) + .margin({ left: 65 * this.ratio, right:10 * this.ratio }) .onClick(() => { this.prevClick() - // this.vocObj.playAudio({ - // type: 1, - // name: 'media_button.wav' - // }) + }) Image($r('app.media.dk_next')).width(90 * this.ratio).height(70 * this.ratio).onClick(() => { this.nextClick() - // this.vocObj.playAudio({ - // type: 1, - // name: 'media_button.wav' - // }) }) }.margin({ top: 40 * this.ratio, bottom: 10 * this.ratio }) Flex({ justifyContent: FlexAlign.SpaceBetween }) { Row() { Column() { - if (this.currentUser['kszp']) { - Image(this.currentUser['kszp'] ? this.currentUser['kszp'] : '') + if(this.currentUser['kszp']){ + Image(this.currentUser['kszp']?this.currentUser['kszp']:'') .width(93 * this.ratio) .height(130.5 * this.ratio) .margin({ bottom: 10 * this.ratio, right: 58 * this.ratio, left: 55 * this.ratio }) - } else { + }else{ Image('') .width(93 * this.ratio) .height(130.5 * this.ratio) .margin({ bottom: 10 * this.ratio, right: 58 * this.ratio, left: 55 * this.ratio }) } - if (this.currentUser['ksmjzp']) { - Image(this.currentUser['ksmjzp'] ? this.currentUser['ksmjzp'] : '') + if(this.currentUser['ksmjzp']){ + Image(this.currentUser['ksmjzp']?this.currentUser['ksmjzp']:'') .width(93 * this.ratio) .height(130.5 * this.ratio) .margin({ bottom: 10 * this.ratio, right: 58 * this.ratio, left: 55 * this.ratio }) - } else { + }else{ Image('') .width(93 * this.ratio) .height(130.5 * this.ratio) @@ -1138,7 +754,6 @@ struct Index { .margin({ left: 8 * this.ratio }) .align(Alignment.Center) }.margin({ bottom: 10 * this.ratio }) - Row() { Text('待考次数').fontSize(16 * this.ratio).fontColor('#99948A') Row() { @@ -1174,48 +789,27 @@ struct Index { .margin({ left: 53 * this.ratio }) Column() { - // Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { - // Image($r('app.media.yydj')).width(45 * this.ratio).height(45 * this.ratio) - // Text('语音对讲').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) - // } Image($r('app.media.yydj_btn')) .width(220 * this.ratio) .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) - .margin({ bottom: 12 * this.ratio }) - .onClick(() => { - // this.getCurrentStudent('3423231995014700007') - // this.vocObj.playAudio({ - // type: 1, - // name: 'media_button.wav' - // }) - }) + .margin({ bottom: 12 * this.ratio }).onClick(()=>{ + + }) + - // Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { - // Image($r('app.media.gx')).width(45 * this.ratio).height(45 * this.ratio) - // Text(' 更 新 ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) - // } Image($r('app.media.gx_btn')) .width(220 * this.ratio) .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) - .margin({ bottom: 12 * this.ratio }) - .onClick(() => { - this.faceCompareSucess = 0 - this.numCount = 0 - this.getExaminationStudentInfoFn() - // this.vocObj.playAudio({ - // type: 1, - // name: 'media_button.wav' - // }) - }) + .margin({ bottom: 12 * this.ratio }).onClick(()=>{ + this.faceCompareSucess=0 + this.numCount=0 + this.getExaminationStudentInfoFn() + }) - // Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { - // Image($r('app.media.qk')).width(45 * this.ratio).height(45 * this.ratio) - // Text(' 缺 考 ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) - // } Image($r('app.media.qk_btn')) .width(220 * this.ratio) .height(69 * this.ratio) @@ -1223,16 +817,10 @@ struct Index { .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ bottom: 12 * this.ratio }) .onClick(() => { - // this.qkFn() - this.qkFlag = true - // this.vocObj.playAudio({ - // type: 1, - // name: 'media_button.wav' - // }) + this.qkFlag=true + }) - // Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { - // Text('开始考试').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) - // } + Image($r('app.media.ksks_btn')) .width(220 * this.ratio) .height(69 * this.ratio) @@ -1240,12 +828,12 @@ struct Index { .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ bottom: 12 * this.ratio }) .onClick(() => { - this.faceCompareSucess = 0 - globalThis.statue = 2 - if (!this.currentUser.xm) { + this.faceCompareSucess=0 + globalThis.statue=2 + if(!this.currentUser.xm){ return } - if (globalThis.singlePlay) { + if(globalThis.singlePlay){ this.AccountTable.query('0', (result) => { if (result.length == 0) { this.AccountTable.insertData(this.currentUser, (id) => { @@ -1253,7 +841,7 @@ struct Index { console.log(result) router.pushUrl({ url: 'pages/Judge', - }, router.RouterMode.Single); + },router.RouterMode.Single); testNapi.StopReadCard(); // console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); }) @@ -1263,7 +851,7 @@ struct Index { this.AccountTable.query('0', (result) => { router.pushUrl({ url: 'pages/Judge', - }, router.RouterMode.Single); + },router.RouterMode.Single); testNapi.StopReadCard(); // console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); }) @@ -1272,30 +860,19 @@ struct Index { }) return } - this.showFaceCompare = true + this.showFaceCompare=true // this.sfbdinterfaceFn() // return }) } } - - if (this.showFaceCompare) { - FaceCompare({ - showFaceCompare: $showFaceCompare, - sfzh: this.currentUser.sfzmhm, - firstImage: this.currentUser.kszp, - faceCompareSucess: $faceCompareSucess, - getqkFlag: $getqkFlag, - faceCatchImg: $faceCatchImg, - lsh: globalThis.lsh - }) + if(this.showFaceCompare) { + FaceCompare({ sfzh: this.currentUser.sfzmhm, firstImage:this.currentUser.kszp,faceCompareSucess: $faceCompareSucess,getqkFlag:$getqkFlag,faceCatchImg:$faceCatchImg,lsh:globalThis.lsh }) } - if (this.qkFlag) { - Column() { - Text('确认考生:' + this.currentUser.xm + '是否缺考') - .fontSize(28 * this.ratio) - .position({ x: 160 * this.ratio, y: 122 * this.ratio }) - Row() { + if(this.qkFlag){ + Column(){ + Text('确认考生:'+this.currentUser.xm+'是否缺考').fontSize(28*this.ratio).position({x:160*this.ratio,y:122*this.ratio}) + Row(){ Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { Text(' 取 消 ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) } @@ -1303,11 +880,9 @@ struct Index { .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) - .margin({ bottom: 12 * this.ratio }) - .onClick(() => { - this.qkFlag = false + .margin({ bottom: 12 * this.ratio }).onClick(()=>{ + this.qkFlag=false }) - Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { Text(' 确 定 ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) } @@ -1315,19 +890,19 @@ struct Index { .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) - .margin({ bottom: 12 * this.ratio }) - .onClick(() => { + .margin({ bottom: 12 * this.ratio }).onClick(()=>{ this.qkFn() }) - }.position({ y: 265 * this.ratio, x: 115 * this.ratio }) + }.position({y:265*this.ratio,x:115*this.ratio}) - } - .width(660 * this.ratio) + }.width(660 * this.ratio) .height(360 * this.ratio) .position({ x: 150 * this.ratio, y: 98 * this.ratio }) .backgroundColor('#E6E3DF') .borderRadius(19 * this.ratio) } + + } .height('100%') .width('100%')