import request from '../utils/Request'; import writeObjectOutNew from './judgeNew'; import http from '@ohos.net.http'; import { MASYSSETTableType, RegulatoryInterfaceParams, WuxiExamType } from '../model'; import { GetSyncData } from '../utils/table/Operation'; import { GetCurrentTime } from '../utils/Common'; import FileUtils from '../utils/FileUtils'; import common from '@ohos.app.ability.common'; import { dConsole } from '../utils/LogWorker'; import { JudgeTag } from '../config'; let baseHost: string = AppStorage.get('host')!; // 下载模型 export async function download() { return request({ host: baseHost as string, url: '/para/initEsModel.ws', method: http.RequestMethod.POST, xml: false, }) } interface WR { message?: string code?: number keystr?: string } // 通用监管接口 export async function writeObjectOut(params: RegulatoryInterfaceParams, filePath: string, context: common.UIAbilityContext): Promise { const singlePlay: boolean = AppStorage.get('singlePlay') || false if (singlePlay) { return { code: 1 } } let JGHOST: string = AppStorage.get("JGHOST") || "" let isJGNew: boolean = false //获取监管接口地址路径 if (!JGHOST) { const syssetParams: MASYSSETTableType[] = await GetSyncData("MA_SYSSET"); syssetParams.forEach(sys => { if (sys.v_no == '839') { //是否是新监管 isJGNew = sys.v_value == '3' AppStorage.setOrCreate('isJGNew', isJGNew) } if (sys.v_no == '900') { const ip = decodeURIComponent(sys.v_value || "") JGHOST = validateIP(ip) || "" dConsole.log(JudgeTag, "监管地址取值", JGHOST) AppStorage.setOrCreate('JGHOST', JGHOST) } }) } //新监管调用 if (isJGNew) { dConsole.log(JudgeTag, "新监管") return await writeObjectOutNew(params, filePath, context) } params.drvexam = params.drvexam ?? {}; params.drvexam.zp = params.drvexam.zp === undefined ? undefined : encodeURIComponent(params.drvexam.zp); const drvexamArr = Object.entries(params.drvexam) .filter((item: [string, string]) => item[1] != undefined) .map((item: [string, object]) => `<${item[0]}>${item[1]}`) if (filePath) { const fileUtil = new FileUtils(context); await fileUtil.initFolder(filePath); let obj: WuxiExamType = { xtlb: params.xtlb, jkxlh: params.jkxlh, jkid: params.jkid, drvexam: { zp: "", }, } fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`, JSON.stringify(obj) + `\n`); } dConsole.log(JudgeTag, "老监管", JGHOST) //对象转换成xml const temp = await request({ host: JGHOST, url: '/dems_ws/services/TmriOutAccess?wsdl', data: ` ${params.xtlb} ${params.jkxlh} ${params.jkid} ${drvexamArr} ]]> `, method: http.RequestMethod.POST, xml: true },) if (filePath) { const fileUtil = new FileUtils(context); await fileUtil.initFolder(filePath); fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`, JSON.stringify(temp) + `\n`); } // const {code} = temp; // if(code == '2300007' || code == '2300028'){ // return await writeObjectOut(params,filePath) // }else{ // return temp // } return temp } interface UploadExamProgressDataParams { carId: string examinationRoomId: string type: number time: string cardNo: string examData: string examStartTime: string examEndTime: string } // 过程文件上传 export async function uploadExamProgressData(params: UploadExamProgressDataParams) { const singlePlay: boolean = AppStorage.get('singlePlay') || false if (singlePlay) { return } return request({ url: '/der2/services/exam/uploadExamDataFile.ws', data: ` ${params.carId} ${params.examinationRoomId} ${params.examData} ${params.type} ${params.cardNo} ${params.examStartTime} ${params.examEndTime} `, method: http.RequestMethod.POST, xml: true }) } interface UploadExamProgressDataParams2 { carId: string examinationRoomId: string type: string time: string cardNo: string examData: string examStartTime: string examEndTime: string } export async function uploadExamProgressData2(params: UploadExamProgressDataParams2) { // const singlePlay = globalThis.singlePlay const singlePlay: boolean = AppStorage.get('singlePlay') || false if (singlePlay) { return } return request({ url: '/der2/services/exam/uploadExamDataFile.ws', data: ` ${params.carId} ${params.examinationRoomId} ${params.examData} ${params.type} ${params.cardNo} ${params.examStartTime} ${params.examEndTime} `, method: http.RequestMethod.POST, xml: true }) } interface UploadExamMileage { carId: string examinationRoomId: string lsh: string kslc: number kskssj: string } // 上传考试里程 export async function uploadExamMileage(params: UploadExamMileage) { // const singlePlay = globalThis.singlePlay const singlePlay: boolean = AppStorage.get('singlePlay') || false if (singlePlay) { return } const time = GetCurrentTime() return request({ url: '/der2/services/exam/uploadExamMileage.ws', data: ` ${params.carId} ${params.examinationRoomId} ${params.lsh} ${params.examinationRoomId} ${params.kslc} `, method: http.RequestMethod.POST, xml: true }) } // 上传考试成绩 // export async function uploadExamGrade(params: ESObject) { // // const singlePlay = globalThis.singlePlay // const singlePlay: boolean = AppStorage.get('singlePlay') || false // if (singlePlay) { // return // } // const paramsArrs = Reflect.ownKeys(params).map((key) => (`<${key}>${params[key]}`)) // const time = GetCurrentTime() // return request({ // url: '/der2/services/exam/uploadExamGrade.ws', // data: ` // // // // ${paramsArrs} // // `, // method: http.RequestMethod.POST, // xml: true // }) // } // 上传运行时常 export async function uploadHarmonyLiCheng(data: object) { return request({ url: '/der2/services/data/harmonyLiCheng.ws', data, method: http.RequestMethod.POST, xml: false }) } function validateIP(path: string) { // const regex = /(\w+):\/\/([\d.]+)(:\d+)?/; const regex = new RegExp("(\\w+):\\/\\/([\\d.]+)(:\\d+)?"); const result = path.match(regex); return result ? result[0] : null; }