import { getSyncData } from '../common/service/initable'; import FileUtil from '../common/utils/File'; import pasteboard from '@ohos.pasteboard'; import emitter from '@ohos.events.emitter'; //监管接口序列号映射 const gjxlhObj = { '17C51': '02-21-000009', '17C52': '02-21-000010', '17C53': '02-21-000011', '17C54': '02-21-000012', '17C55': '02-21-000013', '17C56': '02-21-000014', } interface WR { message?: string code: number } export default async function writeObjectOutNew(data, filePath): Promise { const fileUtil = new FileUtil(globalThis.context); const {jkid , drvexam} = data; const basic = await getBasicConfig(jkid); const params = await getParams(jkid, drvexam); const {wglb,jkxlh,glbm,jgbh,sjbs} = basic; if (filePath) { await fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`, JSON.stringify({ wglb, jkxlh, glbm, jgbh, sjbs, data: params.data, file: { ...params.file, param: [] }, })); } // let connectTimeout = sjbs === '02-21-000014' ?60000:1 console.info('surenjun', '调用新监管') let temp try { let data = JSON.stringify({ host: globalThis.JGHOST, method: 'post', //是否是新中心 isNewCenter: true, xml: true, url: '/dems_ws/services/TmriOutAccess?wsdl', data: ` ${wglb} ${jkxlh} ${glbm} ${jgbh} ${sjbs} ${JSON.stringify(params.data)} ${JSON.stringify(params.file)} `, }) let systemPasteboard = pasteboard.getSystemPasteboard() let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, data) await systemPasteboard.clear() await systemPasteboard.setData(pasteData) let fn = () => { return new Promise((resolve, reject) => { globalThis.serviceExtProxy.processData("1", (errorCode: number, retVal: string) => { console.log("lixiao result", errorCode, JSON.stringify(retVal)) let result = JSON.parse(retVal) if (result.code === 0 ) { resolve(result.data) } else { emitter.emit({ eventId: 1 }) reject(result.data) } // console.log(`js-test index.ets processData, errorCode: ${errorCode}, retVal: ${retVal}`); }); }) } temp = await fn() // temp = await request({ // host: globalThis.JGHOST, // method: 'post', // //是否是新中心 // isNewCenter: true, // xml: true, // url: '/dems_ws/services/TmriOutAccess?wsdl', // data: ` // // // // ${wglb} // ${jkxlh} // ${glbm} // ${jgbh} // ${sjbs} // ${JSON.stringify(params.data)} // ${JSON.stringify(params.file)} // // // `, // }) } catch (e) { console.log("新监管错误") temp = e } console.log("temp message: ", JSON.stringify(temp)) if (filePath) { await fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`, JSON.stringify(temp) + `\n`); } return temp } export async function getParams(jkid, drvexam) { const examSubject = globalThis.carInfo.examSubject; switch (jkid) { //开始考试 case '17C51': return { data: { sjbs: gjxlhObj[jkid], param: { sfzmhm: drvexam.sfzmhm, kchp: decodeURI(drvexam.kchp), kskm: examSubject, ksxl: examSubject == 3 ? drvexam.ksxl : undefined, kssj: drvexam.kssj } }, file: { sjbs: gjxlhObj[jkid], // param: [{ field: '', data: examSubject == 2 ? encodeURIComponent(drvexam.zp) : drvexam.zp }] param: [{ field: '', data: drvexam.zp }] } } //项目开始 case '17C52': return { data: { sjbs: gjxlhObj[jkid], param: { sfzmhm: drvexam.sfzmhm, kskm: drvexam.kskm, ksxm: drvexam.ksxm, ksxl: examSubject == 3 ? drvexam.ksxl : undefined, kchp: decodeURI(drvexam.kchp), //TODO 待验证 科目三无 sbbh: examSubject == 3 ? undefined : drvexam.sbxh, kssj: drvexam.kssj } }, file: { sjbs: gjxlhObj[jkid], param: [{ field: '', data: '' }] } } //扣分 case '17C53': return { data: { sjbs: gjxlhObj[jkid], param: { kffs: drvexam.kffs, kfsj: drvexam.kfsj, kfxm: drvexam.kfxm, kfxmmx: drvexam.kfxmmx, kskm: examSubject, ksxm: drvexam.ksxm, sfzmhm: drvexam.sfzmhm } }, file: { sjbs: gjxlhObj[jkid], param: [{ field: '', data: '' }] } } //过程照片 case '17C54': return { data: { sjbs: gjxlhObj[jkid], param: { cs: drvexam.cs, kskm: drvexam.kskm, ksxm: drvexam.ksxm, sfzmhm: drvexam.sfzmhm, zpsj: drvexam.zpsj } }, file: { sjbs: gjxlhObj[jkid], param: [{ field: '', data: drvexam.zp }] } } //项目结束 case '17C55': return { data: { param: { czlx: drvexam.czlx, jssj: drvexam.jssj, kskm: examSubject, ksxl: drvexam.ksxl, sbbh: examSubject == 3 ? undefined : drvexam.sbxh, ksxm: drvexam.ksxm, sfzmhm: drvexam.sfzmhm }, sjbs: gjxlhObj[jkid], }, file: { sjbs: gjxlhObj[jkid], param: [{ field: '', data: '' }] } } //考试结束 case '17C56': return { data: { sjbs: gjxlhObj[jkid], param: { dwlc: drvexam.dwlc, ghks: "0", jssj: drvexam.jssj, kscj: drvexam.kscj, kskm: examSubject, kslc: drvexam.kslc, sfzmhm: drvexam.sfzmhm }, }, file: { sjbs: gjxlhObj[jkid], param: [{ field: '', data: drvexam.zp }] } } default: return {} } } //获取基础信息 async function getBasicConfig(jkid) { const examSubject = globalThis.carInfo.examSubject; const syssetParam = await getSyncData('MA_SYSSET'); let syssetObj = {}; //@ts-ignore syssetParam.forEach(sys => { syssetObj[sys.v_no] = decodeURIComponent(sys.v_value) }); return { //外挂类别 wglb: examSubject == 2 ? "700203" : "700204", //监管接口序列号 jkxlh: syssetObj['901'], //管理部门 glbm: syssetObj['903'], //考场序号 jgbh: syssetObj['905'], //接口id sjbs: gjxlhObj[jkid], } }