Compare commits
No commits in common. "9a618adeffaa02cd8e1c1c0aec3de8a50f612704" and "8c62d6f36588fd1cb29fc2678612fece5bb14946" have entirely different histories.
9a618adeff
...
8c62d6f365
@ -18,8 +18,7 @@ export async function download() {
|
||||
|
||||
interface WR{
|
||||
message?:string
|
||||
code?:number
|
||||
keystr?:string
|
||||
code:number
|
||||
}
|
||||
// 通用监管接口
|
||||
export async function writeObjectOut(params,filePath?:string): Promise<WR> {
|
||||
@ -57,7 +56,7 @@ export async function writeObjectOut(params,filePath?:string): Promise<WR> {
|
||||
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:''},
|
||||
xtlb,jkxlh,jkid,drvexam
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'accountTable',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS accountTable(sfzmhm TEXT,lsh TEXT, xm TEXT)',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS accountTable(sfzmhm INTEGER PRIMARY KEY AUTOINCREMENT,lsh TEXT, xm TEXT)',
|
||||
columns: [ 'sfzmhm', 'xm','lsh']
|
||||
};
|
||||
// sqlCreate: 'CREATE TABLE IF NOT EXISTS accountTable(id INTEGER PRIMARY KEY AUTOINCREMENT,kaoShengXinXi TEXT, lsh TEXT, ' +
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'DeviceInfoTable',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS DeviceInfoTable(id TEXT,deviceId TEXT)',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS DeviceInfoTable(id INTEGER PRIMARY KEY AUTOINCREMENT,deviceId TEXT)',
|
||||
columns: ['id','deviceId']
|
||||
};
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'ES_CARINFO',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS ES_CARINFO(id TEXT,car_mac TEXT,status TEXT, voiceip TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS ES_CARINFO(id INTEGER PRIMARY KEY AUTOINCREMENT,car_mac TEXT,status TEXT, voiceip TEXT, ' +
|
||||
'carno TEXT, carcode TEXT,cartype TEXT,device_status TEXT,carip TEXT,pulse1 TEXT,pulse2 TEXT,isface TEXT,bk1 TEXT,ismapcollect TEXT,bk2 TEXT,exampointcode TEXT,software_version TEXT,typename TEXT,vin TEXT,voicetype TEXT,em TEXT,carclass TEXT,carid TEXT,flag TEXT,kscx TEXT,x_mch TEXT)',
|
||||
columns: ['id','car_mac', 'status', 'voiceip', 'carno', 'carcode', 'cartype', 'device_status', 'carip', 'pulse1', 'pulse2', 'isface', 'bk1', 'ismapcollect', 'bk2', 'exampointcode', 'software_version', 'typename', 'vin', 'voicetype','em','carclass','carid','flag','kscx','x_mch']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'ES_CAR_VIDEO_PARAMETER',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS ES_CAR_VIDEO_PARAMETER(id TEXT,video_mode TEXT,video_channel TEXT, first_channel TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS ES_CAR_VIDEO_PARAMETER(id INTEGER PRIMARY KEY AUTOINCREMENT,video_mode TEXT,video_channel TEXT, first_channel TEXT, ' +
|
||||
'second_port TEXT, first_port TEXT,third_ip TEXT,photo_overlay_text_size TEXT,second_ip TEXT,photo_overlay_text_content3 TEXT,video_range TEXT,fourth_port TEXT,line_type TEXT,third_port TEXT,fourth_channel TEXT,process_face_comparion_mode TEXT,second_password TEXT,first_username TEXT,third_username TEXT,photo_overlay_text_content2 TEXT,photo_overlay_text_content1 TEXT,process_face_comparion_enable TEXT,third_password TEXT,fourth_username TEXT,fourth_ip TEXT,first_password TEXT,second_username TEXT,video_synthesis_system_ip TEXT,photo_overlay_text_position TEXT,video_synthesis_server_port TEXT,car_mac TEXT,photo_overlay_text_enable TEXT,video_synthesis_system_port TEXT,second_channel TEXT,video_occlusion_range TEXT,fourth_password TEXT,photo_channel TEXT,video_synthesis_server_ip TEXT,photo_overlay_text_split TEXT,equipment_type TEXT,video_occlusion TEXT,third_channel TEXT,first_ip TEXT)',
|
||||
columns: ['id','video_mode', 'video_channel','first_channel', 'second_port', 'first_port', 'third_ip', 'photo_overlay_text_size', 'second_ip', 'photo_overlay_text_content3', 'video_range', 'fourth_port', 'line_type', 'third_port', 'fourth_channel', 'process_face_comparion_mode', 'second_password', 'first_username', 'third_username','photo_overlay_text_content2','photo_overlay_text_content1','process_face_comparion_enable','third_password','fourth_username','fourth_ip','first_password','second_username','video_synthesis_system_ip','photo_overlay_text_position','video_synthesis_server_port','car_mac','photo_overlay_text_enable','video_synthesis_system_port','second_channel','video_occlusion_range','fourth_password','photo_channel','video_synthesis_server_ip','photo_overlay_text_split','equipment_type','video_occlusion','third_channel','first_ip']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'ES_EXAMPOINTDETAIL',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS ES_EXAMPOINTDETAIL(id TEXT,code TEXT,type TEXT, name TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS ES_EXAMPOINTDETAIL(id INTEGER PRIMARY KEY AUTOINCREMENT,code TEXT,type TEXT, name TEXT, ' +
|
||||
'status TEXT, udpip TEXT,udpcommandport TEXT,udpvoiceport TEXT,udpdataport TEXT,fullname TEXT,exam_status TEXT,is_motor TEXT)',
|
||||
columns: ['id','code', 'type', 'name','status','udpip', 'udpcommandport', 'udpvoiceport','udpdataport','fullname','exam_status','is_motor']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'IpConfigTable',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS IpConfigTable(id TEXT,udplocalIp TEXT,udplocalIpPort TEXT, udpOppositeIp TEXT, udpOppositeIpPort TEXT,tcplocalIp TEXT,tcplocalIpPort TEXT,tcpOppositeIp TEXT,tcpOppositePort TEXT,gateway TEXT,netMask TEXT,dnsServers TEXT,centerPort TEXT,centerIp TEXT)',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS IpConfigTable(id INTEGER PRIMARY KEY AUTOINCREMENT,udplocalIp TEXT,udplocalIpPort TEXT, udpOppositeIp TEXT, udpOppositeIpPort TEXT,tcplocalIp TEXT,tcplocalIpPort TEXT,tcpOppositeIp TEXT,tcpOppositePort TEXT,gateway TEXT,netMask TEXT,dnsServers TEXT,centerPort TEXT,centerIp TEXT)',
|
||||
columns: ['id','udplocalIp', 'udplocalIpPort', 'udpOppositeIp','udpOppositeIpPort','tcplocalIp','tcplocalIpPort','tcpOppositeIp','tcpOppositePort','gateway','netMask','dnsServers','centerPort','centerIp']
|
||||
};
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_CDSBINFO',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_CDSBINFO(id TEXT,sbbm TEXT,itemsno TEXT, sbbh TEXT, kdid TEXT, bk3 TEXT)',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_CDSBINFO(id INTEGER PRIMARY KEY AUTOINCREMENT,sbbm TEXT,itemsno TEXT, sbbh TEXT, kdid TEXT, bk3 TEXT)',
|
||||
columns: ['id','sbbm', 'itemsno', 'sbbh', 'kdid', 'bk3']
|
||||
};
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_ITEMINFO',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_ITEMINFO(id TEXT,cininfo TEXT,setup9 TEXT, nextinfo TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_ITEMINFO(id INTEGER PRIMARY KEY AUTOINCREMENT,cininfo TEXT,setup9 TEXT, nextinfo TEXT, ' +
|
||||
'setup7 TEXT, setup8 TEXT,setup5 TEXT,carlist TEXT,setup6 TEXT,setup3 TEXT,setup4 TEXT,setup1 TEXT,setup2 TEXT,itemsno TEXT,end_cardsno TEXT,freqinfo TEXT)',
|
||||
columns: ['id','cininfo', 'setup9', 'nextinfo', 'setup7', 'setup8', 'setup5', 'carlist', 'setup6', 'setup3', 'setup4', 'setup1', 'setup2', 'itemsno', 'end_cardsno', 'freqinfo']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MAP_COLLECT',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_COLLECT(id TEXT,l_no TEXT,s_no TEXT, s_no1 TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_COLLECT(id INTEGER PRIMARY KEY AUTOINCREMENT,l_no TEXT,s_no TEXT, s_no1 TEXT, ' +
|
||||
'road_code TEXT, gps_e TEXT,gps_n TEXT,posx TEXT,posy TEXT,l_type TEXT,line_type TEXT,next_s_no TEXT,next_s_no1 TEXT,lane_attr TEXT,gps_h TEXT)',
|
||||
columns: ['id','l_no', 's_no', 's_no1', 'road_code', 'gps_e', 'gps_n','posx','posy','l_type','line_type','next_s_no','next_s_no1','lane_attr','gps_h']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MAP_COLLECT_SHAPE',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_COLLECT_SHAPE(id TEXT,serial_no TEXT,l_no1 TEXT, l_no2 TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_COLLECT_SHAPE(id INTEGER PRIMARY KEY AUTOINCREMENT,serial_no TEXT,l_no1 TEXT, l_no2 TEXT, ' +
|
||||
'l_no3 TEXT, l_no4 TEXT,attr_str TEXT,subtype TEXT)',
|
||||
columns: ['id','serial_no', 'l_no1', 'l_no2', 'l_no3', 'l_no4', 'attr_str','subtype']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MAP_ITEMCLASS',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_ITEMCLASS(id TEXT,itemno TEXT,itemno1 TEXT, itemname TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_ITEMCLASS(id INTEGER PRIMARY KEY AUTOINCREMENT,itemno TEXT,itemno1 TEXT, itemname TEXT, ' +
|
||||
'itemname1 TEXT, item_type TEXT,enabled TEXT)',
|
||||
columns: ['id','itemno', 'itemno1', 'itemname', 'itemname', 'itemname1', 'item_type','enabled']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MAP_POINT',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_POINT(id TEXT,point_no TEXT,point_no_f TEXT, gps_e TEXT,' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_POINT(id INTEGER PRIMARY KEY AUTOINCREMENT,point_no TEXT,point_no_f TEXT, gps_e TEXT,' +
|
||||
'gps_e_location TEXT,gps_n TEXT,gps_n_location TEXT,f_gps_e TEXT,f_gps_n TEXT,point_type TEXT,road_code TEXT,visible TEXT,passed TEXT)',
|
||||
columns: ['id','point_no', 'point_no_f', 'gps_e', 'gps_e_location', 'gps_n', 'gps_n_location','f_gps_e','f_gps_n','point_type','road_code','visible','passed']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MAP_POINT_ITEM',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_POINT_ITEM(id TEXT,point_no TEXT,itemno TEXT,itemno1 TEXT,' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_POINT_ITEM(id INTEGER PRIMARY KEY AUTOINCREMENT,point_no TEXT,itemno TEXT,itemno1 TEXT,' +
|
||||
'subname TEXT)',
|
||||
columns: ['id','point_no', 'itemno', 'itemno1', 'subname']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MAP_ROAD',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_ROAD(id TEXT,road_code TEXT,road_code_no TEXT,lane_no TEXT,' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_ROAD(id INTEGER PRIMARY KEY AUTOINCREMENT,road_code TEXT,road_code_no TEXT,lane_no TEXT,' +
|
||||
'point1y TEXT,point1x TEXT,point2y TEXT,point2x TEXT,pointmy TEXT,pointmx TEXT,point3y TEXT,point3x TEXT,point4y TEXT,point4x TEXT,pointny TEXT,pointnx TEXT)',
|
||||
columns: ['id','road_code', 'road_code_no', 'lane_no', 'point1y', 'point1x', 'point2y','point2x','pointmy','pointmx','point3y','point3x','point4y','point4x','pointny','pointnx']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MAP_ROAD_LANE',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_ROAD_LANE(id TEXT,road_code TEXT,road_code_no TEXT,lane_no TEXT,' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MAP_ROAD_LANE(id INTEGER PRIMARY KEY AUTOINCREMENT,road_code TEXT,road_code_no TEXT,lane_no TEXT,' +
|
||||
'line_type TEXT,lane_attr TEXT,line_width TEXT,rightline TEXT)',
|
||||
columns: ['id','road_code', 'road_code_no', 'lane_no','line_type','lane_attr', 'line_width', 'rightline']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MAP_SUBITEM',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MAP_SUBITEM(id TEXT,itemno TEXT,posx1 TEXT, posx2 TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MAP_SUBITEM(id INTEGER PRIMARY KEY AUTOINCREMENT,itemno TEXT,posx1 TEXT, posx2 TEXT, ' +
|
||||
'posx3 TEXT, posx4 TEXT,posy1 TEXT,posy2 TEXT,posy3 TEXT,posy4 TEXT,sno TEXT,subname TEXT)',
|
||||
columns: ['id','itemno', 'posx1', 'posx2', 'posx3', 'posx4', 'posy1', 'posy2', 'posy3', 'posy4', 'sno', 'subname']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MARKRULE',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MARKRULE(id TEXT,itemno TEXT,markserial TEXT, markdepend TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MARKRULE(id INTEGER PRIMARY KEY AUTOINCREMENT,itemno TEXT,markserial TEXT, markdepend TEXT, ' +
|
||||
'markcatalog TEXT, markstandard TEXT,markreal TEXT,markshow TEXT,car_sid TEXT,gyro_sid TEXT,gps_sid TEXT,magnet_sid TEXT,simu_sid TEXT,close_sid TEXT,notes TEXT,onlyoneid TEXT,nocancelid TEXT,kfxh TEXT)',
|
||||
columns: ['id','itemno', 'markserial', 'markdepend', 'markcatalog', 'markstandard', 'markreal', 'markshow', 'car_sid', 'gyro_sid', 'gps_sid', 'magnet_sid', 'simu_sid', 'close_sid', 'notes', 'onlyoneid', 'nocancelid', 'kfxh']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_MARKRULESET',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MARKRULESET(id TEXT,itemno TEXT,markserial TEXT, markdepend TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_MARKRULESET(id INTEGER PRIMARY KEY AUTOINCREMENT,itemno TEXT,markserial TEXT, markdepend TEXT, ' +
|
||||
'markcatalog TEXT, markstandard TEXT,markreal TEXT,markshow TEXT,txt1 TEXT,kfxh TEXT)',
|
||||
columns: ['id','itemno', 'markserial', 'markdepend','markcatalog','markstandard', 'markreal', 'markshow', 'txt1', 'kfxh']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_SYSSET',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_SYSSET(id TEXT,v_no TEXT,v_name TEXT, v_value TEXT)',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_SYSSET(id INTEGER PRIMARY KEY AUTOINCREMENT,v_no TEXT,v_name TEXT, v_value TEXT)',
|
||||
columns: ['id','v_no', 'v_name', 'v_value']
|
||||
};
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_SYSTEMPARM',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_SYSTEMPARM(id TEXT,no1 TEXT,no2 TEXT, no3 TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_SYSTEMPARM(id INTEGER PRIMARY KEY AUTOINCREMENT,no1 TEXT,no2 TEXT, no3 TEXT, ' +
|
||||
'txt1 TEXT, txt2 TEXT,txt3 TEXT)',
|
||||
columns: ['id','no1', 'no2', 'no3', 'txt1', 'txt2', 'txt3']
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ CommonConstants {
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'MA_T_CARPARMSET',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_T_CARPARMSET(id TEXT,carid TEXT,itemname TEXT, parmdesc TEXT, ' +
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS MA_T_CARPARMSET(id INTEGER PRIMARY KEY AUTOINCREMENT,carid TEXT,itemname TEXT, parmdesc TEXT, ' +
|
||||
'parmname TEXT, pdefault TEXT,pvalue TEXT)',
|
||||
columns: ['id','carid', 'itemname', 'parmdesc', 'parmname', 'pdefault', 'pvalue']
|
||||
};
|
||||
|
||||
@ -18,15 +18,15 @@ CommonConstants {
|
||||
/**
|
||||
* Rdb database config.
|
||||
*/
|
||||
static readonly STORE_CONFIG = { name: 'USER.db' };
|
||||
static readonly STORE_CONFIG = { name: 'user.db' };
|
||||
|
||||
/**
|
||||
* Account table config.
|
||||
*/
|
||||
static readonly ACCOUNT_TABLE = {
|
||||
tableName: 'USER',
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS USER(id INTEGER PRIMARY KEY AUTOINCREMENT,sfzmhm TEXT,xm CHAR(20), lsh TEXT, kszp TEXT,ksdd TEXT,kssycs TEXT,kslx TEXT,kscx TEXT,ksxl TEXT,ksy1 TEXT)',
|
||||
columns: ['id','sfzmhm','xm','lsh','kszp','ksdd','kssycs','kslx','kscx','ksxl','ksy1']
|
||||
sqlCreate: 'CREATE TABLE IF NOT EXISTS USER(id INTEGER PRIMARY KEY AUTOINCREMENT,sfzmhm TEXT,xm CHAR(20), lsh TEXT, kszp TEXT,ksdd TEXT,kssycs TEXT,kslx TEXT,kscx TEXT,ksxl TEXT)',
|
||||
columns: ['id','sfzmhm','xm','lsh','kszp','ksdd','kssycs','kslx','kscx','ksxl']
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -42,8 +42,6 @@ import common from '@ohos.app.ability.common';
|
||||
import contextConstant from '@ohos.app.ability.contextConstant';
|
||||
|
||||
import featureAbility from '@ohos.ability.featureAbility'
|
||||
import USERLIST from '../constants/USERLIST';
|
||||
|
||||
// import { Logger } from '../utils/Logger';
|
||||
export default class Rdb {
|
||||
private rdbStore: any = null;
|
||||
@ -95,7 +93,6 @@ export default class Rdb {
|
||||
'MA_T_CARPARMSET': MA_T_CARPARMSET,
|
||||
'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER,
|
||||
'USER':USER,
|
||||
'USERLIST':USERLIST,
|
||||
'IpConfigTable':IpConfigTable,
|
||||
'DeviceInfoTable':DeviceInfoTable,
|
||||
'CommonConstants':CommonConstants
|
||||
@ -153,7 +150,6 @@ export default class Rdb {
|
||||
'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER,
|
||||
'CommonConstants':CommonConstants,
|
||||
'USER':USER,
|
||||
'USERLIST':USERLIST,
|
||||
'IpConfigTable':IpConfigTable,
|
||||
'DeviceInfoTable':DeviceInfoTable
|
||||
}
|
||||
|
||||
@ -29,6 +29,7 @@ export default class AccountTable {
|
||||
// this.CommonConstants=Constants
|
||||
this.commonConstants=Constants
|
||||
this.accountTable.getRdbStore(callback,context);
|
||||
console.log('kkkkkkkk0')
|
||||
}
|
||||
|
||||
getRdbStore(callback: Function = () => {},context?) {
|
||||
|
||||
@ -5,8 +5,7 @@ import { examinerLogin,initCarInfoCache} from '../../api/index'
|
||||
//考官登录信息
|
||||
export async function examinerLoginService(params) {
|
||||
let res:any = await examinerLogin(params)
|
||||
|
||||
globalThis.examinerInfo=res?.examinerLoginRsp?.body || {}
|
||||
globalThis.examinerInfo=res.examinerLoginRsp.body
|
||||
console.log('jiangsong1: examinerLoginService' + JSON.stringify(res))
|
||||
//{"examinerLoginRsp":{"head":{"resultCode":"0","resultMessage":"%E8%80%83%E8%AF%95%E5%91%98%E7%99%BB%E5%BD%95-%E6%88%90%E5%8A%9F","time":"2023-06-01 10:06:39"},"body":{"code":"006","name":"%E8%80%836","statusRgpp":"1"}}}
|
||||
|
||||
|
||||
@ -24,7 +24,6 @@ import IpConfigTable from '../constants/IpConfigTable';
|
||||
import CommonConstants from '../constants/CommonConstants';
|
||||
import DeviceInfoTable from '../constants/DeviceInfoTable';
|
||||
import USER from '../constants/USER';
|
||||
import USERLIST from '../constants/USERLIST';
|
||||
import util from '@ohos.util';
|
||||
import FileModel from '../../pages/judgeSDK/utils/fileModel';
|
||||
import FileUtil from '../../common/utils/File';
|
||||
@ -53,7 +52,6 @@ const map = {
|
||||
'MA_T_CARPARMSET': MA_T_CARPARMSET,
|
||||
'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER,
|
||||
'USER': USER,
|
||||
'USERLIST': USERLIST,
|
||||
'IpConfigTable': IpConfigTable,
|
||||
'DeviceInfoTable': DeviceInfoTable,
|
||||
'CommonConstants': CommonConstants
|
||||
@ -91,11 +89,6 @@ function sqlInsertCommonFn(tableName, resultArr, context?, delFlag = true) {
|
||||
|
||||
// console.log('表长度',result.length,tableName)
|
||||
if (result.length == 0) {
|
||||
console.log('sqlsqlinsert',resultArr.length)
|
||||
if(resultArr.length==0){
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
let INSERT_SQL = "INSERT INTO " + tableName
|
||||
+ " (" + map[tableName].ACCOUNT_TABLE.columns.toString() + ") VALUES "
|
||||
|
||||
@ -104,9 +97,9 @@ function sqlInsertCommonFn(tableName, resultArr, context?, delFlag = true) {
|
||||
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'
|
||||
str += data[res] ? `"${data[res]}"` : 'NULL'
|
||||
} else {
|
||||
str += (data[res] ? `'${data[res]}'` : 'NULL') + ','
|
||||
str += (data[res] ? `"${data[res]}"` : 'NULL') + ','
|
||||
}
|
||||
})
|
||||
if (i == resultArr.length - 1) {
|
||||
@ -341,23 +334,15 @@ export async function upDataZhongxinginitialization(param) {
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
let flag=true
|
||||
if (param.singlePlay) {
|
||||
console.log('teststet0')
|
||||
const fileUtil = new FileUtil(param.context)
|
||||
const tableList = ['MA_SYSSET', 'MA_SYSTEMPARM', 'MA_MARKRULE', 'MA_MARKRULESET','ES_CARINFO','MA_MAP_ROAD','MA_MAP_ROAD_LANE','MAP_SUBITEM','MA_T_CARPARMSET','MA_MAP_ITEMCLASS','MA_MAP_POINT','MA_MAP_POINT_ITEM'];
|
||||
for(let i=0;i<=tableList.length-1;i++){
|
||||
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + `/config/tableList/${tableList[i]}.txt`);
|
||||
const result=await sqlInsertCommonFn(tableList[i], JSON.parse(data) || [], param.context)
|
||||
flag=flag?result:false
|
||||
await sqlInsertCommonFn(tableList[i], JSON.parse(data) || [], param.context)
|
||||
}
|
||||
if(flag){
|
||||
prompt.showToast({
|
||||
message: '本地文件初始化数据库失败',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
resolve(flag)
|
||||
resolve(true)
|
||||
return
|
||||
}
|
||||
const str = {
|
||||
|
||||
@ -12,6 +12,7 @@ export async function getDeviceInfo(context) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const fileUtil = new FileUtil(context)
|
||||
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/deviceNo.txt');
|
||||
console.log('globalThis.deviceNoglobalThis.deviceNo',data)
|
||||
if (data === '' || data === undefined) {
|
||||
promptAction.showToast({
|
||||
message: `请先进行设备注册`,
|
||||
|
||||
@ -39,7 +39,6 @@ export default class UdpClientByCenter {
|
||||
private lsh: string = null
|
||||
private context
|
||||
private stashFn: StashFunction
|
||||
private interval
|
||||
private headLenth: number = 9
|
||||
//消息头长度
|
||||
private isWorking: Boolean = false
|
||||
@ -201,7 +200,7 @@ export default class UdpClientByCenter {
|
||||
onError_Callback(callback?) {
|
||||
this.udp.on('error', async err => {
|
||||
this.isWorking = false;
|
||||
console.log('getUDPUdpClientByCenter onError err:' + JSON.stringify(err),this.oppositeIpPort);
|
||||
console.log('getUDPUdpClientByCenter onError err:' + JSON.stringify(err));
|
||||
callback && callback()
|
||||
});
|
||||
}
|
||||
@ -246,10 +245,6 @@ export default class UdpClientByCenter {
|
||||
callback({
|
||||
id, length, body: list, sendId: this.sendId
|
||||
})
|
||||
this.interval=setInterval(()=>{
|
||||
|
||||
},3000)
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -39,12 +39,8 @@ export const getMessageHeartbeat = async (msg) => {
|
||||
const { examSubject,plateNo } = carInfo;
|
||||
const ksyh='0000000000000'
|
||||
const {fourInOneScreen:{gpsDigit}} = judgeConfig
|
||||
const asclshArr = stringToASC(fillZero(
|
||||
globalThis.singlePlay
|
||||
?'1111111111111'
|
||||
: globalThis.lsh,
|
||||
13));
|
||||
const ascksyhArr = stringToASC(fillZero('1111111111111', 13))
|
||||
const asclshArr = stringToASC(fillZero('0000000000000', 13));
|
||||
const ascksyhArr = stringToASC(fillZero('0000000000000', 13))
|
||||
const ascsbxhArr = stringToASC('00000000')
|
||||
// const ascsbxhArr = stringToASC('153216400880')
|
||||
const serialIndex = globalThis.serialIndex
|
||||
@ -74,7 +70,7 @@ export const getMessageHeartbeat = async (msg) => {
|
||||
string2Bytes(serialIndex, 2 * 8),
|
||||
translateSignals,
|
||||
//@ts-ignore
|
||||
string2Bytes(Math.floor((Math.floor(gps.sd))*1.852*100) , 2 * 8), string2Bytes(fdjzs / 100, 8), string2Bytes(translateJd, 4 * 8), string2Bytes(translateWd, 4 * 8), string2Bytes(1, 8),
|
||||
string2Bytes(Math.floor(gps.sd*1.852) , 2 * 8), string2Bytes(fdjzs / 100, 8), string2Bytes(translateJd, 4 * 8), string2Bytes(translateWd, 4 * 8), string2Bytes(1, 8),
|
||||
//GPS东向距离
|
||||
string2Bytes(0, 4 * 8),
|
||||
//GPS北向距离
|
||||
@ -146,20 +142,20 @@ const getTranslateProject = () => {
|
||||
for (let i = 0; i <= 4; i++) {
|
||||
const temp = tempItems.slice(i * 4, (i + 1) * 4);
|
||||
let tempArr = temp.map(item => item.status)
|
||||
if (i === 4) {
|
||||
if (i === 4 && examSubject) {
|
||||
tempArr = examSubject == 2
|
||||
//bit36-bit39保留
|
||||
? tempArr.concat(['00', '00'])
|
||||
//bit30-bit39保留
|
||||
: tempArr.concat(['00', '00','00'])
|
||||
: tempArr.concat(['00', '00','00','00'])
|
||||
}
|
||||
if (i === 3 && examSubject == 3) {
|
||||
tempArr = tempArr.concat(['00'])
|
||||
}
|
||||
// if (i === 3 && examSubject == 3) {
|
||||
// tempArr = tempArr.concat(['00'])
|
||||
// }
|
||||
|
||||
arr.push(tempArr.join(''));
|
||||
}
|
||||
return arr
|
||||
return arr.map(numStr => parseInt(numStr, 2));
|
||||
}
|
||||
|
||||
// 中心实时项目状态转换
|
||||
|
||||
@ -75,10 +75,7 @@ export default async function request(req: any) {
|
||||
if(res.head.resultCode === '0'){
|
||||
return res
|
||||
}else{
|
||||
globalThis.type='1'
|
||||
const resultMessage = res?.body?.resultMessage || res?.head?.resultMessage
|
||||
AppStorage.SetOrCreate('errorMsg', 1);
|
||||
globalThis.title=decodeURIComponent(resultMessage)
|
||||
prompt.showToast({
|
||||
message: decodeURIComponent(resultMessage),
|
||||
duration: 3000
|
||||
@ -93,14 +90,10 @@ export default async function request(req: any) {
|
||||
if(resObj.resultCode === '0') {
|
||||
return res
|
||||
}else {
|
||||
globalThis.type='1'
|
||||
AppStorage.SetOrCreate('errorMsg', 1);
|
||||
globalThis.title=decodeURIComponent(resObj.resultMessage)
|
||||
prompt.showToast({
|
||||
message: decodeURIComponent(resObj.resultMessage),
|
||||
duration: 3000
|
||||
});
|
||||
return res
|
||||
}
|
||||
} catch (e) {
|
||||
console.info('surenjun',JSON.stringify(e))
|
||||
@ -108,6 +101,7 @@ export default async function request(req: any) {
|
||||
return false
|
||||
}
|
||||
const code = e?.code;
|
||||
|
||||
prompt.showToast({
|
||||
message: e?.message,
|
||||
duration: 5000
|
||||
@ -158,7 +152,7 @@ function handleCenterCode(msgXml,isNewCenter){
|
||||
const msg = JSON.parse(msgXml);
|
||||
const result = msg?.data[0]?.result;
|
||||
if(result){
|
||||
const {code,message,keystr} = result
|
||||
const {code,message} = result
|
||||
if(code != '1'){
|
||||
const rMessage = decodeURIComponent(message as string)
|
||||
prompt.showToast({
|
||||
@ -167,7 +161,7 @@ function handleCenterCode(msgXml,isNewCenter){
|
||||
});
|
||||
return {code,message}
|
||||
}else{
|
||||
return { code ,keystr}
|
||||
return { code }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,6 @@ import TopLogo from './compontents/TopLogo';
|
||||
import { examinerLoginService } from '../common/service/ExaminerService';
|
||||
import Md5 from '../common/utils/md5';
|
||||
import promptAction from '@ohos.promptAction';
|
||||
import errorMsgDialog from './compontents/errorMsgDialog'
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
@ -16,21 +15,7 @@ export default struct Index {
|
||||
@State currentInputIndex: number = 0
|
||||
@State @Watch('outClick') outFlag: boolean = false;
|
||||
private vocObj = null;
|
||||
private title = ''
|
||||
private type = '2'
|
||||
errorDialog: CustomDialogController = new CustomDialogController({
|
||||
builder: errorMsgDialog({
|
||||
title: this.title,
|
||||
type: this.type,
|
||||
cancel: () => {
|
||||
},
|
||||
confirm: () => {
|
||||
}
|
||||
}),
|
||||
customStyle: true,
|
||||
alignment: DialogAlignment.Center,
|
||||
},
|
||||
)
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
TopLogo({ outFlag: $outFlag })
|
||||
@ -86,27 +71,13 @@ export default struct Index {
|
||||
username: this.inputTextArr[0],
|
||||
password: Md5.Instance.get_md5(this.inputTextArr[1])
|
||||
}
|
||||
this.type='2'
|
||||
this.errorDialog.open()
|
||||
console.log('carInfo', JSON.stringify(globalThis.carInfo))
|
||||
examinerLoginService(param).then(res => {
|
||||
console.log('res?.examinerLoginRsp?.head?.resultCode',res?.examinerLoginRsp?.head?.resultCode,JSON.stringify(res))
|
||||
this.errorDialog.close()
|
||||
if(res?.examinerLoginRsp?.head?.resultCode=='1'){
|
||||
// this.type='1'
|
||||
// this.title=decodeURIComponent(res.examinerLoginRsp.head.resultMessage)
|
||||
// console.log('this.titlt',this.title)
|
||||
// this.errorDialog.open()
|
||||
return
|
||||
}
|
||||
router.pushUrl({
|
||||
url: 'pages/UserInfo',
|
||||
}, router.RouterMode.Single);
|
||||
|
||||
console.log('res11', JSON.stringify(res))
|
||||
globalThis.username = this.inputTextArr[0]
|
||||
}).catch(err=>{
|
||||
console.log('jiangsong12',JSON.stringify(err))
|
||||
})
|
||||
})
|
||||
} else {
|
||||
|
||||
@ -10,12 +10,12 @@ import FileUtil from '../common/utils/File';
|
||||
import { getUDP, getUDP2 } from '../common/utils/GlobalUdp';
|
||||
import { initJudgeUdp } from '../common/utils/UdpJudge';
|
||||
import { getTCP } from '../common/utils/GlobalTcp';
|
||||
import { getliushuiNum, setliushuiNum, takePhotoFn } from '../common/service/indexService';
|
||||
import { getliushuiNum, setliushuiNum,takePhotoFn } from '../common/service/indexService';
|
||||
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
|
||||
import worker, { MessageEvents } from '@ohos.worker';
|
||||
import promptAction from '@ohos.promptAction'
|
||||
import { voiceService } from '../common/service/voiceService';
|
||||
import errorMsgDialog from './compontents/errorMsgDialog'
|
||||
// import errorMsgDialog from './compontents/errorMsgDialog'
|
||||
import { getSyncData } from '../common/service/initable';
|
||||
|
||||
@Entry
|
||||
@ -40,31 +40,22 @@ struct Index {
|
||||
private vocObj = null;
|
||||
private workerInstance = null;
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
private title = ''
|
||||
private type = '2'
|
||||
errorDialog: CustomDialogController = new CustomDialogController({
|
||||
builder: errorMsgDialog({
|
||||
title: globalThis.title,
|
||||
type: globalThis.type,
|
||||
cancel: () => {
|
||||
},
|
||||
confirm: () => {
|
||||
}
|
||||
}),
|
||||
customStyle: true,
|
||||
alignment: DialogAlignment.Center,
|
||||
},
|
||||
)
|
||||
|
||||
@Styles
|
||||
commStyle(){
|
||||
.width(220 * this.ratio * this.dialogRatio)
|
||||
.height(69 * this.ratio * this.dialogRatio)
|
||||
.width(220 * this.ratio*this.dialogRatio)
|
||||
.height(69 * this.ratio*this.dialogRatio)
|
||||
.backgroundImage($r('app.media.button_nor'))
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
.margin({ bottom: 12 * this.ratio})
|
||||
}
|
||||
|
||||
// dialogController: CustomDialogController | null = new CustomDialogController({
|
||||
// builder: errorMsgDialog(
|
||||
// title,
|
||||
// isDialog,
|
||||
// // cancel: ()=> { },
|
||||
// // confirm: ()=> { }
|
||||
// })
|
||||
build() {
|
||||
Column() {
|
||||
Column() {
|
||||
@ -76,15 +67,14 @@ struct Index {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
|
||||
router.pushUrl({
|
||||
url: 'pages/Settings',
|
||||
}, router.RouterMode.Single);
|
||||
})
|
||||
Image($r('app.media.btn_back')).width('14.4%').height('12.2%')
|
||||
.onClick(() => {
|
||||
|
||||
this.dialogVisiable = true
|
||||
this.dialogVisiable=true
|
||||
return
|
||||
// promptAction.showDialog({
|
||||
// title: '提示',
|
||||
// message: '确认是否退出应用',
|
||||
@ -117,70 +107,58 @@ struct Index {
|
||||
Column() {
|
||||
Row() {
|
||||
if (!this.isSingle) {
|
||||
Image($r('app.media.index_lw'))
|
||||
.width('28%')
|
||||
.height('71%')
|
||||
.margin({ left: 80 * globalThis.ratio })
|
||||
.onClick(async () => {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
this.loading = true
|
||||
setTimeout(() => {
|
||||
this.angle = 360
|
||||
}, 1000)
|
||||
this.angle = 0
|
||||
if (!globalThis.timeInfo) {
|
||||
promptAction.showToast({
|
||||
message: `时间同步接口连接失败`,
|
||||
duration: 3000
|
||||
});
|
||||
this.loading = false
|
||||
return
|
||||
}
|
||||
this.testXMLToJSONInWorker()
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
if (this.isSingle) {
|
||||
Image($r('app.media.index_dj'))
|
||||
.width('28%')
|
||||
.height('71%')
|
||||
.margin({ left: 80 * globalThis.ratio })
|
||||
.onClick(() => {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
//判断数据库是否有表数据,有则直接跳转,没有则读取本地数据
|
||||
getSyncData('MA_SYSSET').then(data => {
|
||||
console.log('datadata', JSON.stringify(data))
|
||||
if (data?.[0]) {
|
||||
router.pushUrl({
|
||||
url: 'pages/UserInfo',
|
||||
}, router.RouterMode.Single)
|
||||
} else {
|
||||
this.loading = true
|
||||
this.testXMLToJSONInWorker()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
;
|
||||
})
|
||||
}
|
||||
Image($r('app.media.index_zj'))
|
||||
.width('28%')
|
||||
.height('71%')
|
||||
.margin({ right: 80 * globalThis.ratio })
|
||||
.onClick(() => {
|
||||
Image($r('app.media.index_lw')).width('28%').height('71%').margin({left:80 * globalThis.ratio}).onClick(async () => {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
router.pushUrl({
|
||||
url: 'pages/CarCheck'
|
||||
}, router.RouterMode.Single);
|
||||
this.loading = true
|
||||
setTimeout(() => {
|
||||
this.angle = 360
|
||||
}, 1000)
|
||||
this.angle = 0
|
||||
if (!globalThis.timeInfo) {
|
||||
promptAction.showToast({
|
||||
message: `时间同步接口连接失败`,
|
||||
duration: 3000
|
||||
});
|
||||
this.loading = false
|
||||
return
|
||||
}
|
||||
this.testXMLToJSONInWorker()
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
if (this.isSingle) {
|
||||
Image($r('app.media.index_dj')).width('28%').height('71%').margin({left:80 * globalThis.ratio}).onClick(() => {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
//判断数据库是否有表数据,有则直接跳转,没有则读取本地数据
|
||||
getSyncData('MA_SYSSET').then(data => {
|
||||
console.log('datadata',JSON.stringify(data))
|
||||
if (data?.[0]) {
|
||||
router.pushUrl({
|
||||
url:'pages/UserInfo',
|
||||
}, router.RouterMode.Single)
|
||||
}else{
|
||||
this.loading=true
|
||||
this.testXMLToJSONInWorker()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
;
|
||||
})
|
||||
}
|
||||
Image($r('app.media.index_zj')).width('28%').height('71%').margin({right:80* globalThis.ratio}).onClick(() => {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
router.pushUrl({
|
||||
url: 'pages/CarCheck'
|
||||
}, router.RouterMode.Single);
|
||||
})
|
||||
}
|
||||
.width('100%')
|
||||
.justifyContent(FlexAlign.SpaceAround)
|
||||
@ -224,41 +202,35 @@ struct Index {
|
||||
|
||||
//
|
||||
if (this.dialogVisiable) {
|
||||
Flex({ justifyContent: FlexAlign.Center }) {
|
||||
Flex({justifyContent:FlexAlign.Center}) {
|
||||
Text('确认是否退出应用')
|
||||
.fontSize(28 * this.ratio * this.dialogRatio)
|
||||
.margin({ top: 100 * this.ratio * this.dialogRatio })
|
||||
.fontSize(28 * this.ratio*this.dialogRatio)
|
||||
.margin({top:100*this.ratio*this.dialogRatio})
|
||||
Row() {
|
||||
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
|
||||
Text(' 取 消 ')
|
||||
.fontSize(24 * this.ratio * this.dialogRatio)
|
||||
.fontColor('#fff')
|
||||
.width(100 * this.ratio * this.dialogRatio)
|
||||
Text(' 取 消 ').fontSize(24 * this.ratio*this.dialogRatio).fontColor('#fff').width(100 * this.ratio*this.dialogRatio)
|
||||
}
|
||||
.commStyle()
|
||||
.onClick(() => {
|
||||
this.dialogVisiable = false
|
||||
}).margin({ right: 10 * this.ratio })
|
||||
}).margin({right:10*this.ratio})
|
||||
|
||||
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
|
||||
Text(' 确 定 ')
|
||||
.fontSize(24 * this.ratio * this.dialogRatio)
|
||||
.fontColor('#fff')
|
||||
.width(100 * this.ratio * this.dialogRatio)
|
||||
Text(' 确 定 ').fontSize(24 * this.ratio*this.dialogRatio).fontColor('#fff').width(100 * this.ratio*this.dialogRatio)
|
||||
}
|
||||
.commStyle()
|
||||
.onClick(() => {
|
||||
router.back()
|
||||
})
|
||||
}.position({ y: 265 * this.ratio * this.dialogRatio, x: 115 * this.ratio * this.dialogRatio })
|
||||
}.position({ y: 265 * this.ratio*this.dialogRatio, x: 115 * this.ratio*this.dialogRatio })
|
||||
|
||||
}
|
||||
.width(660 * this.ratio * this.dialogRatio)
|
||||
.height(360 * this.ratio * this.dialogRatio)
|
||||
.position({ x: 220 * this.ratio, y: 98 * this.ratio - 265 / 2 * (1 - this.ratio * this.dialogRatio) })
|
||||
.width(660 * this.ratio*this.dialogRatio)
|
||||
.height(360 * this.ratio*this.dialogRatio)
|
||||
.position({ x: 220 * this.ratio, y: 98 * this.ratio-265/2*(1-this.ratio*this.dialogRatio) })
|
||||
.backgroundColor('#E6E3DF')
|
||||
//
|
||||
.borderRadius(19 * this.ratio * this.dialogRatio)
|
||||
.borderRadius(19 * this.ratio*this.dialogRatio)
|
||||
}
|
||||
if (this.loading) {
|
||||
Column() {
|
||||
@ -300,10 +272,10 @@ struct Index {
|
||||
}
|
||||
|
||||
aboutToAppear() {
|
||||
this.dialogVisiable = false
|
||||
this.dialogVisiable=false
|
||||
this.angle = 0
|
||||
this.loading = false
|
||||
globalThis.lsh = '1111111111111'
|
||||
|
||||
}
|
||||
|
||||
async testXMLToJSONInWorker() {
|
||||
@ -316,9 +288,9 @@ struct Index {
|
||||
paraKdid: globalThis.timeInfo?.paraKdid,
|
||||
mode: globalThis.timeInfo?.mode,
|
||||
context: this.context,
|
||||
host: globalThis.host,
|
||||
centerHost: globalThis.timeInfo.url,
|
||||
singlePlay: globalThis.singlePlay
|
||||
host:globalThis.host,
|
||||
centerHost:globalThis.timeInfo.url,
|
||||
singlePlay:globalThis.singlePlay
|
||||
}
|
||||
workerInstance.postMessage(param);
|
||||
workerInstance.onmessage = (e: MessageEvents): void => {
|
||||
@ -326,7 +298,7 @@ struct Index {
|
||||
let workData: WorkData = e.data;
|
||||
if (workData.isComplete) {
|
||||
router.pushUrl({
|
||||
url: globalThis.singlePlay ? 'pages/UserInfo' : 'pages/ExaminerLogin',
|
||||
url: globalThis.singlePlay?'pages/UserInfo':'pages/ExaminerLogin',
|
||||
}, router.RouterMode.Single)
|
||||
}
|
||||
this.loading = false
|
||||
@ -352,7 +324,7 @@ struct Index {
|
||||
carNo: globalThis.carInfo.carNo,
|
||||
placeId: globalThis.carInfo.examinationRoomId
|
||||
}
|
||||
console.log('paramparam', JSON.stringify(param))
|
||||
console.log('paramparam',JSON.stringify(param))
|
||||
// globalThis.udpClient2.initHeartSendMsg(param,this.context)
|
||||
if (globalThis.udpClient2.getStatus()) {
|
||||
globalThis.udpClient2.sendMsgExt(param, this.context)
|
||||
@ -360,14 +332,14 @@ struct Index {
|
||||
}
|
||||
|
||||
async onPageShow() {
|
||||
console.log('ttttt', 1111)
|
||||
console.log('ttttt',1111)
|
||||
this.userAuth();
|
||||
console.log('ttttt2222', 1111)
|
||||
console.log('ttttt2222',1111)
|
||||
|
||||
this.vocObj = new voiceService(async (status, val, next) => {
|
||||
});
|
||||
|
||||
console.log('globalThis.singlePlay', globalThis.singlePlay)
|
||||
console.log('globalThis.singlePlay',globalThis.singlePlay)
|
||||
if (globalThis.singlePlay == undefined || globalThis.singlePlay == null) {
|
||||
this.vocObj.playAudio({
|
||||
type: 1,
|
||||
@ -379,7 +351,7 @@ struct Index {
|
||||
this.loading = false
|
||||
this.createAlbum()
|
||||
|
||||
this.num = 0
|
||||
this.num=0
|
||||
|
||||
|
||||
//
|
||||
@ -422,34 +394,29 @@ struct Index {
|
||||
|
||||
async initParams() {
|
||||
//设置plc udp 同步requesthost
|
||||
await getUDP(this.context, false)
|
||||
await getUDP(this.context,false)
|
||||
this.loading = false
|
||||
console.log('globalThis.deviceNo000')
|
||||
await getDeviceInfo(this.context)
|
||||
await getCarInfo()
|
||||
await getUDP2(this.context, false)
|
||||
await getUDP2(this.context,false)
|
||||
getTCP()
|
||||
this.deviceId = globalThis.carInfo.carNo
|
||||
this.deviceId= globalThis.carInfo.carNo
|
||||
await setCurrentTime();
|
||||
this.carNum = globalThis.carInfo.plateNo;
|
||||
this.version = globalThis.version;
|
||||
this.hasAuth = globalThis.hasAuth;
|
||||
initJudgeUdp()
|
||||
takePhotoFn(this.context)
|
||||
console.log('deviceIddeviceId', globalThis.deviceNo, this.deviceNo)
|
||||
console.log('deviceIddeviceId',globalThis.deviceNo,this.deviceNo)
|
||||
clearInterval(this.interval)
|
||||
this.interval = setInterval(() => {
|
||||
this.num++
|
||||
setliushuiNum(this.context)
|
||||
getliushuiNum(this.context)
|
||||
if (this.num >= 3) {
|
||||
if(this.num>=3){
|
||||
this.heartMsg()
|
||||
}
|
||||
const data=AppStorage.Get('errorMsg'); // returns 47
|
||||
console.log('1123',data)
|
||||
if(data==1){
|
||||
this.errorDialog.open()
|
||||
}
|
||||
}, 1000)
|
||||
//下载模型
|
||||
// await this.getModel()
|
||||
|
||||
@ -50,6 +50,7 @@ struct Index {
|
||||
this.time = await getCurrentTime();
|
||||
this.examTime += 1;
|
||||
}, 1000);
|
||||
|
||||
//初始化数据库表
|
||||
await this.initDb()
|
||||
//断点续考
|
||||
@ -108,14 +109,13 @@ struct Index {
|
||||
BK1: carInfo.bk1,
|
||||
BK2: carInfo.bk2,
|
||||
})
|
||||
console.info('surenjun =>carinfoArrr',JSON.stringify( this.carinfoArrr))
|
||||
}
|
||||
|
||||
// 获取考生信息
|
||||
async initStudent() {
|
||||
const students = await getSyncData('USER')
|
||||
const stuInfo = students[0] || {};
|
||||
const {xm,sfzmhm,lsh,kszp,ksdd,kssycs,kslx,ksxl,xldm} = stuInfo;
|
||||
const {xm,sfzmhm,lsh,kszp,ksdd,kssycs,kslx,ksxl} = stuInfo;
|
||||
this.name = xm || '测试考生';
|
||||
this.idCard = sfzmhm || '01234567891010';
|
||||
this.lsh = globalThis.singlePlay?'0000000000000':lsh;
|
||||
@ -124,7 +124,6 @@ struct Index {
|
||||
this.kssycs = kssycs;
|
||||
this.ksxl = ksxl;
|
||||
this.wayno = ksxl;
|
||||
this.xldm = xldm;
|
||||
this.kslx = kslx;
|
||||
}
|
||||
|
||||
@ -222,8 +221,6 @@ struct Index {
|
||||
//初始化systemParam表
|
||||
async initSystemParam(sysParam?: SYSTEMPARMARR[]) {
|
||||
const systemParms: any = sysParam || await getSyncData('MA_SYSTEMPARM')
|
||||
console.info('surenjun => systemParms',JSON.stringify(systemParms));
|
||||
|
||||
let currentParams: any = router.getParams();
|
||||
const {carName,carType,examSubject} = this;
|
||||
//小车车型列表
|
||||
@ -231,10 +228,7 @@ struct Index {
|
||||
if (globalThis.singlePlay) {
|
||||
this.wayno = currentParams.wayno || 1;
|
||||
}
|
||||
//真实监管下发的项目
|
||||
let kStringArr: string[] = (currentParams.kString?.split(',') || []).filter(item => item);
|
||||
console.info('surenjun kStringArr',JSON.stringify(kStringArr))
|
||||
let isInExam = kStringArr.length > 0;
|
||||
|
||||
const {isTrajectoryOpen} = judgeConfig
|
||||
let carNo = '', allItems = [];
|
||||
systemParms.forEach((systemParm) => {
|
||||
@ -260,6 +254,7 @@ struct Index {
|
||||
if(no1 == 3 && no3 == 3 && carNo === no2){
|
||||
this.passingScore = Number(txt1) || 0;
|
||||
}
|
||||
|
||||
//获取当前考车的考试项目
|
||||
if (carNo !== '' && no1 == 3 && no2 == carNo && no3 == 10) {
|
||||
allItems = decodeURIComponent(systemParm.txt1).split(',').filter(txt => txt !== '')
|
||||
@ -278,31 +273,21 @@ struct Index {
|
||||
if (sCarTypes.includes(carType) && name === '夜间行驶') {
|
||||
return
|
||||
}
|
||||
|
||||
const currentProject = {
|
||||
name,
|
||||
abbreviation: decodeURI(systemParm.txt3),
|
||||
projectCode: no2,
|
||||
projectCodeCenter: txt2,
|
||||
//是否是必考 加减档设置成非必考
|
||||
isRequired: no2== 14 ? false : allItems.includes(no2 + ''),
|
||||
isRequired: no2== 14?false:allItems.includes(no2 + ''),
|
||||
//是否考过了
|
||||
isEnd: false,
|
||||
//项目开始数据是否上传过
|
||||
isUpload:false,
|
||||
}
|
||||
if(isInExam){
|
||||
if(kStringArr.includes(txt2)){
|
||||
this.projectsObj[no2*1] = currentProject
|
||||
this.projectsCenterObj[txt2] = currentProject
|
||||
this.projects.push(currentProject);
|
||||
}
|
||||
}else {
|
||||
this.projectsObj[no2*1] = currentProject
|
||||
this.projectsCenterObj[txt2] = currentProject
|
||||
this.projects.push(currentProject);
|
||||
}
|
||||
|
||||
this.projectsObj[no2*1] = currentProject
|
||||
this.projectsCenterObj[txt2] = currentProject
|
||||
this.projects.push(currentProject);
|
||||
}
|
||||
this.systemparmArr.push({
|
||||
'NO1': no1 * 1,
|
||||
@ -472,6 +457,7 @@ struct Index {
|
||||
const [initData, beginData] = [strArr[0], strArr[1]];
|
||||
const initDataObj = JSON.parse(initData)
|
||||
const beginDataObj = JSON.parse(beginData)
|
||||
// initDataObj.systemparm =
|
||||
const examSubject = globalThis.carInfo.examSubject;
|
||||
this.examSubject = isTrajectoryOpen ? (initDataObj.kskm * 1) : examSubject;
|
||||
globalThis.carInfo.examSubject = this.examSubject
|
||||
@ -827,6 +813,26 @@ struct Index {
|
||||
.margin({ bottom: 20 })
|
||||
}.height('90%').justifyContent(FlexAlign.Start).padding({ top: 37, left: 60, bottom: 35, right: 60 })
|
||||
|
||||
if (this.signDisplayComVisible) {
|
||||
Column() {
|
||||
SignDisplayCom({
|
||||
showBack: false,
|
||||
scaleNum: 1.8,
|
||||
msgStr: this.judge.plcStr || '',
|
||||
}).margin({ top: 100 })
|
||||
|
||||
Row() {
|
||||
}
|
||||
.width(240)
|
||||
.height(240)
|
||||
.position({ x: '81%', y: 80 })
|
||||
.backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '33.33%', height: '33.33%' })
|
||||
.onClick(() => {
|
||||
this.signDisplayComVisible = false
|
||||
})
|
||||
}.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)')
|
||||
}
|
||||
|
||||
//科目三人工扣分弹窗
|
||||
if (this.isDeductedPopShow && this.examSubject == 3 && this.judgeConfigObj['342'] == 0) {
|
||||
@ -850,28 +856,6 @@ struct Index {
|
||||
})
|
||||
}
|
||||
|
||||
if (this.signDisplayComVisible) {
|
||||
Column() {
|
||||
SignDisplayCom({
|
||||
showBack: false,
|
||||
scaleNum: 1.8,
|
||||
msgStr: this.judge.plcStr || '',
|
||||
}).margin({ top: 100 })
|
||||
|
||||
Row() {
|
||||
}
|
||||
.width(240)
|
||||
.height(240)
|
||||
.position({ x: '81%', y: 80 })
|
||||
.backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '33.33%', height: '33.33%' })
|
||||
.onClick(() => {
|
||||
this.signDisplayComVisible = false
|
||||
})
|
||||
}.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)')
|
||||
}
|
||||
|
||||
|
||||
//科目三人工项目确认框
|
||||
if (this.isAmplifyPopShow && this.examSubject == 3) {
|
||||
AmplifyPopup({
|
||||
@ -1006,9 +990,6 @@ struct Index {
|
||||
getProjectIsInRoad
|
||||
} = this;
|
||||
const projectCode = artSubject3ProjectsCodesArr[index];
|
||||
if(projectsObj[projectCode] === undefined){
|
||||
return false
|
||||
}
|
||||
const projectType = projectsObj[projectCode].type;
|
||||
|
||||
//不允许人工触发的项目列表,以","分隔
|
||||
@ -1197,8 +1178,6 @@ struct Index {
|
||||
@State kssycs: string = ''
|
||||
@State ksxl: string = ''
|
||||
@State kslx: string = ''
|
||||
//监管线路代码
|
||||
@State xldm: string = ''
|
||||
//监管接口序列号
|
||||
@State serialNumber: number = 0
|
||||
@State carType: string = ''
|
||||
|
||||
@ -97,9 +97,7 @@ export default struct Index {
|
||||
params:{
|
||||
sczb,
|
||||
kfdm,
|
||||
wayno,
|
||||
//TODO 真实监管项目
|
||||
// kString:'40300,40500,40700,40800'
|
||||
wayno
|
||||
}
|
||||
}, router.RouterMode.Single);
|
||||
|
||||
|
||||
@ -22,7 +22,6 @@ import LoadingPopup from './compontents/judge/LoadingPopup';
|
||||
import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements';
|
||||
import { judgeConfig } from './judgeSDK/utils/judgeConfig';
|
||||
import { initJudgeUdp } from '../common/utils/UdpJudge';
|
||||
import errorMsgDialog from './compontents/errorMsgDialog'
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
@ -76,9 +75,6 @@ struct UserInfo {
|
||||
@State FaceOpenStatue: string = '0'; //是否开启人脸识别
|
||||
@State faceCatchImg: string = ''
|
||||
@State Param803Str: string = ''
|
||||
private title = ''
|
||||
private type = '2'
|
||||
|
||||
// 过程照片拍照
|
||||
getPhoto = async (empty?: boolean) => {
|
||||
const singlePlay = globalThis.singlePlay
|
||||
@ -104,19 +100,7 @@ struct UserInfo {
|
||||
{ label: '待考次数', key: 'kssycs' },
|
||||
{ label: '考官姓名', key: 'ksy1' },
|
||||
]
|
||||
errorDialog: CustomDialogController = new CustomDialogController({
|
||||
builder: errorMsgDialog({
|
||||
title: this.title,
|
||||
type: this.type,
|
||||
cancel: () => {
|
||||
},
|
||||
confirm: () => {
|
||||
}
|
||||
}),
|
||||
customStyle: true,
|
||||
alignment: DialogAlignment.Center,
|
||||
},
|
||||
)
|
||||
|
||||
async onPageShow() {
|
||||
this.updateTimeLimit=false
|
||||
console.log('响应头地址响应头地址')
|
||||
@ -128,57 +112,19 @@ struct UserInfo {
|
||||
this.initData()
|
||||
//身份证读卡器初始化
|
||||
// this.openDeviceByIDCard()
|
||||
// @ts-ignore
|
||||
this.list =await getSyncData('USERLIST')
|
||||
// @ts-ignore
|
||||
const data=await getSyncData('USER')
|
||||
console.log('datadata',JSON.stringify(data));
|
||||
console.log('datadata2',JSON.stringify(this.list))
|
||||
|
||||
const user=data[0]
|
||||
if(user&&Number(user.kssycs)){
|
||||
this.list.forEach(res=>{
|
||||
if(res.sfzmhm==user.sfzmhm){
|
||||
res.kssycs=user.kssycs
|
||||
this.getCurrentStudent(res.sfzmhm)
|
||||
}
|
||||
})
|
||||
|
||||
}else if(user&&(user.kssycs=='0'||user.kssycs=='')){
|
||||
console.log('datadatadatadata')
|
||||
this.list=this.list.filter(res=>{
|
||||
return res.sfzmhm!=user.sfzmhm
|
||||
})
|
||||
this.pageIndex=0
|
||||
this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4)
|
||||
if(this.dataList.length){
|
||||
this.currentUser=this.dataList[0]
|
||||
}else{
|
||||
this.currentUser=EmptyCandidateObject
|
||||
}
|
||||
}
|
||||
this.list.forEach((res,index)=>{
|
||||
res.id=index.toString()
|
||||
})
|
||||
await upDateTableByArray('USERLIST', this.list||[])
|
||||
|
||||
// 如果是单机模式则模拟假数据
|
||||
//获取sysset表数据
|
||||
this.initSysset()
|
||||
|
||||
//心跳处理
|
||||
this.heartMsg()
|
||||
|
||||
// if(user[0]){
|
||||
// // @ts-ignore
|
||||
// this.currentUser=user
|
||||
// }
|
||||
|
||||
getSyncData('USER').then(data => {
|
||||
if (data?.[0]) {
|
||||
this.getExaminationStudentInfoFn()
|
||||
}
|
||||
})
|
||||
this.isExamStart = false
|
||||
this.sczbkf = [];
|
||||
this.avPlayer = new VoiceAnnounce();
|
||||
initJudgeUdp()
|
||||
|
||||
}
|
||||
|
||||
//身份证读卡器初始化
|
||||
@ -220,8 +166,7 @@ struct UserInfo {
|
||||
url: examSubject == 3 ? 'pages/Roads' : 'pages/Judge',
|
||||
params: {
|
||||
sczb: Number(this.isBoardPrePareSetPopupOpen),
|
||||
kfdm: this.sczbkf,
|
||||
|
||||
kfdm: this.sczbkf
|
||||
}
|
||||
}, router.RouterMode.Single);
|
||||
return
|
||||
@ -232,7 +177,6 @@ struct UserInfo {
|
||||
})
|
||||
this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4)
|
||||
if (!flag) {
|
||||
globalThis.lsh = '0000000000000'
|
||||
await upDateTableByArray('USER', [])
|
||||
this.currentUser=this.list[0]
|
||||
// promptAction.showToast({
|
||||
@ -304,7 +248,7 @@ struct UserInfo {
|
||||
this.stepFlag = false
|
||||
this.faceCompareSucess = 0
|
||||
this.showFaceCompare = false
|
||||
this.lsh = '1111111111111'
|
||||
this.lsh = '000000000000'
|
||||
this.callBackFlag = false
|
||||
globalThis.lsh = this.lsh
|
||||
// this.currentUser = EmptyCandidateObject
|
||||
@ -319,10 +263,21 @@ struct UserInfo {
|
||||
this.lsh = this.currentUser.lsh
|
||||
globalThis.ksyh = this.currentUser.ksy1sfzmhm || this.currentUser.ksy2sfzmhm
|
||||
globalThis.lsh = this.lsh
|
||||
} else {
|
||||
// this.getExaminationStudentInfoFn()
|
||||
}
|
||||
|
||||
// const syssetParams = await getSyncData('MA_SYSSET');
|
||||
const syssetParams = await getSyncData('MA_SYSSET');
|
||||
//@ts-ignore
|
||||
syssetParams.forEach(sys => {
|
||||
//364 绕车一周评判时机(1-开始考试后判 2-开始考试前判)
|
||||
if (sys.v_no === '364' && decodeURIComponent(sys.v_value) == '2') {
|
||||
this.isBoardPrePareSetPopupOpen = true;
|
||||
}
|
||||
// 开始考试前必须解开安全带或关车门
|
||||
if (sys.v_no === '803') {
|
||||
this.Param803Str = sys.v_value + '';
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@ -373,16 +328,6 @@ struct UserInfo {
|
||||
const openCheckFlag = openCheckFlagParam?.[0]?.v_value == '1' ? '1' : '0'
|
||||
|
||||
const faceParam = syssetParams.filter(sys => sys.v_no == '2413')
|
||||
syssetParams.forEach(sys => {
|
||||
//364 绕车一周评判时机(1-开始考试后判 2-开始考试前判)
|
||||
if (sys.v_no === '364' && decodeURIComponent(sys.v_value) == '2') {
|
||||
this.isBoardPrePareSetPopupOpen = true;
|
||||
}
|
||||
// 开始考试前必须解开安全带或关车门
|
||||
if (sys.v_no === '803') {
|
||||
this.Param803Str = sys.v_value + '';
|
||||
}
|
||||
})
|
||||
|
||||
// faceParam?.[0]?.v_value ||
|
||||
// 1身份证读卡器 2指纹 3人脸
|
||||
@ -393,14 +338,11 @@ struct UserInfo {
|
||||
that.openDeviceByIDCard()
|
||||
}
|
||||
}
|
||||
if(that.list.length){
|
||||
return
|
||||
}
|
||||
//0不自动更新 1自动更新(不限次数) 2没有考生更新2次
|
||||
if (that.studentRefreshStatue == '2') {
|
||||
clearInterval(that.interval)
|
||||
that.interval = setInterval(() => {
|
||||
if (that.list.length == 0 && that.numCount < 3) {
|
||||
if (that.dataList.length == 0 && that.numCount < 3) {
|
||||
that.numCount++
|
||||
that.getExaminationStudentInfoFn()
|
||||
}
|
||||
@ -408,12 +350,12 @@ struct UserInfo {
|
||||
} else if (that.studentRefreshStatue == '1') {
|
||||
clearInterval(that.interval)
|
||||
that.interval = setInterval(() => {
|
||||
if (that.list.length == 0) {
|
||||
if (that.dataList.length == 0) {
|
||||
that.getExaminationStudentInfoFn()
|
||||
}
|
||||
}, 5000)
|
||||
} else {
|
||||
// this.getExaminationItemFn()
|
||||
this.getExaminationItemFn()
|
||||
}
|
||||
|
||||
})
|
||||
@ -425,7 +367,6 @@ struct UserInfo {
|
||||
console.log('this.faceCompareSuces', this.faceCompareSucess, JSON.stringify(this.currentUser))
|
||||
if (this.faceCompareSucess > 0) {
|
||||
//人脸比对通过
|
||||
globalThis.statue = 4
|
||||
this.sfbdinterfaceFn()
|
||||
}
|
||||
}
|
||||
@ -447,21 +388,20 @@ struct UserInfo {
|
||||
}
|
||||
|
||||
//获取下载考生
|
||||
async getExaminationStudentInfoFn() {
|
||||
getExaminationStudentInfoFn() {
|
||||
if (globalThis.singlePlay || this.updateTimeLimit) {
|
||||
return
|
||||
}
|
||||
await upDateTableByArray('USER', [])
|
||||
this.type='2'
|
||||
this.errorDialog.open()
|
||||
const param = `<getExaminationStudentInfoReq><head><checkCode>${Md5.Instance.get_md5(globalThis.carInfo.carId + globalThis.carInfo.examinationRoomId + globalThis.username)}</checkCode></head><body><carId>${globalThis.carInfo.carId}</carId><examinationRoomId>${globalThis.carInfo.examinationRoomId}</examinationRoomId><examinerName>${globalThis.username}</examinerName></body></getExaminationStudentInfoReq>`
|
||||
getExaminationStudentInfo(param).then(async (res) => {
|
||||
this.errorDialog.close()
|
||||
setTimeout(() => {
|
||||
this.updateTimeLimit = true
|
||||
}, 30000)
|
||||
this.updateTimeLimit = false
|
||||
if (!res||res?.getExaminationStudentInfoRsp?.head?.resultCode=='1') {
|
||||
if (!res) {
|
||||
this.dataList = []
|
||||
this.currentUser = EmptyCandidateObject
|
||||
this.errorMsg = decodeURI(res.getExaminationStudentInfoRsp.head.resultMessage)
|
||||
return
|
||||
}
|
||||
let dataList = []
|
||||
@ -480,15 +420,13 @@ struct UserInfo {
|
||||
}
|
||||
|
||||
this.list = JSON.parse(JSON.stringify(dataList))
|
||||
this.list.forEach((listData,index) => {
|
||||
listData.id=index.toString()
|
||||
this.list.forEach(listData => {
|
||||
for (let i in listData) {
|
||||
listData[i] = decodeURI(listData[i])
|
||||
}
|
||||
listData.kszp = this.photo + listData.kszp
|
||||
listData.ksmjzp = this.photo + listData.ksmjzp
|
||||
})
|
||||
await upDateTableByArray('USERLIST', this.list||[])
|
||||
dataList = this.list.length > 4 ? this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) : this.list;
|
||||
|
||||
this.dataList = dataList
|
||||
@ -569,11 +507,11 @@ struct UserInfo {
|
||||
this.dataList = []
|
||||
this.currentUser = EmptyCandidateObject
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//身份比对
|
||||
async sfbdinterfaceFn() {
|
||||
globalThis.statue = 4
|
||||
this.stepFlag = true
|
||||
const carInfo = globalThis.carInfo;
|
||||
const {carId,examinationRoomId} = carInfo;
|
||||
@ -592,18 +530,17 @@ struct UserInfo {
|
||||
const avPlayer = this.avPlayer;
|
||||
this.isLoadingPopupVisible = true
|
||||
avPlayer.playAudio([`voice/监管通信中.mp3`], false, async () => {
|
||||
//TODO 模拟
|
||||
const {code,keystr,message} = await this.beginExam();
|
||||
//@ts-ignore TODO code转换
|
||||
if (code == '' && code == undefined) {
|
||||
const temp = await this.beginExam();
|
||||
console.info('surenjun', JSON.stringify(temp))
|
||||
if (temp.code != 1) {
|
||||
promptAction.showToast({
|
||||
message,
|
||||
message: temp.message,
|
||||
duration: 4000
|
||||
})
|
||||
return
|
||||
}
|
||||
this.currentUser.id='0'
|
||||
await upDateTableByArray('USER', [this.currentUser])
|
||||
globalThis.statue = 4
|
||||
this.stepFlag = false
|
||||
this.isLoadingPopupVisible = false
|
||||
router.pushUrl({
|
||||
@ -611,9 +548,7 @@ struct UserInfo {
|
||||
params: {
|
||||
examItems: examItems?.getExaminationItemRsp?.body?.ykxx,
|
||||
sczb: Number(this.isBoardPrePareSetPopupOpen),
|
||||
kfdm: this.sczbkf,
|
||||
//真实监管项目
|
||||
kString:keystr || ''
|
||||
kfdm: this.sczbkf
|
||||
}
|
||||
}, router.RouterMode.Single);
|
||||
this.stopDeviceById()
|
||||
@ -731,14 +666,16 @@ struct UserInfo {
|
||||
const {carId,examinationRoomId} = carInfo;
|
||||
const { examSubject,plateNo } = carInfo;
|
||||
const date = new Date()
|
||||
console.info('surenjun', 'photoBase64')
|
||||
const photoBase64 = await this.getPhoto();
|
||||
console.info('surenjun', 'photoBase64End')
|
||||
const drvexam = {
|
||||
lsh: this.currentUser.lsh || '',
|
||||
kskm: examSubject,
|
||||
ksxtbh: this.ksxtbh || '222',
|
||||
sfzmhm: this.currentUser.sfzmhm || '',
|
||||
ksysfzmhm: this.currentUser.ksy1sfzmhm || '',
|
||||
ksxl: this.currentUser.xldm,
|
||||
ksxl: this.currentUser.ksxl,
|
||||
zp: photoBase64,
|
||||
kssj: dateFormat(date) || '',
|
||||
kchp: decodeURI(plateNo),
|
||||
@ -806,12 +743,10 @@ struct UserInfo {
|
||||
.backgroundImage(item.sfzmhm != this.currentUser.sfzmhm ? $r('app.media.userbox2') : $r('app.media.userboxbg'))
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.onClick(() => {
|
||||
globalThis.lsh = item.lsh;
|
||||
if (this.isExamStart&&!globalThis.singlePlay) {
|
||||
return
|
||||
}
|
||||
this.currentUser = item
|
||||
|
||||
})
|
||||
})
|
||||
}.width(640 * this.ratio).margin({ left: 30 * this.ratio })
|
||||
@ -891,13 +826,13 @@ struct UserInfo {
|
||||
try {
|
||||
await this.checkSignal()
|
||||
this.isExamStart = true
|
||||
this.currentUser.id='0'
|
||||
await upDateTableByArray('USER', [this.currentUser])
|
||||
globalThis.statue = 4
|
||||
this.isBoardPrePareSetPopupShow = true;
|
||||
this.isFirstBoardPrePareSetPopupBtnShow = true;
|
||||
this.stepFlag = false
|
||||
this.stopDeviceById()
|
||||
initJudgeUdp()
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
@ -915,13 +850,12 @@ struct UserInfo {
|
||||
}
|
||||
if (globalThis.singlePlay) {
|
||||
const {examSubject} = globalThis.carInfo;
|
||||
this.currentUser.id='0'
|
||||
await upDateTableByArray('USER', [this.currentUser])
|
||||
router.pushUrl({
|
||||
url: examSubject == 3 ? 'pages/Roads' : 'pages/Judge',
|
||||
params: {
|
||||
sczb: Number(this.isBoardPrePareSetPopupOpen),
|
||||
kfdm: this.sczbkf,
|
||||
kfdm: this.sczbkf
|
||||
}
|
||||
}, router.RouterMode.Single);
|
||||
this.stopDeviceById()
|
||||
@ -930,6 +864,7 @@ struct UserInfo {
|
||||
if (this.FaceOpenStatue != '0') {
|
||||
this.showFaceCompare = true
|
||||
} else {
|
||||
initJudgeUdp()
|
||||
this.sfbdinterfaceFn()
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
@ -179,7 +179,7 @@ export default struct FaceCompare {
|
||||
async faceComparFn() {
|
||||
console.log('mmmmm0', 2)
|
||||
this.param.pztd=this.param.rlls
|
||||
const data=await takePhoto(this.param, this.context, 'jt/', 1,)
|
||||
const data=await takePhoto(this.param, this.context, 'jt/', 1,)
|
||||
this.base64=this.imageBase64 + data.base64
|
||||
console.log('mmmmt',this.base64)
|
||||
faceCompare({
|
||||
|
||||
@ -558,7 +558,7 @@ export const testUIAllitems = [
|
||||
]
|
||||
|
||||
export const wuxiKm3Items = [
|
||||
//3,5,9,12,14,15,16,
|
||||
//3,5,9,12,14,15,16,
|
||||
{projectCode:'1',projectCodeCenter:'40100',name:'上车准备',abbreviation:'上车准备'},
|
||||
{projectCode:'2',projectCodeCenter:'40200',name:'起步',abbreviation:'起步'},
|
||||
{projectCode:'3',projectCodeCenter:'40300',name:'直线行驶',abbreviation:'直线行驶'},
|
||||
@ -571,7 +571,7 @@ export const wuxiKm3Items = [
|
||||
{projectCode:'10',projectCodeCenter:'41400',name:'超车',abbreviation:'超车'},
|
||||
{projectCode:'11',projectCodeCenter:'40600',name:'靠边停车',abbreviation:'靠边停车'},
|
||||
{projectCode:'12',projectCodeCenter:'41500',name:'掉头',abbreviation:'掉头'},
|
||||
{projectCode:'41',projectCodeCenter:'41700',name:'模拟夜间灯光',abbreviation:'模拟夜间灯光'},
|
||||
{projectCode:'41',projectCodeCenter:'41600',name:'夜间行驶',abbreviation:'夜间行驶'},
|
||||
{projectCode:'14',projectCodeCenter:'40400',name:'加减档位操作',abbreviation:'加减档位操作'},
|
||||
{projectCode:'15',projectCodeCenter:'40800',name:'路口左转弯',abbreviation:'路口左转弯'},
|
||||
{projectCode:'16',projectCodeCenter:'40900',name:'路口右转弯',abbreviation:'路口右转弯'},
|
||||
@ -622,9 +622,9 @@ export const testKm3Items= [
|
||||
{code:'41300',status:0},
|
||||
{code:'41400',status:0},
|
||||
{code:'41500',status:0},
|
||||
{code:'41700',status:0},
|
||||
|
||||
{code:'41600',status:0},
|
||||
|
||||
{code:'41700',status:0},
|
||||
]
|
||||
|
||||
export const testMarkRules = [{
|
||||
|
||||
@ -53,7 +53,7 @@ import {
|
||||
} from './api/index';
|
||||
|
||||
const judgeTag = 'SURENJUN_JUDGE'
|
||||
import { getSyncData, upDateTableByArray } from '../../common/service/initable';
|
||||
|
||||
export default class Judge {
|
||||
constructor(judgeUI) {
|
||||
this.serialIndex = 1;
|
||||
@ -129,12 +129,15 @@ export default class Judge {
|
||||
console.info(judgeTag, '2.注册日志回调完成')
|
||||
|
||||
let initInfo = isTrajectoryOpen ? JSON.parse(strArr[0]) : await this.getJudgeInitData();
|
||||
await fileLog.setExamJudgeData(initInfo)
|
||||
|
||||
//相关评判初始化只做一次
|
||||
if (!isJudgeInitBool) {
|
||||
await fileLog.setExamJudgeData(initInfo)
|
||||
const tempJudge = await examJudgeInit(initInfo);
|
||||
globalThis.isJudgeInitBool = true
|
||||
console.info(judgeTag, '4.评判初始化完成')
|
||||
} else {
|
||||
await fileLog.setExamJudgeData(initInfo)
|
||||
}
|
||||
|
||||
globalThis.isJudge = true
|
||||
@ -312,6 +315,7 @@ export default class Judge {
|
||||
this.judgeUI.currentXmdm = xmdm;
|
||||
const xmmcStr = judgeUI.projectsObj[xmdm].name;
|
||||
const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter;
|
||||
console.info(judgeTag,JSON.stringify(judgeUI.projectsObj[xmdm]))
|
||||
const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode;
|
||||
this.testKmItems[xmmcCode].status = 2;
|
||||
this.xmmcStr = xmmcStr;
|
||||
@ -340,6 +344,7 @@ export default class Judge {
|
||||
//统计必考项目数量
|
||||
this.xmmcStr = '无';
|
||||
this.xmmcCode = '';
|
||||
this.xmmcSingleCode = 0;
|
||||
this.xmdm = '';
|
||||
this.judgeUI.isDeductedPopShow = false
|
||||
this.judgeUI.currentXmdm = undefined;
|
||||
@ -457,14 +462,14 @@ export default class Judge {
|
||||
}
|
||||
//项目已考不上传监管信息
|
||||
if (!isEnd) {
|
||||
judgeTask.addTask(async () => {
|
||||
console.info(judgeTag, `项目开始-${xmdm}-${projectsObj[xmdm].name}`)
|
||||
await beginProject(xmdm)
|
||||
},{isDelay: true})
|
||||
judgeTask.addTask(async () => {
|
||||
judgeTask.addTask(async () => {
|
||||
console.info(judgeTag, `项目开始-${xmdm}-${projectsObj[xmdm].name}`)
|
||||
await beginProject(xmdm)
|
||||
},{isDelay: true})
|
||||
judgeTask.addTask(async () => {
|
||||
console.info(judgeTag, `项目-${xmdm}-上传照片 start`)
|
||||
await uploadProgressPhoto(xmdm)
|
||||
},{isDelay: true})
|
||||
},{isDelay: true})
|
||||
this.judgeUI.projectsObj[xmdm].isUpload = true;
|
||||
}
|
||||
break;
|
||||
@ -485,7 +490,6 @@ export default class Judge {
|
||||
judgeTask.addTask(async () => {
|
||||
console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`)
|
||||
await endProject(xmdm);
|
||||
this.xmmcSingleCode = 0;
|
||||
}, {isDelay: true})
|
||||
}
|
||||
}
|
||||
@ -577,7 +581,7 @@ export default class Judge {
|
||||
const carInfo = globalThis.carInfo;
|
||||
const { examSubject,plateNo } = carInfo;
|
||||
const {judgeUI,fileLog,getSbbm,xmxh,filePath} = this;
|
||||
const {lsh,idCard,serialNumber,projectsObj,ksdd,kslx,xldm} = judgeUI
|
||||
const {lsh,idCard,serialNumber,projectsObj,ksdd,kslx,ksxl} = judgeUI
|
||||
const time = await getCurrentTime();
|
||||
const project = projectsObj[ksxm]
|
||||
const sbxh = getSbbm(ksxm, xmxh)
|
||||
@ -591,7 +595,7 @@ export default class Judge {
|
||||
sfzmhm: idCard,
|
||||
ksxm: project.projectCodeCenter,
|
||||
sbxh,
|
||||
ksxl:xldm,
|
||||
ksxl,
|
||||
kchp: encodeURI(plateNo),
|
||||
// 开始时间
|
||||
ksdd: encodeURI(ksdd),
|
||||
@ -614,7 +618,7 @@ export default class Judge {
|
||||
const deviceNo = globalThis.deviceNo;
|
||||
const { examSubject,plateNo,carNo } = carInfo;
|
||||
const {judgeUI,fileLog,getSbxh,xmxh,getSbbm,filePath} = this;
|
||||
const {lsh,idCard,serialNumber,projectsObj,cdsbInfoObj,ksdd,kslx,xldm,} = judgeUI
|
||||
const {lsh,idCard,serialNumber,projectsObj,cdsbInfoObj,ksdd,kslx,ksxl,} = judgeUI
|
||||
const time = await getCurrentTime();
|
||||
const project = projectsObj[ksxm]
|
||||
const sbxh = examSubject == 3 ? undefined : getSbbm(ksxm, xmxh)
|
||||
@ -629,7 +633,7 @@ export default class Judge {
|
||||
sbxh,
|
||||
//TODO 操作类型 1:正常 0:撤销该考试记录
|
||||
czlx: '1',
|
||||
ksxl:xldm,
|
||||
ksxl,
|
||||
kchp: encodeURI(plateNo),
|
||||
ksdd: encodeURI(ksdd),
|
||||
kslx: encodeURI(kslx) || '',
|
||||
@ -650,43 +654,29 @@ export default class Judge {
|
||||
const deviceNo = globalThis.deviceNo;
|
||||
const { examSubject,plateNo,carNo } = carInfo;
|
||||
const {judgeUI,getProjectInfo,fileLog,xmmcSingleCode,filePath} = this;
|
||||
const {lsh,idCard,serialNumber,ksdd,projectsObj} = judgeUI
|
||||
const {lsh,idCard,serialNumber,ksdd} = judgeUI
|
||||
const time = await getCurrentTime();
|
||||
const project = getProjectInfo(ksxm);
|
||||
//科目三夜间行驶.模拟灯光、上车准备出现通用评判,ksxm为当前进行的项目
|
||||
const checkProjects = ['17', '41', '1'];
|
||||
//获取正在进行的项目
|
||||
const inProjects = Reflect.ownKeys(projectsObj).filter(projectKey => projectsObj[projectKey].type == 2);
|
||||
|
||||
let commonKsxm = '';
|
||||
checkProjects.forEach(projectCode=>{
|
||||
if(inProjects.includes(projectCode)){
|
||||
commonKsxm = projectCode
|
||||
}
|
||||
})
|
||||
//科目三上车准备、模拟灯光、夜间行驶出现通用评判,ksxm为当前进行的项目
|
||||
const checkProjects = ['41600', '41700', '40100']
|
||||
|
||||
const data = {
|
||||
xtlb: '17', jkxlh: serialNumber, jkid: '17C53',
|
||||
drvexam: {
|
||||
lsh,
|
||||
kskm: examSubject,
|
||||
ksxm: project == undefined
|
||||
? (commonKsxm
|
||||
? (projectsObj[commonKsxm].projectCodeCenter)
|
||||
: (examSubject == 3 ? 30000 : 10000))
|
||||
: project.projectCodeCenter ,
|
||||
ksxm: project
|
||||
? (checkProjects.includes(xmmcSingleCode + '') ? xmmcSingleCode : project.projectCodeCenter)
|
||||
: (examSubject == 3 ? 30000 : 10000),
|
||||
kfxm: kf.markcatalog,
|
||||
kfxmmx: `${ksxm},${kf.markserial}`,
|
||||
sfzmhm: idCard,
|
||||
kchp: encodeURI(carInfo.plateNo),
|
||||
//扣分方式
|
||||
kffs: kf.type == 0 ? 1 : 2,
|
||||
ksdd: encodeURI(ksdd),
|
||||
kfsj: time
|
||||
}
|
||||
}
|
||||
console.info(judgeTag + 'ksxm=>',data.drvexam.ksxm)
|
||||
|
||||
const {code} = await writeObjectOut(data,filePath);
|
||||
if (code === 2300007) {
|
||||
this.isJudgeDisConnect = true
|
||||
@ -736,15 +726,15 @@ export default class Judge {
|
||||
//判断是不是模拟灯光语音
|
||||
if (type == 1) {
|
||||
avPlayer.playAudio([`voice/${code}.mp3`], false, () => {
|
||||
examJudgeSoundEnd({
|
||||
itemno: xmdm, code, type
|
||||
})
|
||||
fileLog.setExamJudgeData({
|
||||
method: 'examJudgeSoundEnd',
|
||||
itemno: xmdm,
|
||||
code,
|
||||
type,
|
||||
})
|
||||
examJudgeSoundEnd({
|
||||
itemno: xmdm, code, type
|
||||
})
|
||||
fileLog.setExamJudgeData({
|
||||
method: 'examJudgeSoundEnd',
|
||||
itemno: xmdm,
|
||||
code,
|
||||
type,
|
||||
})
|
||||
})
|
||||
}else{
|
||||
avPlayer.playAudio([`voice/${code}.mp3`])
|
||||
@ -788,6 +778,7 @@ export default class Judge {
|
||||
const param302 = judgeConfigObj['302'];
|
||||
const param342 = judgeConfigObj['342'];
|
||||
const param512 = (judgeConfigObj['512'] || '').split(',');
|
||||
|
||||
//成绩不合格
|
||||
if (totalScore < passingGrade) {
|
||||
//科目三不合格报靠边停车
|
||||
@ -800,15 +791,13 @@ export default class Judge {
|
||||
return
|
||||
}
|
||||
//成绩合格
|
||||
if (isAllProjectsEnd && totalScore >= passingGrade && !isEndTip) {
|
||||
|
||||
if (isAllProjectsEnd && totalScore >= passingGrade && isEndTip) {
|
||||
//考试合格自动退出
|
||||
if(examSubject == 3 && param302 == 4){
|
||||
await examJudgeEndExam()
|
||||
this.isExamEnd = true
|
||||
return
|
||||
}
|
||||
|
||||
if (examSubject == 3 && (param342 == 0 || param342 == 2) && (param302 != 6 || param302 != 7 || param302 != 8)) {
|
||||
if(param512[7] != 0){
|
||||
avPlayer.playAudio(['voice/综合评判.mp3'])
|
||||
@ -830,19 +819,24 @@ export default class Judge {
|
||||
this.judgeUI.loadingPopupVisible = true;
|
||||
this.judgeUI.endPopupVisible = false;
|
||||
this.judgeUI.isDeductedPopShow = false;
|
||||
|
||||
console.info(judgeTag,1)
|
||||
const {qjjl,dcjl} = ksjs
|
||||
const {judgeUI,endExam,handleSEP,kfArr,avPlayer,judgeTask,isManual} = this;
|
||||
const {judgeConfigObj,examSubject,isAllProjectsEnd,totalScore,passingScore} = judgeUI;
|
||||
//计算考试分数
|
||||
console.info(judgeTag,2)
|
||||
this.judgeUI.totalScore = isAllProjectsEnd ? totalScore : 0;
|
||||
const singlePlay = globalThis.singlePlay
|
||||
const param302 = judgeConfigObj['302'];
|
||||
globalThis.windowClass.setWindowSystemBarEnable(['navigation'])
|
||||
|
||||
console.info(judgeTag,3)
|
||||
//自动退出待验证并且不合格
|
||||
if (!isManual && examSubject == 3 && (param302 == 1 || (singlePlay && param302 == 2)) && totalScore < passingScore) {
|
||||
avPlayer.playAudio([`voice/考试结束.mp3`])
|
||||
}
|
||||
console.info(judgeTag,4)
|
||||
//联网模式下手动结束的直接退出
|
||||
if (!singlePlay && isManual && !isAllProjectsEnd) {
|
||||
avPlayer.playAudio(['voice/empty.mp3'], true, () => {
|
||||
@ -850,6 +844,7 @@ export default class Judge {
|
||||
})
|
||||
return
|
||||
}
|
||||
console.info(judgeTag,5)
|
||||
if (examSubject == 3) {
|
||||
const param302 = judgeConfigObj['302'];
|
||||
if (totalScore < passingScore) {
|
||||
@ -861,13 +856,17 @@ export default class Judge {
|
||||
//考试合格
|
||||
}
|
||||
}
|
||||
console.info(judgeTag,6)
|
||||
await handleSEP(306);
|
||||
console.info(judgeTag,7)
|
||||
avPlayer.playAudio(['voice/exam_waiting.mp3'], true, async () => {
|
||||
try {
|
||||
if (!singlePlay) {
|
||||
// TODO 待验证
|
||||
const bytes = await this.getMessageHeartbeat(true);
|
||||
globalThis.judgeUdp.send(bytes)
|
||||
}
|
||||
//TODO endExam函数逻辑待验证
|
||||
await endExam()
|
||||
} catch (e) {
|
||||
console.info(judgeTag,JSON.stringify(e))
|
||||
@ -904,7 +903,7 @@ export default class Judge {
|
||||
kscj: (totalScore * 1) > 0 ? totalScore : 0,
|
||||
kslc: Math.ceil(((ksjs?.qjjl + ksjs?.dcjl) || 0) / 100),
|
||||
// 1,22;2,560;3,128;4,0;5,0;
|
||||
dwlc: [d1,d2,d3,d4,d5].map((d,index) => `${index+1},${Math.floor(d /100)}`).join(';'),
|
||||
dwlc: [d1,d2,d3,d4,d5].map((d,index) => `${index},${Math.floor(d /100)}`).join(';'),
|
||||
}
|
||||
}
|
||||
const temp = await writeObjectOut(data,filePath);
|
||||
@ -917,6 +916,7 @@ export default class Judge {
|
||||
if (examSubject == 2) {
|
||||
voiceURL = (totalScore < passingScore ? `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav` : 'voice/qualified.mp3')
|
||||
}
|
||||
|
||||
if (examSubject == 3) {
|
||||
if (isAllProjectsEnd) {
|
||||
if (totalScore < passingScore) {
|
||||
@ -929,9 +929,6 @@ export default class Judge {
|
||||
}
|
||||
}
|
||||
|
||||
const USER =await getSyncData('USER');
|
||||
await upDateTableByArray('USER', [{...USER[0],kssycs:kssycs == 2 ? 1 : 0}])
|
||||
|
||||
console.info(judgeTag, `考试成绩:${totalScore}`)
|
||||
if(!singlePlay){
|
||||
await uploadProgressData();
|
||||
@ -948,7 +945,6 @@ export default class Judge {
|
||||
if (score <= (examSubject == 3 ? 10 : 20)) {
|
||||
if (kfArr.length - 1 === index) {
|
||||
avPlayer.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => {
|
||||
this.isUdpEnd = true
|
||||
router.back();
|
||||
})
|
||||
throw new Error('End Loop')
|
||||
@ -969,7 +965,6 @@ export default class Judge {
|
||||
} else {
|
||||
avPlayer.playAudio([voiceURL], true, () => {
|
||||
setTimeout(() => {
|
||||
this.isUdpEnd = true
|
||||
router.back();
|
||||
}, param302 == 8 ? 3000 : 0)
|
||||
})
|
||||
@ -997,6 +992,7 @@ export default class Judge {
|
||||
getMessageHeartbeat = async (isEnd?: Boolean) => {
|
||||
const carInfo = globalThis.carInfo;
|
||||
const { examSubject,plateNo,ksyh } = carInfo;
|
||||
console.info(judgeTag,1)
|
||||
const {
|
||||
judgeUI,
|
||||
isExam,
|
||||
@ -1011,25 +1007,32 @@ export default class Judge {
|
||||
getTranslateProject,
|
||||
getSbxh
|
||||
} = this;
|
||||
const singlePlay = globalThis.singlePlay
|
||||
console.info(judgeTag,2)
|
||||
const {lsh,startHourTime,totalScore,examTime} = judgeUI;
|
||||
|
||||
const {fourInOneScreen:{gpsDigit}} = judgeConfig
|
||||
console.info(judgeTag,3)
|
||||
const examType = examSubject == 2?2:3
|
||||
const {sensor,gps} = tempData;
|
||||
console.info(judgeTag,4)
|
||||
console.info(judgeTag,JSON.stringify(tempData))
|
||||
if(tempData.sensor === undefined){
|
||||
return
|
||||
}
|
||||
const {zfxd,yfxd,shtd,ygd,jgd,skd,dh1,dh2,lhq,jsc,ssc,fsc,lb,mkg,aqd,ygq,cs,fdjzs,dw} = sensor
|
||||
const {jd,wd, hxj, fyj, hbg,} = gps
|
||||
console.info(judgeTag,5)
|
||||
const translateProject = getTranslateProject();
|
||||
const sbxh = getSbxh(xmdm, xmxh)
|
||||
console.info(judgeTag,JSON.stringify(performInfo))
|
||||
const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo || {};
|
||||
const asclshArr = stringToASC(
|
||||
fillZero((singlePlay?1111111111111:lsh) || 0, 13)
|
||||
);
|
||||
const asclshArr = stringToASC(fillZero(lsh || 0, 13));
|
||||
//13不足要补0
|
||||
console.info(judgeTag,6)
|
||||
const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13))
|
||||
console.info(judgeTag,7)
|
||||
const ascsbxhArr = stringToASC(sbxh)
|
||||
console.info(judgeTag,8)
|
||||
const translateSignals = getTranslateSignals(
|
||||
[zfxd, yfxd, shtd, ygd, jgd, skd, dh1, dh2, lhq, jsc, ssc, fsc, lb, mkg, aqd].concat(getDwStatusType(dw)).concat(getCarStatusType(carzt)).concat([ygq, sensor.wd, 0])
|
||||
)
|
||||
@ -1039,8 +1042,15 @@ export default class Judge {
|
||||
const translateWd = convertGpsCoord2(jd).toFixed(gpsDigit) * Math.pow(10, gpsDigit)
|
||||
//@ts-ignore
|
||||
const translateProjects = translateProject.map(numStr => string2Bytes(parseInt(numStr, 2), 8)[0])
|
||||
console.info(judgeTag,6)
|
||||
// console.info(judgeTag,JSON.stringify(translateProject))
|
||||
//@ts-ignore
|
||||
// const translateProjects= translateProject.map(num => string2Bytes(p,8)[0])
|
||||
console.info('surenjunxstartHourTime' , startHourTime)
|
||||
console.info('surenjunxmmcexamTime' , examTime)
|
||||
|
||||
const arr = [
|
||||
//考生号
|
||||
//考生号
|
||||
asclshArr.map(lsh => string2Bytes(lsh, 8)[0]),
|
||||
//考试员号
|
||||
ascksyhArr.map(ksyh => string2Bytes(ksyh, 8)[0]),
|
||||
@ -1069,6 +1079,9 @@ export default class Judge {
|
||||
string2Bytes(Math.floor((dcjl + qjjl) / 100), 2 * 8),
|
||||
//扣分
|
||||
string2Bytes(100 - Math.abs(totalScore), 2 * 8),
|
||||
//扣分数
|
||||
//todo扣分值/扣分项
|
||||
string2Bytes(0, 2 * 8),
|
||||
//扣分项数量
|
||||
string2Bytes(kfArr.length, 8),
|
||||
//n个扣分序号
|
||||
@ -1079,8 +1092,8 @@ export default class Judge {
|
||||
string2Bytes(0, 2 * 8),
|
||||
//TODO 摩托压线 Byte[20],
|
||||
string2Bytes(0, 20 * 8),
|
||||
//考试用时
|
||||
string2Bytes(examTime, 4 * 8),
|
||||
//TODO 考试用时
|
||||
string2Bytes(fillZero(examTime+'',4), 4 * 8),
|
||||
//TODO 项目用时
|
||||
string2Bytes(fillZero(0,2), 2 * 8),
|
||||
//TODO 设备信号状态
|
||||
@ -1092,22 +1105,30 @@ export default class Judge {
|
||||
tempArr = tempArr.concat(itemArr)
|
||||
})
|
||||
this.serialIndex += 1;
|
||||
console.info('message-judge-udp' + Array2Byte(tempArr).toString());
|
||||
|
||||
return Array2Byte(tempArr)
|
||||
}
|
||||
//获取场地序号
|
||||
getSbxh = (ksxm, xmxh) => {
|
||||
const {judgeUI} = this;
|
||||
console.info(judgeTag,10)
|
||||
const {cdsbInfoObj,projectsObj} = judgeUI;
|
||||
console.info(judgeTag,11)
|
||||
const project = projectsObj[ksxm]
|
||||
console.info(judgeTag,12)
|
||||
if(project == 3){
|
||||
return '0000000000'
|
||||
}
|
||||
if (project === undefined) {
|
||||
return '0000000000'
|
||||
}
|
||||
console.info(judgeTag,13)
|
||||
const projectType = project.sbxh;
|
||||
const projectKey = `${ksxm}_${xmxh}`;
|
||||
console.info(judgeTag,14)
|
||||
const currentCdsb = cdsbInfoObj[projectKey] || {};
|
||||
console.info(judgeTag,15)
|
||||
const sbxh = currentCdsb.sbbh || '0000000000'
|
||||
return sbxh
|
||||
}
|
||||
@ -1157,6 +1178,8 @@ export default class Judge {
|
||||
|
||||
arr.push(tempArr.join(''));
|
||||
}
|
||||
console.info(judgeTag,JSON.stringify(arr))
|
||||
// return arr.map(numStr => parseInt(numStr, 2));
|
||||
return arr
|
||||
}
|
||||
// 获取考试项目详情
|
||||
@ -1274,9 +1297,10 @@ export default class Judge {
|
||||
// 处理udp plc信号
|
||||
handleUdp = async (msg) => {
|
||||
console.info('plc信号', msg)
|
||||
const {fileLog,getPlcData,usbService,isUdpEnd,isExamEnd} = this
|
||||
const {fileLog,getPlcData,usbService} = this
|
||||
const stachArr = msg.split(',')
|
||||
if (stachArr[0] != '#DN_GD' || isUdpEnd) {
|
||||
const {isExamEnd} = this;
|
||||
if (stachArr[0] != '#DN_GD' || isExamEnd) {
|
||||
return
|
||||
}
|
||||
const plcData = await getPlcData(msg);
|
||||
@ -1290,11 +1314,9 @@ export default class Judge {
|
||||
this.judgeUI.isDwztRight = plcData.gps.dwzt == 4;
|
||||
this.judgeUI.sd = (Math.floor(((plcData.gps.sd as number) || 0) * 1.852)) + '';
|
||||
this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + ''
|
||||
if(!isExamEnd){
|
||||
await examJudgeRealExam(plcData)
|
||||
}
|
||||
await examJudgeRealExam(plcData)
|
||||
const udpIndex = globalThis.udpIndex;
|
||||
if (udpIndex % 5 === 0 && !isUdpEnd) {
|
||||
if (udpIndex % 5 === 0) {
|
||||
const judgeUdp = globalThis.judgeUdp
|
||||
const bytes = await this.getMessageHeartbeat();
|
||||
console.info(judgeTag+'UDP',JSON.stringify(bytes))
|
||||
@ -1352,7 +1374,9 @@ export default class Judge {
|
||||
console.info(judgeTag, '模拟数据考试结束')
|
||||
globalThis.windowClass.setWindowSystemBarEnable(['navigation'])
|
||||
clearInterval(judgeTimer)
|
||||
this.checkExamIsEnd(true)
|
||||
await examJudgeEndExam()
|
||||
this.isExamEnd = true
|
||||
this.isManual = true
|
||||
return
|
||||
}
|
||||
const msg = JSON.parse(strArr[num]);
|
||||
@ -1371,8 +1395,8 @@ export default class Judge {
|
||||
setJudgeItem(msg.itemno, msg.serial)
|
||||
}
|
||||
await examJudgeRealExam(msg)
|
||||
const bytes = await this.getMessageHeartbeat();
|
||||
bytes && globalThis.judgeUdp.send(bytes)
|
||||
// const bytes = await this.getMessageHeartbeat();
|
||||
// bytes && globalThis.judgeUdp.send(bytes)
|
||||
num++
|
||||
}, 200)
|
||||
|
||||
@ -1441,8 +1465,6 @@ export default class Judge {
|
||||
private isExam: boolean
|
||||
//考试是否结束了
|
||||
private isExamEnd: boolean
|
||||
// 是否发送udp
|
||||
private isUdpEnd: boolean = false
|
||||
//是否手动结束考试
|
||||
private isManual: boolean
|
||||
//UDP服务序列号
|
||||
|
||||
@ -6,7 +6,7 @@ export const judgeConfig = {
|
||||
//是否开启拍照
|
||||
isPhotoOpen: true,
|
||||
//扣分语音是否强制开启
|
||||
kfVoiceOpen: true,
|
||||
kfVoiceOpen: false,
|
||||
//忽略的考试项目
|
||||
ignoreProjects:[],
|
||||
// 是否忽略考试前熄火、车门检查
|
||||
@ -16,7 +16,7 @@ export const judgeConfig = {
|
||||
// 本地模型地址
|
||||
modelPath: 'models/model_enc',
|
||||
// 济南科目三
|
||||
trajectoryPath: 'logs/2024_08_17/2024_08_17_16_51_24_9999282315477_203908531884520064_彭雯季/judge_exam_data.txt',
|
||||
trajectoryPath: 'logs/2024_08_14/2024_08_14_11_30_20_9999805761528_344094918358022656_葛李弯/judge_exam_data.txt',
|
||||
//四合一画面配置
|
||||
fourInOneScreen:{
|
||||
//gps位数
|
||||
|
||||
@ -29,12 +29,12 @@ export default class JudgeTask {
|
||||
await fn()
|
||||
res(true)
|
||||
} catch (e) {
|
||||
console.info(TAG, '过程任务执行失败=>' + JSON.stringify(e))
|
||||
console.info(TAG, JSON.stringify(e))
|
||||
Prompt.showToast({
|
||||
message: '过程任务执行失败=>' + JSON.stringify(e),
|
||||
message: '过程数据接口解析错误',
|
||||
duration: 3000
|
||||
});
|
||||
res(false)
|
||||
rej(false)
|
||||
}
|
||||
}, isDelay ? delayTime : 0);
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user