提交修改
This commit is contained in:
		
							parent
							
								
									ac5186ef97
								
							
						
					
					
						commit
						e917107df1
					
				| @ -6,7 +6,8 @@ import common from '@ohos.app.ability.common' | ||||
| import fs from '@ohos.file.fs' | ||||
| 
 | ||||
| const LOGTAG = 'LOGTAG' | ||||
| export default class FileUtil{ | ||||
| 
 | ||||
| export default class FileUtil { | ||||
|   private context: common.UIAbilityContext | ||||
|   private wantInfos: Want[] | ||||
|   private fileAccessHelper: fileAccess.FileAccessHelper | ||||
| @ -14,8 +15,7 @@ export default class FileUtil{ | ||||
|   //后续文件路径待替换
 | ||||
|   private absolutePath = '/mnt/hmdfs/100/account/device_view/local/files' | ||||
| 
 | ||||
|   public destFile:string | ||||
|   public filePathFdObj:Object = {} | ||||
|   public destFile: string | ||||
| 
 | ||||
|   constructor(wantInfos) { | ||||
|     const {requestPermission} = this; | ||||
| @ -27,81 +27,88 @@ export default class FileUtil{ | ||||
|    * @desc 校验文件夹,文件夹不存在会创建,支持嵌套 | ||||
|    * | ||||
|    */ | ||||
|   public initFolder = async (folderPath:string) => { | ||||
|   public initFolder = async (folderPath: string) => { | ||||
|     const {absolutePath} = this; | ||||
|     const folderList = folderPath.split('/').filter(folderName => folderName !== ''); | ||||
| 
 | ||||
|     let path = absolutePath | ||||
|     folderList.forEach((folderName=>{ | ||||
|     folderList.forEach((folderName => { | ||||
|       path += `/${folderName}`; | ||||
|       try { | ||||
|         const isExit = fs.accessSync(path); | ||||
|         if(!isExit){ | ||||
|         if (!isExit) { | ||||
|           fs.mkdirSync(path) | ||||
|         } | ||||
|       } catch (e) { | ||||
|         console.info('初始化文件夹失败',path) | ||||
|         console.info('初始化文件夹失败', path) | ||||
|         promptAction.showToast({ | ||||
|           message:`初始化文件夹失败`+ folderPath + JSON.stringify(e), | ||||
|           duration:4000, | ||||
|           message: `初始化文件夹失败` + JSON.stringify(e), | ||||
|           duration: 4000, | ||||
|         }) | ||||
|       } | ||||
| 
 | ||||
| 
 | ||||
|     })); | ||||
|     return path; | ||||
|   } | ||||
| 
 | ||||
|   /* | ||||
| * @desc 创建并覆盖文件 | ||||
| * | ||||
| */ | ||||
|   public addFile = async (filePath:string,content:string,type?:string)=>{ | ||||
|     const { READ_WRITE,CREATE,APPEND }= fs.OpenMode | ||||
|   public addFile = async (filePath: string, content: string, type?: string, fd?) => { | ||||
|     const { READ_WRITE,CREATE,APPEND } = fs.OpenMode | ||||
|     const isExit = fs.accessSync(filePath); | ||||
|     //文件存在先删除
 | ||||
|     if(isExit){ | ||||
|     if (isExit) { | ||||
|       fs.unlinkSync(filePath); | ||||
|     } | ||||
|     try { | ||||
|       let file = fs.openSync(filePath, READ_WRITE  | CREATE); | ||||
|       let file | ||||
|       if (!fd) { | ||||
|         file = fs.openSync(filePath, READ_WRITE | CREATE); | ||||
|       } | ||||
|       //追加写入文件
 | ||||
|       fs.writeSync(file.fd,content) | ||||
|       fs.writeSync(file.fd, content) | ||||
|       fs.closeSync(file) | ||||
|       console.error(LOGTAG,'写入文件成功') | ||||
|       return true | ||||
|       return file.fd | ||||
| 
 | ||||
|     }catch (e){ | ||||
|       promptAction.showToast({ | ||||
|         message:`addFile文件失败`+ filePath +JSON.stringify(e), | ||||
|         duration:4000, | ||||
|       }) | ||||
|       console.error(LOGTAG,'写入失败',JSON.stringify(e)) | ||||
|     } catch (e) { | ||||
|       console.error(LOGTAG, '写入失败', JSON.stringify(e)) | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   public openFileSync = async (filePath) => { | ||||
|     const { READ_WRITE,CREATE,APPEND } = fs.OpenMode | ||||
|     let file = fs.openSync(filePath, READ_WRITE | APPEND | CREATE); | ||||
|     return file | ||||
|   } | ||||
| 
 | ||||
|   public editFileWidthOutOpen(file, content) { | ||||
|     const newStr = content + '\n' | ||||
|     fs.writeSync(file.fd, newStr) | ||||
|     fs.closeSync(file) | ||||
|     console.error(LOGTAG, '写入文件成功') | ||||
|   } | ||||
| 
 | ||||
|   /* | ||||
|   * @desc 创建或者编辑文件 | ||||
|   * | ||||
|   */ | ||||
|   public editFile = async (filePath:string,content:string,fd?:number)=>{ | ||||
|     const {filePathFdObj} = this; | ||||
|     const { READ_WRITE,CREATE,APPEND }= fs.OpenMode | ||||
|     const newStr =  content + '\n' | ||||
|     const thisFileFd = filePathFdObj[filePath]; | ||||
|   public editFile = async (filePath: string, content: string, fd?: number) => { | ||||
|     const { READ_WRITE,CREATE,APPEND } = fs.OpenMode | ||||
|     try { | ||||
|       if(thisFileFd){ | ||||
|         fs.writeSync(fd,newStr) | ||||
|         return fd; | ||||
|       }else{ | ||||
|         let file = fs.openSync(filePath, READ_WRITE | APPEND |CREATE); | ||||
|         fs.writeSync(file.fd,newStr) | ||||
|         this.filePathFdObj[filePath] = file.fd | ||||
|       const newStr = content + '\n' | ||||
|       if (fd !== undefined) { | ||||
|         fs.writeSync(fd, newStr) | ||||
|         return fd | ||||
|       } else { | ||||
|         let file = fs.openSync(filePath, READ_WRITE | APPEND | CREATE); | ||||
|         fs.writeSync(file.fd, newStr) | ||||
|         return file.fd | ||||
|       } | ||||
| 
 | ||||
|     } catch (e) { | ||||
|       promptAction.showToast({ | ||||
|         message:`editFile文件失败`+ filePath +JSON.stringify(e), | ||||
|         duration:4000, | ||||
|       }) | ||||
|       console.error(LOGTAG,JSON.stringify(e)) | ||||
|       console.error(LOGTAG, JSON.stringify(e)) | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| @ -109,17 +116,12 @@ export default class FileUtil{ | ||||
|   * @desc 读取文件 | ||||
|   * | ||||
|   **/ | ||||
|   public readFile = async (filePath:string) => { | ||||
|     try{ | ||||
|       console.log('strrr',filePath) | ||||
|   public readFile = async (filePath: string) => { | ||||
|     try { | ||||
|       console.log('strrr', filePath) | ||||
|       const str = await fs.readText(filePath); | ||||
|       return str | ||||
|     }catch (e){ | ||||
|       promptAction.showToast({ | ||||
|         message:`读取文件失败`+ filePath +JSON.stringify(e), | ||||
|         duration:4000, | ||||
|       }) | ||||
|       console.log('readFile文件失败'+ filePath +JSON.stringify(e)) | ||||
|     } catch (err) { | ||||
|       return '' | ||||
|     } | ||||
| 
 | ||||
| @ -128,9 +130,9 @@ export default class FileUtil{ | ||||
|   /* | ||||
|    *  @desc获取系统目录里的文件列表 | ||||
|    */ | ||||
|   public getDeviceList = async (folderPath?:string)=>{ | ||||
|   public getDeviceList = async (folderPath?: string) => { | ||||
|     const {absolutePath,getFilePathList} = this; | ||||
|     return getFilePathList(`${absolutePath}/${folderPath}`,false) | ||||
|     return getFilePathList(`${absolutePath}/${folderPath}`, false) | ||||
|   }; | ||||
| 
 | ||||
|   // 删除文件夹或者文件
 | ||||
| @ -139,29 +141,29 @@ export default class FileUtil{ | ||||
|    * @param{{type}} 1:文件夹 2:文件 3:自定义目录下文件 | ||||
|    **/ | ||||
| 
 | ||||
|   public deleteF = async (path:string,type: 1 | 2 | 3) => { | ||||
|   public deleteF = async (path: string, type: 1 | 2 | 3) => { | ||||
|     const {getFilePathList,absolutePath} = this | ||||
|     if(type === 1){ | ||||
|       const fileList = await getFilePathList(`${absolutePath}/${path}`,false); | ||||
|       fileList.forEach(filePath =>{ | ||||
|     if (type === 1) { | ||||
|       const fileList = await getFilePathList(`${absolutePath}/${path}`, false); | ||||
|       fileList.forEach(filePath => { | ||||
|         fs.unlinkSync(`${absolutePath}/${path}/${filePath}`); | ||||
|       }) | ||||
|       fs.rmdirSync(`${absolutePath}/${path}`); | ||||
|       return true | ||||
|     } | ||||
| 
 | ||||
|     if(type === 2){ | ||||
|     if (type === 2) { | ||||
|       fs.unlinkSync(`${absolutePath}/${path}`); | ||||
|       return true | ||||
|     } | ||||
|     if(type === 3){ | ||||
|     if (type === 3) { | ||||
|       fs.unlinkSync(`${path}`); | ||||
|       return true | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   // 获取系统文件绝对路径
 | ||||
|   public getAbsolutePath = () =>{ | ||||
|   public getAbsolutePath = () => { | ||||
|     const {absolutePath} = this; | ||||
|     return absolutePath | ||||
|   } | ||||
| @ -170,7 +172,7 @@ export default class FileUtil{ | ||||
|   public getSdCardPathList = async () => { | ||||
|     this.wantInfos = await fileAccess.getFileAccessAbilityInfo(); | ||||
|     const {wantInfos,context} = this; | ||||
|     const fileAccessHelper = fileAccess.createFileAccessHelper(this.context,this.wantInfos); | ||||
|     const fileAccessHelper = fileAccess.createFileAccessHelper(this.context, this.wantInfos); | ||||
|     this.fileAccessHelper = fileAccessHelper; | ||||
| 
 | ||||
|     let isDone = false; | ||||
| @ -186,48 +188,48 @@ export default class FileUtil{ | ||||
|         if (!isDone) { | ||||
|           let deviceType = rootInfo.value.deviceType; | ||||
|           let displayName = rootInfo.value.displayName; | ||||
|           let uri:string = rootInfo.value.uri; | ||||
|           let uri: string = rootInfo.value.uri; | ||||
|           let deviceFlags = rootInfo.value.deviceFlags; | ||||
|           console.error(LOGTAG,`设备类型:${deviceType},设备名称:${displayName},设备根目录Uri:${uri},设备支持的能力:${deviceFlags}`); | ||||
|           console.error(LOGTAG, `设备类型:${deviceType},设备名称:${displayName},设备根目录Uri:${uri},设备支持的能力:${deviceFlags}`); | ||||
| 
 | ||||
|           if(uri.indexOf('/mnt/external/')>0){ | ||||
|           if (uri.indexOf('/mnt/external/') > 0) { | ||||
|             // if('vol-8-1' ==displayName){
 | ||||
|             this.destFile = uri.split('ExternalFileManager')[1]+'/' | ||||
|             console.error(LOGTAG,`外置存储路径:`+this.destFile); | ||||
|             this.getFilePathList(this.destFile,true) | ||||
|             this.destFile = uri.split('ExternalFileManager')[1] + '/' | ||||
|             console.error(LOGTAG, `外置存储路径:` + this.destFile); | ||||
|             this.getFilePathList(this.destFile, true) | ||||
|           } | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|     } catch (error) { | ||||
|       console.error(LOGTAG,"getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); | ||||
|       console.error(LOGTAG, "getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   public getFileContent = (filePath:string) => { | ||||
|   public getFileContent = (filePath: string) => { | ||||
|     const {absolutePath} = this; | ||||
|     const { READ_WRITE }= fs.OpenMode | ||||
|     const { READ_WRITE } = fs.OpenMode | ||||
|     const path = `${absolutePath}/${filePath}` | ||||
|     const str = fs.readTextSync(path); | ||||
|     return str | ||||
|   } | ||||
| 
 | ||||
|   private getFilePathList = async (filePath:string,isSdcard:boolean) => { | ||||
|     let fileName = [],sdCardFileName = []; | ||||
|   private getFilePathList = async (filePath: string, isSdcard: boolean) => { | ||||
|     let fileName = [], sdCardFileName = []; | ||||
| 
 | ||||
|     try { | ||||
|       const filenames = await fs.listFile(filePath); | ||||
|       for (let i = 0; i < filenames.length; i++) { | ||||
|         console.error(LOGTAG,`目录:${filePath}的子文件:${filenames[i]}`); | ||||
|         if(isSdcard){ | ||||
|         console.error(LOGTAG, `目录:${filePath}的子文件:${filenames[i]}`); | ||||
|         if (isSdcard) { | ||||
|           sdCardFileName.push(filenames[i]) | ||||
|         }else{ | ||||
|         } else { | ||||
|           fileName.push(filenames[i]) | ||||
|         } | ||||
|       } | ||||
|       return isSdcard ? sdCardFileName : fileName | ||||
|     }catch (e){ | ||||
|       console.error(LOGTAG,JSON.stringify(e)); | ||||
|     } catch (e) { | ||||
|       console.error(LOGTAG, JSON.stringify(e)); | ||||
|     } | ||||
| 
 | ||||
|   } | ||||
| @ -241,17 +243,15 @@ export default class FileUtil{ | ||||
|     ]; | ||||
|     this.wantInfos = await fileAccess.getFileAccessAbilityInfo(); | ||||
|     let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager() | ||||
|     atManager.requestPermissionsFromUser(context, permissions , async (code, result) => { | ||||
|     atManager.requestPermissionsFromUser(context, permissions, async (code, result) => { | ||||
|       const permissionRequest = result.authResults[0] | ||||
|       if(permissionRequest == -1){ | ||||
|       if (permissionRequest == -1) { | ||||
|         promptAction.showToast({ | ||||
|           message: "请先授权", | ||||
|           duration:3000, | ||||
|           duration: 3000, | ||||
|         }) | ||||
|         return | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -31,7 +31,7 @@ export default async function request(req: any) { | ||||
|             'Content-Type': xml ? 'text/xml' : 'application/json' | ||||
|         }, | ||||
|         extraData: xml ? data : JSON.stringify(data), | ||||
|         connectTimeout:120000, | ||||
|         // connectTimeout:120000,
 | ||||
|     } | ||||
|     //params转url拼接参数
 | ||||
|     let paramsStr  = Reflect.ownKeys(params).reduce((p: string, n: string) => (`${p}${n}=${params[n]}&`), '?') || ''; | ||||
|  | ||||
| @ -31,7 +31,6 @@ import { judgeConfig } from './judgeSDK/utils/judgeConfig'; | ||||
| import FileUtil from '../common/utils/File'; | ||||
| import SignDisplayCom from './compontents/signDisplayCom'; | ||||
| import promptAction from '@ohos.promptAction'; | ||||
| import { voiceService } from '../common/service/voiceService'; | ||||
| 
 | ||||
| @Entry | ||||
| @Component | ||||
| @ -41,8 +40,6 @@ struct Index { | ||||
|   } | ||||
| 
 | ||||
|   async aboutToAppear() { | ||||
|     this.vocObj = new voiceService(async (status, val, next) => { | ||||
|     }); | ||||
|     globalThis.windowClass.setWindowSystemBarEnable([]) | ||||
|     const time = await getCurrentTime() | ||||
| 
 | ||||
| @ -763,10 +760,6 @@ struct Index { | ||||
|                             .height(118 * 0.95) | ||||
|                             .margin({ bottom: 8 }) | ||||
|                             .onClick(() => { | ||||
|                               this.vocObj.playAudio({ | ||||
|                                 type: 1, | ||||
|                                 name: 'button_media.wav' | ||||
|                               }) | ||||
|                               this.setManualProjectFn(index) | ||||
|                             }) | ||||
|                           }) | ||||
| @ -799,10 +792,6 @@ struct Index { | ||||
|             .alignItems(VerticalAlign.Center) | ||||
|             .border({ width: 5, color: '#4D4136', radius: 30 }) | ||||
|             .onClick(() => { | ||||
|               this.vocObj.playAudio({ | ||||
|                 type: 1, | ||||
|                 name: 'button_media.wav' | ||||
|               }) | ||||
|               this.signDisplayComVisible = true | ||||
|             }) | ||||
| 
 | ||||
| @ -838,10 +827,6 @@ struct Index { | ||||
|               .backgroundImageSize({ width: '100%', height: '100%' }) | ||||
|               .margin({ bottom: 10 }) | ||||
|               .onClick(() => { | ||||
|                 this.vocObj.playAudio({ | ||||
|                   type: 1, | ||||
|                   name: 'button_media.wav' | ||||
|                 }) | ||||
|                 this.isDeductedPopShow = true | ||||
|               }) | ||||
|             } | ||||
| @ -871,10 +856,6 @@ struct Index { | ||||
|             .backgroundImage($rawfile('judge/anniu_nor.png'), ImageRepeat.NoRepeat) | ||||
|             .backgroundImageSize({ width: '100%', height: '100%' }) | ||||
|             .onClick(() => { | ||||
|               this.vocObj.playAudio({ | ||||
|                 type: 1, | ||||
|                 name: 'button_media.wav' | ||||
|               }) | ||||
|               if (this.judgeConfigObj['353'] == '0') { | ||||
|                 this.endPopupVisible = true | ||||
|               } else { | ||||
| @ -938,10 +919,6 @@ struct Index { | ||||
|           .backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat) | ||||
|           .backgroundImageSize({ width: '33.33%', height: '33.33%' }) | ||||
|           .onClick(() => { | ||||
|             this.vocObj.playAudio({ | ||||
|               type: 1, | ||||
|               name: 'button_media.wav' | ||||
|             }) | ||||
|             this.signDisplayComVisible = false | ||||
|           }) | ||||
|         }.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)') | ||||
| @ -1353,11 +1330,10 @@ struct Index { | ||||
|   @State lane: LANE = { road: '', num: 0, count: 0 } | ||||
|   @State roadData: Object = {}; | ||||
|   //定位差分状态时候正常 | ||||
|   @State isDwztRight: boolean = true; | ||||
|   @State isDwztRight: boolean = false; | ||||
|   @State defaultTabIndex: number = 0; | ||||
|   private context = getContext(this) as common.UIAbilityContext; | ||||
|   public kfArrScroller: Scroller = new Scroller() | ||||
|   private vocObj = null; | ||||
|   //档位 | ||||
|   @State dw: string = '' | ||||
|   //速度 | ||||
|  | ||||
| @ -97,8 +97,8 @@ export interface MAPITEMPOINTITEM { | ||||
| } | ||||
| 
 | ||||
| export interface EXAMDATA { | ||||
|   //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件 11:差分事件
 | ||||
|   event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||||
|   //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件
 | ||||
|   event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ||||
|   //时间
 | ||||
|   sj: number | ||||
|   //考车状态 -1:后退 0:停车 1:前进
 | ||||
| @ -164,9 +164,6 @@ export interface EXAMDATA { | ||||
|     xmdm:number, | ||||
|     xmxh:string | ||||
|   } | ||||
|   nongps:{ | ||||
|     type:0|1|2|3|4 | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export interface KSJS { | ||||
|  | ||||
| @ -72,6 +72,7 @@ export default class Judge { | ||||
|     this.kfArr = judgeUI.kfArr | ||||
|     this.xmmcStr = ''; | ||||
|     this.xmmcCode = ''; | ||||
|     this.xmmcEndCode = undefined; | ||||
|     this.carztStr = ''; | ||||
|     this.testKmItems = {}; | ||||
|     // 考试回放配置
 | ||||
| @ -358,7 +359,7 @@ export default class Judge { | ||||
|   handleRealExam = async (strData, callBack) => { | ||||
|     let examData: EXAMDATA = JSON.parse(strData); | ||||
|     const {getDqxmStr,getKfStr,goJudgeVoice,setMndg,avPlayer,fileLog,judgeUI} = this; | ||||
|     const {carzt,xmks,kf,event,xmjs,xmqx,ksjs,sound,mndg,lane,precast,nongps} = examData | ||||
|     const {carzt,xmks,kf,event,xmjs,xmqx,ksjs,sound,mndg,lane,precast} = examData | ||||
|     const  param512 = (judgeUI.judgeConfigObj['512'] || '').split(','); | ||||
|     //获取项目结束、项目开始代码
 | ||||
|     const xmdm = event == 2 ? xmjs.xmdm : xmks.xmdm | ||||
| @ -385,6 +386,7 @@ export default class Judge { | ||||
|         this.xmmcStr = xmmcStr; | ||||
|         this.xmmcCode = xmmcCode; | ||||
|         this.xmmcSingleCode = xmmcSingleCode | ||||
|         this.xmmcEndCode = xmmcCode | ||||
|         this.xmdm = xmdm; | ||||
|         this.xmxh = xmxh; | ||||
|         this.judgeUI.isProjectIn = true | ||||
| @ -482,7 +484,7 @@ export default class Judge { | ||||
|       case 10:{ | ||||
|         const param611 = judgeConfigObj['611'] || ''; | ||||
|         const [f,s] = param611.split('/') | ||||
|         const {xmdm} = precast; | ||||
|         const {xmdm,xmxh} = precast; | ||||
|         const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter; | ||||
|         const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode; | ||||
|         // if(examSubject == 2 && ((xmdm == 0 && f == 1) || (xmdm == 1 && s == 1) || xmdm == 3)){
 | ||||
| @ -492,16 +494,13 @@ export default class Judge { | ||||
|         this.testKmItems[xmmcCode].status = 2; | ||||
|         this.xmmcStr = xmmcStr; | ||||
|         this.xmmcCode = xmmcCode; | ||||
|         this.xmdm = xmdm; | ||||
|         this.xmxh = xmxh; | ||||
|         this.xmmcSingleCode = xmmcSingleCode; | ||||
|         judgeUI.projectsObj[xmdm].type = '2'; | ||||
|       } | ||||
|         break; | ||||
| 
 | ||||
|     //差分事件
 | ||||
|       case 11:{ | ||||
|         const {type}= nongps | ||||
|         this.checkDwzt(type) | ||||
|       } | ||||
|       default: | ||||
|         break; | ||||
| 
 | ||||
| @ -594,6 +593,7 @@ export default class Judge { | ||||
|               console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`) | ||||
|               await endProject(xmdm); | ||||
|               this.xmmcSingleCode = 0; | ||||
|               this.xmmcEndCode = undefined; | ||||
|             }, {isDelay: true}) | ||||
|           } | ||||
|         } | ||||
| @ -760,7 +760,7 @@ export default class Judge { | ||||
|     const carInfo = globalThis.carInfo; | ||||
|     const deviceNo = globalThis.deviceNo; | ||||
|     const { examSubject,plateNo,carNo } = carInfo; | ||||
|     const {judgeUI,getProjectInfo,fileLog,xmmcSingleCode,filePath} = this; | ||||
|     const {judgeUI,getProjectInfo,fileLog,xmmcEndCode,filePath} = this; | ||||
|     const {lsh,idCard,serialNumber,ksdd,projectsObj} = judgeUI | ||||
|     const time = await getCurrentTime(); | ||||
|     const project = getProjectInfo(ksxm); | ||||
| @ -776,6 +776,11 @@ 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 = { | ||||
|       xtlb: '17', jkxlh: serialNumber, jkid: '17C53', | ||||
|       drvexam: { | ||||
| @ -784,7 +789,7 @@ export default class Judge { | ||||
|         ksxm: project == undefined | ||||
|           ? (commonKsxm | ||||
|             ? (projectsObj[commonKsxm].projectCodeCenter) | ||||
|             : (examSubject == 3 ? 30000 : 10000)) | ||||
|             : (examSubject == 3 ? 30000 : (xmmcEndCode == undefined?10000:xmmcEndCode))) | ||||
|           : project.projectCodeCenter , | ||||
|         kfxm: kf.markcatalog, | ||||
|         kfxmmx: `${ksxm},${kf.markserial}`, | ||||
| @ -1482,13 +1487,13 @@ export default class Judge { | ||||
|       const str = await senorToWXDataStr(msg); | ||||
|       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'] | ||||
|     //@ts-ignore
 | ||||
|     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) + '' | ||||
|     //TODO 暂时关闭差分检测异常
 | ||||
|     // await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt);
 | ||||
|     await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt); | ||||
|     if(!isExamEnd){ | ||||
|       await examJudgeRealExam(plcData) | ||||
|     } | ||||
| @ -1574,7 +1579,7 @@ export default class Judge { | ||||
|       const bytes = await this.getMessageHeartbeat(); | ||||
|       bytes && globalThis.judgeUdp.send(bytes) | ||||
| 
 | ||||
|     }, 20) | ||||
|     }, 50) | ||||
| 
 | ||||
|     globalThis.judgeTimer = judgeTimer; | ||||
|   } | ||||
| @ -1615,35 +1620,25 @@ export default class Judge { | ||||
|   } | ||||
| 
 | ||||
|   // 检测差分状态
 | ||||
|   checkDwzt = async (type) => { | ||||
|   checkDwzt = async (dwzt,jdzt) => { | ||||
|     const {avPlayer} = this; | ||||
|     const judgeConfig = this.judgeUI.judgeConfig; | ||||
|     switch (type){ | ||||
|       case 0: | ||||
|         this.judgeUI.isDwztRight = true; | ||||
|         break; | ||||
|     const param499 = judgeConfig['499'] || ''; | ||||
|     if(param499 == '' || param499 == undefined){ | ||||
|       return | ||||
|     } | ||||
|     //10秒内dwzt不为4;
 | ||||
|     const dwztNum = this.dwztNum | ||||
|     if(dwztNum != 0 && (dwztNum % (5 * 10) == 0)  && (param499 !== '' || param499 !== undefined)){ | ||||
|       this.judgeUI.dwztErrorVisible = true; | ||||
|       avPlayer.playAudio([`voice/差分状态异常.mp3`],true) | ||||
|     } | ||||
| 
 | ||||
|       case 1: | ||||
|         this.judgeUI.dwztErrorVisible = true; | ||||
|         avPlayer.playAudio([`voice/差分状态异常.mp3`],true) | ||||
|         setTimeout(()=>{ | ||||
|           router.back() | ||||
|         },3000) | ||||
|         break; | ||||
| 
 | ||||
|       case 2: | ||||
|         avPlayer.playAudio([`voice/差分状态异常.mp3`],true); | ||||
| 
 | ||||
|         break; | ||||
|       case 3: | ||||
|         this.judgeUI.dwztErrorVisible = true; | ||||
|         avPlayer.playAudio([`voice/差分状态异常.mp3`],true); | ||||
|         break; | ||||
| 
 | ||||
|       case 4: | ||||
|         this.judgeUI.isDwztRight = false; | ||||
|       //差分异常上报
 | ||||
|         break; | ||||
|     if(dwzt != 4 || jdzt != 3){ | ||||
|       this.dwztNum += 1 | ||||
|     }else{ | ||||
|       this.dwztNum = 0; | ||||
|       this.judgeUI.dwztErrorVisible = false; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| @ -1664,6 +1659,7 @@ export default class Judge { | ||||
|   private xmmcStr: string | ||||
|   private xmmcCode: string | ||||
|   private xmmcSingleCode: number | ||||
|   private xmmcEndCode?:number | ||||
|   private xmdm: string | number | ||||
|   private xmxh: string | ||||
|   private fileModel: FileModel | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user