fix: 补全日志

This commit is contained in:
wangzhongjie 2025-09-24 14:08:51 +08:00
parent 0ee2b76130
commit 46730847ee
7 changed files with 62 additions and 32 deletions

View File

@ -71,5 +71,9 @@ export const StartExamTag = '[StartExam]'
//人脸对比
export const FaceCompareTag = '[FaceCompare]';
//过程数据处理
export const ProcessDataTag = '[ProcessData]';
// 日志
export const LogTag = '[LogWorker]';

View File

@ -206,6 +206,7 @@ struct JudgePage {
}
async aboutToAppear() {
dConsole.log(JudgeTag, "JudgePage aboutToAppear")
this.carInfo = AppStorage.get<CarInfoType>('carInfo')!
this.singlePlay = AppStorage.get<boolean>('singlePlay')!
this.startFullTime = dayTs().format("YYYYMMDDHHmmss");

View File

@ -12,13 +12,19 @@ export default struct MessageComponent {
@Prop jl: number
@Prop wayno: number
@Prop judgeConfigObj: DefaultJudgeConfigObj
@State timer: number = -1
aboutToAppear(): void {
setInterval(async () => {
this.timer = setInterval(async () => {
this.examTime += 1;
}, 1000);
}
aboutToDisappear(): void {
clearInterval(this.timer)
this.timer = -1
}
build() {
Row() {
Column() {

View File

@ -166,6 +166,7 @@ struct UserInfoPage {
]
//开始考试准备
prePareExam = async () => {
dConsole.log(StartExamTag, 'prePareExam')
try {
// await this.checkSignal()
await CheckSignal(this.systemParam, this.avPlayer)
@ -175,14 +176,16 @@ struct UserInfoPage {
if (!this.currentUser.xm) {
return
}
// 单机
if (this.singlePlay) {
this.currentUser.id = '0'
dConsole.log('开始考试3')
dConsole.log(StartExamTag, '开始考试3', this.currentUser)
SqlInsertTable('USER', [this.currentUser]).catch((e: BusinessError) => {
dConsole.log("error", JSON.stringify(e))
dConsole.log(StartExamTag, "error", JSON.stringify(e))
})
// 初始化开始考试过程数据文件夹
InitializeExamProcessData(this.currentUser)
dConsole.log(StartExamTag, '开始考试4')
router.pushUrl({
url: this.carInfo.examSubject == '3' ? 'pages/Roads' : 'pages/Judge',
params: {
@ -193,7 +196,7 @@ struct UserInfoPage {
this.stopDeviceById()
return
}
dConsole.log('this.FaceOpenStatuethis.FaceOpenStatue', this.FaceOpenStatue)
dConsole.log(StartExamTag, 'this.FaceOpenStatuethis.FaceOpenStatue', this.FaceOpenStatue)
if (this.FaceOpenStatue != '0') {
// 同一学员连续第二次考试时不再验证身份
if (this.currentUser.kssycs == '1' && this.systemParam.Param830Str == '1') {
@ -205,7 +208,7 @@ struct UserInfoPage {
this.sfbdinterfaceFn()
}
} catch (e) {
dConsole.info('Throw Error', JSON.stringify(e))
dConsole.error(UserInfoTag, 'Throw Error', JSON.stringify(e))
}
}
@ -292,7 +295,7 @@ struct UserInfoPage {
// TODO UDP更改
//监听远程开始考试
JudgeEmitterInstance.onBeginExam(async () => {
dConsole.info('surenjun', 'userInfo收到UdpEvent事件')
dConsole.log('surenjun', 'userInfo收到UdpEvent事件')
if (this.isBoardPrePareSetPopupOpen && !this.isFirstBoardPrePareSetPopupBtnShow) {
await this.prePareSCZB()
} else {
@ -315,7 +318,7 @@ struct UserInfoPage {
if (ret == 0) {
testNapi.StartReadCard(this.onReadCard);
} else {
dConsole.error("zzctest Failed to Open Device");
dConsole.error(UserInfoTag, " Failed to Open Device");
}
}
@ -380,7 +383,7 @@ struct UserInfoPage {
}
onReadCard(ret: IDCardSDK.IDCardInfo) {
dConsole.info(`zzctest xx Read Card ret =${ret.status}`)
dConsole.log(`zzctest xx Read Card ret =${ret.status}`)
let thisVar: IdCard = AppStorage.get('indexComponent')!;
if (ret.status == 0) { // status = 1 为读到身份证信息; status = 1 为身份证离开读卡器
@ -399,10 +402,10 @@ struct UserInfoPage {
if (ret.baseInfo.length > 2) {
// 收到身份证信息,填充页面
dConsole.info(`zzctest Read Card 1`);
dConsole.log(`zzctest Read Card 1`);
let subIndex = ret.baseInfo.indexOf(":")
let baseInfo: string = ret.baseInfo.substring(subIndex + 1, ret.baseInfo.length - 1);
dConsole.info(`zzctest Read Card 2 baseInfo=${baseInfo}`);
dConsole.log(`zzctest Read Card 2 baseInfo=${baseInfo}`);
let baseInfos: string[] = baseInfo.split("|");
thisVar.name = baseInfos[0];
thisVar.sex = baseInfos[1];
@ -418,7 +421,7 @@ struct UserInfoPage {
// 身份证照片数据处理
if (ret.photo instanceof ArrayBuffer) {
let dataView = new DataView(ret.photo)
dConsole.info(`Read Card ret = length = ${dataView.byteLength}`)
dConsole.log(`Read Card ret = length = ${dataView.byteLength}`)
let str = ""
for (let i = 0; i < dataView.byteLength; ++i) {
let c = String.fromCharCode(dataView.getUint8(i))
@ -428,7 +431,7 @@ struct UserInfoPage {
}
thisVar.photo += str;
}
dConsole.info(`zzctest Read Card end`);
dConsole.log(`zzctest Read Card end`);
return true;
}
@ -880,9 +883,9 @@ struct UserInfoPage {
this.startExamDialogController.open()
avPlayer.playAudio([`voice/监管通信中.mp3`], false, async () => {
dConsole.info('surenjun', '播放结束开始考试接口调用')
dConsole.log(StartExamTag, '播放结束开始考试接口调用')
const res = await this.beginExam()
dConsole.info('surenjun', '开始考试接口调用结束', JSON.stringify(res))
dConsole.log(StartExamTag, '开始考试接口调用结束', res)
//TODO code转换
if (res.code != 1) {
avPlayer.playAudio([res.code == -200 ? 'voice/photo_error.mp3' : 'voice/监管审核未通过.mp3']);
@ -895,12 +898,18 @@ struct UserInfoPage {
return
}
this.currentUser.id = '0'
// await upDateTableByArray('USER', [this.currentUser])
await SqlInsertTable('USER', [this.currentUser])
dConsole.log(StartExamTag, '插入用户表1')
try {
await SqlInsertTable('USER', [this.currentUser])
} catch (e) {
dConsole.error(StartExamTag, '插入用户表失败', e)
}
dConsole.log(StartExamTag, '插入用户表结束', res)
this.stepFlag = false
this.startExamDialogController.close()
// 初始化开始考试过程数据文件夹
InitializeExamProcessData(this.currentUser)
router.pushUrl({
url: 'pages/Judge',
params: {
@ -923,6 +932,7 @@ struct UserInfoPage {
const startHourTime = dayTs().format("HHmmssSSS")
AppStorage.setOrCreate('startHourTime', startHourTime)
const photoBase64 = await GetPhotoBase64(this.context);
dConsole.log(StartExamTag, "开始考试拍照完成")
if (photoBase64 == '') {
dConsole.log(StartExamTag, "拍照失败")
this.startExamDialogController.close()
@ -949,7 +959,7 @@ struct UserInfoPage {
//接口标识
jkid: '17C51',
}
dConsole.info('surenjunjianguan', JSON.stringify(param))
dConsole.log(StartExamTag, "开始考试上传中心参数", param)
const temp = await writeObjectOut(param, "", this.context);
AppStorage.setOrCreate('lsh', this.currentUser.lsh)
this.examinerLoginInfo.ksyh = this.currentUser.ksy1sfzmhm
@ -1136,6 +1146,7 @@ struct UserInfoPage {
dConsole.log(UserInfoTag, "不给开始考试")
return
}
dConsole.log(StartExamTag, "开始考试按钮点击")
await this.prePareExam()
})
}

View File

@ -15,8 +15,20 @@ export enum ColumnType {
}
class DbUtils {
private static instance: DbUtils | null = null;
rdbStore: relationalStore.RdbStore | undefined = undefined
private constructor() {
console.log(DbTag, "DbUtils instance created.");
}
public static getInstance(): DbUtils {
if (!DbUtils.instance) {
DbUtils.instance = new DbUtils();
}
return DbUtils.instance;
}
// 初始化 无需记录日志
init(context: common.UIAbilityContext) {
let config: relationalStore.StoreConfig = {
@ -27,6 +39,7 @@ class DbUtils {
relationalStore.getRdbStore(context, config)
.then(rdbStore => {
this.rdbStore = rdbStore
console.log(DbTag, "rdbStore:", JSON.stringify(rdbStore))
console.log(DbTag, "db rdbStore init success")
resolve()
})
@ -60,6 +73,7 @@ class DbUtils {
clearTable(tableName: string): Promise<void> {
let sql = `DELETE FROM ${tableName}`
return new Promise((resolve, reject) => {
console.log(DbTag, "sql clearTable", JSON.stringify(this.rdbStore))
if (this.rdbStore) {
this.rdbStore?.executeSql(sql).then(() => {
console.log(DbTag, "sql clearTable success", sql)
@ -242,6 +256,7 @@ class DbUtils {
}
}
let DB: DbUtils = new DbUtils()
// let DB: DbUtils = new DbUtils()
const DB: DbUtils = DbUtils.getInstance();
export default DB

View File

@ -70,6 +70,7 @@ function getDataFn(config: EnvironmentConfigurationType) {
// 需要观察
console.log(WorkerTag, "后置机消息", data)
const res = await SerialPortService.getData()
console.log(SerialPortTag, "档位原始数据", res)
if (res.length > 0) {
const dataArray = data.split(",");
// 替换data的第28位

View File

@ -1,13 +1,6 @@
import worker, { ErrorEvent, MessageEvents, ThreadWorkerGlobalScope } from '@ohos.worker';
import { GlobalConfig } from '../config';
import {
FileQueueType,
LogFileFd,
LogPathType,
LogWorkerMessage,
ProcessDataEnumType,
WorkerMessageType
} from '../model';
import { GlobalConfig, LogTag } from '../config';
import { FileQueueType, LogPathType, LogWorkerMessage, ProcessDataEnumType, WorkerMessageType } from '../model';
import { CreateDir, CreateFile, EditFile, IsExit } from '../utils/Common';
import dayTs from '../utils/Date';
import fs from '@ohos.file.fs';
@ -20,7 +13,7 @@ let fileFdArr: number[] = []
let writeQueue: Array<FileQueueType> = [];
let isProcessing = false;
workerPort.onmessage = (e: MessageEvents) => {
console.log("日志系统worker收到消息")
console.log(LogTag, "日志系统worker收到消息")
// 日志文件目录
let logPaths: LogPathType = {
log: `${GlobalConfig.commonFileWriteAddress}/logs/${dayTs().format("YYYY_MM_DD")}/log/log.log`,
@ -80,7 +73,7 @@ async function InitLog() {
// 初始化学员过程数据目录
async function InitExam(dirName: string) {
console.log("初始化过程", dirName)
console.log(LogTag, "初始化过程", dirName)
let date = dayTs().format("YYYY_MM_DD")
const path = `${GlobalConfig.commonFileWriteAddress}/logs/${date}/${dirName}`
const nameDirIsExit = await IsExit(path)
@ -90,7 +83,7 @@ async function InitExam(dirName: string) {
// 创建几个文件
fileNameArr.forEach(async (item: string, index: number) => {
let filePath = path + "/" + item
console.log("创建文件", filePath)
console.log(LogTag, "创建文件", filePath)
let result = await CreateFile(filePath)
fileFdArr[index] = result
})
@ -132,7 +125,6 @@ async function WriteProcessData(type: ProcessDataEnumType, data: string) {
} else {
writeQueue.push({ type, data });
}
if (!isProcessing) {
processQueue();
}
@ -153,7 +145,7 @@ function CloseProcessData() {
fileFdArr.forEach((item: number) => {
fs.closeSync(item)
})
console.log("关闭过程数据")
console.log(LogTag, "关闭过程数据")
}
workerPort.onmessageerror = (e: MessageEvents) => {