418 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			418 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| // @ts-nocheck
 | ||
| import { initCenterCache, initCenterCacheByKSPT, initEsModel, initialization } from '../../api/index';
 | ||
| import { dateFormat } from '../utils/tools';
 | ||
| import AccountTable from '../database/tables/AccountTable';
 | ||
| import MA_MARKRULE from '../constants/MA_MARKRULE';
 | ||
| import MA_SYSTEMPARM from '../constants/MA_SYSTEMPARM';
 | ||
| import MA_MAP_COLLECT from '../constants/MA_MAP_COLLECT';
 | ||
| import MA_MAP_COLLECT_SHAPE from '../constants/MA_MAP_COLLECT_SHAPE';
 | ||
| import MA_MAP_ITEMCLASS from '../constants/MA_MAP_ITEMCLASS';
 | ||
| import MA_MAP_POINT from '../constants/MA_MAP_POINT';
 | ||
| import MA_MAP_POINT_ITEM from '../constants/MA_MAP_POINT_ITEM';
 | ||
| import MA_MAP_ROAD from '../constants/MA_MAP_ROAD';
 | ||
| import MA_MAP_ROAD_LANE from '../constants/MA_MAP_ROAD_LANE';
 | ||
| import MA_MAP_SUBITEM from '../constants/MA_MAP_SUBITEM';
 | ||
| import MA_SYSSET from '../constants/MA_SYSSET';
 | ||
| import ES_CARINFO from '../constants/ES_CARINFO';
 | ||
| import ES_EXAMPOINTDETAIL from '../constants/ES_EXAMPOINTDETAIL';
 | ||
| import MA_MARKRULESET from '../constants/MA_MARKRULESET';
 | ||
| import MA_CDSBINFO from '../constants/MA_CDSBINFO';
 | ||
| import MA_ITEMINFO from '../constants/MA_ITEMINFO';
 | ||
| import MA_T_CARPARMSET from '../constants/MA_T_CARPARMSET';
 | ||
| import ES_CAR_VIDEO_PARAMETER from '../constants/ES_CAR_VIDEO_PARAMETER';
 | ||
| import IpConfigTable from '../constants/IpConfigTable';
 | ||
| import CommonConstants from '../constants/CommonConstants';
 | ||
| import DeviceInfoTable from '../constants/DeviceInfoTable';
 | ||
| import USER from '../constants/USER';
 | ||
| import util from '@ohos.util';
 | ||
| import FileModel from '../../pages/judgeSDK/utils/fileModel';
 | ||
| 
 | ||
| // @ts-nocheck
 | ||
| //读表
 | ||
| //参数平台
 | ||
| const map = {
 | ||
|   'MA_MARKRULE': MA_MARKRULE,
 | ||
|   'MA_SYSTEMPARM': MA_SYSTEMPARM,
 | ||
|   'MA_MAP_COLLECT': MA_MAP_COLLECT,
 | ||
|   'MA_MAP_COLLECT_SHAPE': MA_MAP_COLLECT_SHAPE,
 | ||
|   'MA_MAP_ITEMCLASS': MA_MAP_ITEMCLASS,
 | ||
|   'MA_MAP_POINT': MA_MAP_POINT,
 | ||
|   'MA_MAP_POINT_ITEM': MA_MAP_POINT_ITEM,
 | ||
|   'MA_MAP_ROAD': MA_MAP_ROAD,
 | ||
|   'MA_MAP_ROAD_LANE': MA_MAP_ROAD_LANE,
 | ||
|   'MAP_SUBITEM': MA_MAP_SUBITEM,
 | ||
|   'MA_SYSSET': MA_SYSSET,
 | ||
|   'ES_CARINFO': ES_CARINFO,
 | ||
|   'ES_EXAMPOINTDETAIL': ES_EXAMPOINTDETAIL,
 | ||
|   'MA_MARKRULESET': MA_MARKRULESET,
 | ||
|   'MA_CDSBINFO': MA_CDSBINFO,
 | ||
|   'MA_ITEMINFO': MA_ITEMINFO,
 | ||
|   'MA_T_CARPARMSET': MA_T_CARPARMSET,
 | ||
|   'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER,
 | ||
|   'USER': USER,
 | ||
|   'IpConfigTable': IpConfigTable,
 | ||
|   'DeviceInfoTable': DeviceInfoTable,
 | ||
|   'CommonConstants': CommonConstants
 | ||
| }
 | ||
| const centerToMap = {
 | ||
|   'ItemInfo': MA_ITEMINFO,
 | ||
|   'MarkRule': MA_MARKRULE,
 | ||
|   'SystemParm': MA_SYSTEMPARM,
 | ||
|   'mapCollectList': MA_MAP_COLLECT,
 | ||
|   'mapCollectshapeList': MA_MAP_COLLECT_SHAPE,
 | ||
|   'Map_Collect': MA_MAP_COLLECT,
 | ||
|   'Map_Collect_Shape': MA_MAP_COLLECT_SHAPE,
 | ||
|   'Map_ItemClass': MA_MAP_ITEMCLASS,
 | ||
|   'Map_Point': MA_MAP_POINT,
 | ||
|   'Map_Point_Item': MA_MAP_POINT_ITEM,
 | ||
|   'Map_Road': MA_MAP_ROAD,
 | ||
|   'Map_Road_Lane': MA_MAP_ROAD_LANE,
 | ||
|   'Map_SubItem': MA_MAP_SUBITEM,
 | ||
|   'Sysset': MA_SYSSET,
 | ||
|   'CarInfo': ES_CARINFO,
 | ||
|   // 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL,
 | ||
|   'MarkRuleSet': MA_MARKRULE,
 | ||
|   'Cdsbinfo': MA_CDSBINFO,
 | ||
|   'T_CarParmSet': MA_T_CARPARMSET,
 | ||
|   // 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER
 | ||
| }
 | ||
| 
 | ||
| function sqlInsertCommonFn(tableName, resultArr, context?, delFlag = true) {
 | ||
|   return new Promise((resolve, reject) => {
 | ||
|     const accountTable = new AccountTable(() => {
 | ||
|     }, map[tableName], context);
 | ||
|     accountTable.getRdbStore(() => {
 | ||
|       accountTable.query('0', async (result) => {
 | ||
|         console.log('sqlsqlinsertresult',JSON.stringify(result))
 | ||
|         // console.log('表长度',result.length,tableName)
 | ||
|         if (result.length == 0) {
 | ||
|           console.log('sqlsqlinsert00000')
 | ||
|           let INSERT_SQL = "INSERT INTO " + tableName
 | ||
|             + " (" + map[tableName].ACCOUNT_TABLE.columns.toString() + ") VALUES "
 | ||
| 
 | ||
|           resultArr.map((data, i) => {
 | ||
|             data.id = `${i}`
 | ||
|             let str = '('
 | ||
|             map[tableName].ACCOUNT_TABLE.columns.map((res, index) => {
 | ||
|               if (map[tableName].ACCOUNT_TABLE.columns.length - 1 == index) {
 | ||
|                 str += data[res] ? `"${data[res]}"` : 'NULL'
 | ||
|               } else {
 | ||
|                 str += (data[res] ? `"${data[res]}"` : 'NULL') + ','
 | ||
|               }
 | ||
|             })
 | ||
|             if (i == resultArr.length - 1) {
 | ||
|               str += ')'
 | ||
|             } else {
 | ||
|               str += '),'
 | ||
|             }
 | ||
|             INSERT_SQL += str
 | ||
|           })
 | ||
|           console.log('sqlsqlinsertINSERT_SQLINSERT_SQL', INSERT_SQL)
 | ||
|           accountTable.sqlOperate(INSERT_SQL, tableName, (val) => {
 | ||
|             console.log('sqlsqlinsert,', val, 'tableName', tableName)
 | ||
|             resolve(val)
 | ||
|           })
 | ||
|         }
 | ||
|         else {
 | ||
|           if (delFlag) {
 | ||
|             await delSyncTable(tableName, context)
 | ||
|             const result = await sqlInsertCommonFn(tableName, resultArr, context)
 | ||
|             resolve(result)
 | ||
|             return
 | ||
|           }
 | ||
|           const result = await sqlInsertCommonFn(tableName, resultArr, context)
 | ||
|           resolve(result)
 | ||
|         }
 | ||
|       }, true);
 | ||
|     }, context);
 | ||
|   })
 | ||
| }
 | ||
| 
 | ||
| //参数平台
 | ||
| export async function getDataBaseTable(params, reqParam) {
 | ||
|   return new Promise(async (resolve, reject) => {
 | ||
|     const date = new Date()
 | ||
|     if (!reqParam?.paraKdid) {
 | ||
|       prompt.showToast({
 | ||
|         message: 'paraKdid获取失败',
 | ||
|         duration: 3000
 | ||
|       });
 | ||
|       return
 | ||
|     }
 | ||
|     const str = { "head": { "time": dateFormat(date) },
 | ||
|       "body":
 | ||
|       { "tableName": params.tableName, // 表名
 | ||
|         "paraKdid": reqParam.paraKdid, //参数平台kdid
 | ||
|         "examinationRoomId": reqParam.examinationRoomId, //考试平台kdid
 | ||
|         "typeRsp": "0" // 赋默认值0,无需改变
 | ||
|       }
 | ||
|     }
 | ||
|     let res: any = await initCenterCache(str, reqParam.centerHost)
 | ||
|     if (res.body[params.tableName].length == 0) {
 | ||
|       resolve();
 | ||
|       return
 | ||
|     }
 | ||
|     if (params.tableName == 'MA_SYSSET') {
 | ||
|       res.body[params.tableName] = res.body[params.tableName].filter(res => {
 | ||
|         return res['v_no'] >= 300 && res['v_no'] <= 700
 | ||
|       })
 | ||
|     }
 | ||
|     sqlInsertCommonFn(param.tableName, res.body[params.tableName]).then((val) => {
 | ||
|       reslove(val)
 | ||
|     })
 | ||
|   })
 | ||
| }
 | ||
| 
 | ||
| //依据数组和表名更新sql表
 | ||
| export async function upDateTableByArray(tableName, arr) {
 | ||
|   return new Promise(async (reslove,reject)=>{
 | ||
|     const data =await sqlInsertCommonFn(tableName, arr)
 | ||
|     console.log('sqlsqlinsertsqlsqlinsertkkk',data)
 | ||
|     reslove(data)
 | ||
|   })
 | ||
| }
 | ||
| 
 | ||
| //更新双中心表
 | ||
| export async function upDateTable(params, reqParam) {
 | ||
|   return new Promise((resolve, reject) => {
 | ||
|     const date = new Date()
 | ||
|     let paraKdid = reqParam?.paraKdid || ''
 | ||
|     let examinationRoomId = reqParam?.examinationRoomId || ''
 | ||
|     if (!paraKdid || !examinationRoomId) {
 | ||
|       resolve(false)
 | ||
|       return
 | ||
|     }
 | ||
| 
 | ||
|     const str = { "head": { "time": dateFormat(date) },
 | ||
|       "body":
 | ||
|       { "tableName": params.tableName, // 表名
 | ||
|         "paraKdid": paraKdid, //参数平台kdid
 | ||
|         "examinationRoomId": examinationRoomId, //考试平台kdid
 | ||
|         "typeRsp": "0" // 赋默认值0,无需改变
 | ||
|       }
 | ||
|     }
 | ||
|     const url = globalThis.timeInfo.url
 | ||
| 
 | ||
|     initCenterCache(str, url).then(async (res) => {
 | ||
|       if (!res || res == undefined || res == '') {
 | ||
|         resolve(false)
 | ||
|         return
 | ||
|       }
 | ||
|       try {
 | ||
|         const result = await sqlInsertCommonFn(params.tableName, res.body[params.tableName], reqParam.context)
 | ||
|         resolve(result)
 | ||
|       } catch (error) {
 | ||
|         console.log(error)
 | ||
|       }
 | ||
|     })
 | ||
|   });
 | ||
| }
 | ||
| 
 | ||
| //考试平台
 | ||
| export async function getMySystemSetTable(params, reqParam) {
 | ||
|   return new Promise((resolve, reject) => {
 | ||
|     const date = new Date()
 | ||
|     if (!reqParam.paraKdid) {
 | ||
|       prompt.showToast({
 | ||
|         message: 'paraKdid获取失败',
 | ||
|         duration: 3000
 | ||
|       });
 | ||
|       return
 | ||
|     }
 | ||
|     const str = { "head": { "time": dateFormat(date) },
 | ||
|       "body":
 | ||
|       { "tableName": params.tableName, // 表名
 | ||
|         "paraKdid": reqParam?.kdid, //考试平台kdid
 | ||
|         "examinationRoomId": reqParam?.kdid, //考试平台kdid
 | ||
|         "typeRsp": "0" // 赋默认值0,无需改变
 | ||
|       }
 | ||
|     }
 | ||
|     initCenterCacheByKSPT(str, reqParam.url).then((res) => {
 | ||
|       if (res.body[params.tableName].length == 0) {
 | ||
|         resolve();
 | ||
|         return
 | ||
|       }
 | ||
|       if (params.tableName == 'MA_SYSSET') {
 | ||
|         res.body[params.tableName] = res.body[params.tableName].filter(res => {
 | ||
|           return res['v_no'] < 300 || res['v_no'] > 700
 | ||
|         })
 | ||
|       }
 | ||
|       sqlInsertCommonFn(params.tableName, res.body[params.tableName], reqParam.context, false).then((result) => {
 | ||
|         resolve(result)
 | ||
|       })
 | ||
|     })
 | ||
| 
 | ||
| 
 | ||
|   })
 | ||
| 
 | ||
| }
 | ||
| 
 | ||
| //依据表名同步获取数据
 | ||
| export async function getSyncData(tableName, context?) {
 | ||
|   return new Promise((resolve, reject) => {
 | ||
|     const accountTable = new AccountTable(() => {
 | ||
|     }, map[tableName], context);
 | ||
|     accountTable.getRdbStore(() => {
 | ||
|       accountTable.query('0', async (result) => {
 | ||
|         resolve(result)
 | ||
|       }, true);
 | ||
|     });
 | ||
|   })
 | ||
| 
 | ||
| }
 | ||
| 
 | ||
| export async function delSyncTable(tableName, context?) {
 | ||
|   return new Promise((resolve, reject) => {
 | ||
|     const accountTable = new AccountTable(() => {
 | ||
|     }, map[tableName], context);
 | ||
|     accountTable.deleteTableData((ret) => {
 | ||
|       console.log('删除成功')
 | ||
|       resolve(true)
 | ||
|     }, tableName, context)
 | ||
| 
 | ||
|   })
 | ||
| }
 | ||
| 
 | ||
| //获取车模、场地模型
 | ||
| export async function getEsCarModel(context) {
 | ||
|   const date = new Date()
 | ||
|   if (!globalThis.timeInfo?.paraKdid) {
 | ||
|     prompt.showToast({
 | ||
|       message: 'paraKdid获取失败',
 | ||
|       duration: 3000
 | ||
|     });
 | ||
|     return
 | ||
|   }
 | ||
|   const carStr = { "head": { "time": dateFormat(date) },
 | ||
|     "body":
 | ||
|     {
 | ||
|       "rtkType": "1", //1:车模 2:场地模型
 | ||
|       "rspType": "0", //返回类型
 | ||
|       "paraKdid": globalThis.timeInfo.paraKdid, //参数平台kdid
 | ||
|       "examinationRoomId": globalThis.timeInfo.kdid, //考试平台kdid
 | ||
|       // "carMac":"MAC-HCPAD-210",
 | ||
|       "carMac": globalThis.deviceNo
 | ||
|     }
 | ||
|   }
 | ||
|   const venueStr = { "head": { "time": dateFormat(date) },
 | ||
|     "body":
 | ||
|     {
 | ||
|       "rtkType": "2", //1:车模 2:场地模型
 | ||
|       "rspType": "0", //返回类型
 | ||
|       "paraKdid": globalThis.timeInfo.paraKdid, //参数平台kdid
 | ||
|       "examinationRoomId": globalThis.timeInfo.kdid, //考试平台kdid
 | ||
|       // "carMac":"MAC-HCPAD-210",
 | ||
|       "carMac": globalThis.deviceNo
 | ||
|     }
 | ||
|   }
 | ||
| 
 | ||
| 
 | ||
|   let carRes: any = await initEsModel(carStr);
 | ||
|   let venueRes: any = await initEsModel(venueStr);
 | ||
| 
 | ||
|   const carModel = carRes.body.ES_MODEL[0][1];
 | ||
|   const venueModel = venueRes.body.ES_MODEL[0][2];
 | ||
| 
 | ||
|   let tmpBase64Array = carModel.split("\r\n")
 | ||
|   let newBase64Str: string = '';
 | ||
|   for (let i = 0; i < tmpBase64Array.length; ++i) {
 | ||
|     newBase64Str += tmpBase64Array[i];
 | ||
|   }
 | ||
|   const base64 = new util.Base64();
 | ||
|   let result = base64.decodeSync(newBase64Str);
 | ||
|   const fileModel = new FileModel(context);
 | ||
|   await fileModel.initFolder()
 | ||
|   await fileModel.storingFiles(result.buffer)
 | ||
| }
 | ||
| 
 | ||
| export async function upDataZhongxinginitialization(param) {
 | ||
|   return new Promise((resolve, reject) => {
 | ||
|     if (!param.carId) {
 | ||
|       resolve(false)
 | ||
|       return
 | ||
|     }
 | ||
|     const str = {
 | ||
|       "carId": param.carId, // 表名
 | ||
|       "examinationRoomId": param.examinationRoomId, //考试平台kdid
 | ||
|       videoVersion: '1.0',
 | ||
|       judgeVersion: param.judgeVersion,
 | ||
|       shellVersion: param.shellVersion,
 | ||
|       host: param.host
 | ||
|     }
 | ||
|     console.log('daihai2', JSON.stringify(str))
 | ||
| 
 | ||
|     initialization(str).then(async (res) => {
 | ||
|       console.log('daihai3', JSON.stringify(res))
 | ||
|       if (!res) {
 | ||
|         resolve(false)
 | ||
|         return
 | ||
|       }
 | ||
|       let flag
 | ||
|       console.log('resposestart')
 | ||
| 
 | ||
|       for (let key in res.initializationRsp.body) {
 | ||
|         if (!centerToMap[key]) {
 | ||
|           continue
 | ||
|         }
 | ||
|         const data = await setSyncCenterSqlData(key, res, param)
 | ||
|         if (!data) {
 | ||
|           resolve(false)
 | ||
|         }
 | ||
|       }
 | ||
|       resolve(true)
 | ||
| 
 | ||
| 
 | ||
|       console.log('resposestart')
 | ||
| 
 | ||
|     }).catch((Error) => {
 | ||
|       resolve(false)
 | ||
|     })
 | ||
|   })
 | ||
| }
 | ||
| 
 | ||
| function setSyncCenterSqlData(key, res, param) {
 | ||
|   return new Promise((resolve, reject) => {
 | ||
|     const mapName = {
 | ||
|       'ItemInfo': 'MA_ITEMINFO',
 | ||
|       'MarkRule': 'MA_MARKRULE',
 | ||
|       'SystemParm': 'MA_SYSTEMPARM',
 | ||
|       'Map_Collect': 'MA_MAP_COLLECT',
 | ||
|       'Map_Collect_Shape': 'MA_MAP_COLLECT_SHAPE',
 | ||
|       'Map_ItemClass': 'MA_MAP_ITEMCLASS',
 | ||
|       'Map_Point': 'MA_MAP_POINT',
 | ||
|       'Map_Point_Item': 'MA_MAP_POINT_ITEM',
 | ||
|       'Map_Road': 'MA_MAP_ROAD',
 | ||
|       'Map_Road_Lane': 'MA_MAP_ROAD_LANE',
 | ||
|       'Map_SubItem': 'MAP_SUBITEM',
 | ||
|       'Sysset': 'MA_SYSSET',
 | ||
|       'CarInfo': 'ES_CARINFO',
 | ||
|       // 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL,
 | ||
|       'MarkRuleSet': 'MA_MARKRULESET',
 | ||
|       'Cdsbinfo': 'MA_CDSBINFO',
 | ||
|       'T_CarParmSet': 'MA_T_CARPARMSET',
 | ||
|       // 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER
 | ||
|     }
 | ||
|     // const accountTable = new AccountTable(() => {
 | ||
|     // }, centerToMap[key],param.context);
 | ||
|     let arrList
 | ||
|     if (res.initializationRsp.body[key].record instanceof Array) {
 | ||
|       arrList = res.initializationRsp.body[key].record
 | ||
|     } else {
 | ||
|       arrList = [res.initializationRsp.body[key].record]
 | ||
|     }
 | ||
|     console.log('mapName[key]', mapName[key], key)
 | ||
|     sqlInsertCommonFn(mapName[key], arrList, param.context).then((result) => {
 | ||
|       console.log(key, '表建立成功')
 | ||
|       if (result) {
 | ||
|         resolve(true)
 | ||
|       } else {
 | ||
|         resolve(false)
 | ||
|       }
 | ||
|     }).catch((msg) => {
 | ||
|       reject(false)
 | ||
|       console.log(key, '表建立失败')
 | ||
|     })
 | ||
|   })
 | ||
| 
 | ||
| }
 |