import { getSyncData } from '../common/service/initable'; import request from "../common/utils/request" let baseHost = globalThis.host; import FileUtil from '../common/utils/File'; import FileLog from '../pages/judgeSDK/utils/fileLog'; import pasteboard from '@ohos.pasteboard'; //监管接口序列号映射 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, externalTransmission): 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 let requestData = { 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)} `, } try { if (!externalTransmission) { temp = await request(requestData) } else { let systemPasteboard = pasteboard.getSystemPasteboard() let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, JSON.stringify(requestData)) await systemPasteboard.clear() await systemPasteboard.setData(pasteData) temp = { code: 1 } } } 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], } }