import request from "../common/utils/request" import { getCurrentTime } from '../common/utils/tools' import { getSyncData } from '../common/service/initable'; import writeObjectOutNew from './judgeNew' import FileUtil from '../common/utils/File'; let baseHost = globalThis.host; // 下载模型 export async function download() { return await request({ host: baseHost, url: '/para/initEsModel.ws', method: 'post', xml: false }) } interface WR{ message?:string code?:number keystr?:string } // 通用监管接口 export async function writeObjectOut(params,filePath?:string): Promise { const singlePlay = globalThis.singlePlay if (singlePlay) { return {code:1} } //获取监管接口地址路径 if (!globalThis.JGPATH) { const syssetParams = await getSyncData('MA_SYSSET') || []; //@ts-ignore syssetParams.forEach(sys => { if (sys.v_no == '839') { //是否是新监管 globalThis.isJGNew = sys.v_value == '3' } if (sys.v_no == '900') { globalThis.JGHOST = validateIP(decodeURIComponent(sys.v_value)) } }) } const {xtlb,jkxlh,jkid,drvexam} = params; //新监管调用 if (globalThis.isJGNew) { return await writeObjectOutNew(params,filePath) } drvexam.zp = drvexam.zp === undefined ? undefined : encodeURIComponent( drvexam.zp) const drvexamArrs = Reflect.ownKeys(drvexam) .filter(dKey => drvexam[dKey] != undefined) .map((key: string) => ( `<${key}>${drvexam[key]}`)); if(filePath){ const fileUtil = new FileUtil(globalThis.context); await fileUtil.initFolder(filePath); fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`,JSON.stringify({ xtlb,jkxlh,jkid,drvexam:{...drvexam,zp:''}, }) +`\n`); } console.info('surenjun','调用旧监管') //对象转换成xml const temp = await request({ host: globalThis.JGHOST, url: '/dems_ws/services/TmriOutAccess?wsdl', data: ` ${xtlb} ${jkxlh} ${jkid} ${drvexamArrs} ]]> `, method: 'post', xml: true }) if(filePath){ const fileUtil = new FileUtil(globalThis.context); await fileUtil.initFolder(filePath); fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`,JSON.stringify(temp) +`\n`); } return temp } // 过程文件上传 export async function uploadExamProgressData(params) { const singlePlay = globalThis.singlePlay const {carId,examinationRoomId,type,time,cardNo,examData,examStartTime,examEndTime} = params if (singlePlay) { return } return await request({ url: '/der2/services/exam/uploadExamDataFile.ws', data: ` ${carId} ${examinationRoomId} ${examData} ${type} ${cardNo} ${examStartTime} ${examEndTime} `, method: 'post', xml: true }) } // 上传考试里程 export async function uploadExamMileage(params) { const singlePlay = globalThis.singlePlay if (singlePlay) { return } const time = await getCurrentTime() return await request({ url: '/der2/services/exam/uploadExamMileage.ws', data: ` ${params.carId} ${params.examinationRoomId} ${params.lsh} ${params.examinationRoomId} ${params.kslc} `, method: 'post', xml: true }) } // 上传考试成绩 export async function uploadExamGrade(params) { const singlePlay = globalThis.singlePlay if (singlePlay) { return } const paramsArrs = Reflect.ownKeys(params).map((key: string) => (`<${key}>${params[key]}`)) const time = await getCurrentTime() return await request({ url: '/der2/services/exam/uploadExamGrade.ws', data: ` ${paramsArrs} `, method: 'post', xml: true }) } function validateIP(path: string) { const reg = new RegExp(/(\w+):\/\/([^/:]+)(:\d*)?/) const result = path.match(reg); return result[0] }