Compare commits

..

No commits in common. "883807298bfca15a196d6c3008b4e8b6aeb14afe" and "f03ace7f04bf25f826db32dae350edcba441a103" have entirely different histories.

12 changed files with 34 additions and 58 deletions

View File

@ -1,2 +1,2 @@
gitLog: gitLog:
git log --since="2025-06-30 17:14" --until="2025-07-2 17:35" --pretty=format:"<details>%n <summary>%s</summary>%n <span style=\"color: #888;\">[提交人]:</span><span style=\"color: #333;\">%an</span><br>%n <span style=\"color: #888;\">[提交时间]:</span><span style=\"color: #333;\">%ad</span><br>%n <span style=\"color: #888;\">[提交版本]:</span><span style=\"color: #333;\">%h</span>%n</details>%n" --date=format:"%Y-%m-%d %H:%M" > release_note.md git log --since="2025-06-30 17:14" --until="2025-07-1 17:14" --pretty=format:"<details>%n <summary>%s</summary>%n <span style=\"color: #888;\">[提交人]:</span><span style=\"color: #333;\">%an</span><br>%n <span style=\"color: #888;\">[提交时间]:</span><span style=\"color: #333;\">%ad</span><br>%n <span style=\"color: #888;\">[提交版本]:</span><span style=\"color: #333;\">%h</span>%n</details>%n" --date=format:"%Y-%m-%d %H:%M" > release_note.md

View File

@ -65,6 +65,3 @@ export const UserInfoTag = '[UserInfo]';
//SignDisplay //SignDisplay
export const SignDisplayTag = '[SignDisplay]'; export const SignDisplayTag = '[SignDisplay]';
//开始考试
export const StartExamTag = '[StartExam]'

View File

@ -59,6 +59,8 @@ import { InitMapPoint, InitMapPointItem } from './Judge/TableUtils';
@Entry @Entry
@Component @Component
struct JudgePage { struct JudgePage {
scroller: Scroller = new Scroller()
//页面通用字体大小
@State wayno: number = 0 @State wayno: number = 0
@State isDdxk: boolean = false; @State isDdxk: boolean = false;
//开始时间 //开始时间
@ -195,7 +197,6 @@ struct JudgePage {
}) })
async aboutToDisappear() { async aboutToDisappear() {
this.generateExamRecordsDialogController.close()
clearInterval(this.mileageTimer) clearInterval(this.mileageTimer)
} }
@ -217,6 +218,7 @@ struct JudgePage {
//初始化相关数据库表 //初始化相关数据库表
async initDb() { async initDb() {
this.examSubject = this.carInfo.examSubject!; this.examSubject = this.carInfo.examSubject!;
// const { isTrajectoryOpen, trajectoryPath } = judgeConfig
await this.initStudent(); await this.initStudent();
await this.initCar(); await this.initCar();
@ -306,6 +308,8 @@ struct JudgePage {
}) })
} }
// 考试项目是否全部完成
// 获取sysset表信息 // 获取sysset表信息
async initSysset(sysset?: SYSSET[]) { async initSysset(sysset?: SYSSET[]) {
const syssetParams: SYSSET[] | MASYSSETTableType[] = sysset || await GetSyncData<MASYSSETTableType>('MA_SYSSET') const syssetParams: SYSSET[] | MASYSSETTableType[] = sysset || await GetSyncData<MASYSSETTableType>('MA_SYSSET')
@ -753,11 +757,11 @@ struct JudgePage {
this.isDeductedPopShow = false; this.isDeductedPopShow = false;
this.defaultTabIndex = 0; this.defaultTabIndex = 0;
}, },
confirmMark: async (item: string, serial: string) => { confirmMark: async (itemno: string, serial: string) => {
clearTimeout(this.popTimer) clearTimeout(this.popTimer)
this.popTimer = setTimeout(async () => { this.popTimer = setTimeout(async () => {
const judge = this.judge const judge = this.judge
await judge.setJudgeMark(item, serial); await judge.setJudgeMark(itemno, serial);
this.isDeductedPopShow = false this.isDeductedPopShow = false
this.popTimer = null; this.popTimer = null;
}, 500) }, 500)

View File

@ -35,7 +35,6 @@ export async function examJudgeSetLogCallback(level: number, handleLog: Function
* @desc评判初始化 * @desc评判初始化
*/ */
export async function examJudgeInit(data: JudgeInitObj) { export async function examJudgeInit(data: JudgeInitObj) {
const str = JSON.stringify(data); const str = JSON.stringify(data);
const temp: number = libJudgeSdk.examJudgeInit(str, str.length); const temp: number = libJudgeSdk.examJudgeInit(str, str.length);
return await handle(temp, 'examJudgeInit') return await handle(temp, 'examJudgeInit')

View File

@ -41,7 +41,7 @@ import { GetCurrentTime, NumberToByteArray } from '../utils/Common';
import DB from '../utils/DbSql'; import DB from '../utils/DbSql';
import { CenterUDPBusinessInstance } from '../utils/business/CenterUdpBusiness'; import { CenterUDPBusinessInstance } from '../utils/business/CenterUdpBusiness';
import { JudgeEmitterInstance } from '../utils/business/UdpEvent'; import { JudgeEmitterInstance } from '../utils/business/UdpEvent';
import { JudgeConfig, StartExamTag } from '../config'; import { JudgeConfig } from '../config';
import { dConsole } from '../utils/LogWorker'; import { dConsole } from '../utils/LogWorker';
import HeaderComponent from './compontents/Header'; import HeaderComponent from './compontents/Header';
import AvatarComponent from './UserInfo/Avatar'; import AvatarComponent from './UserInfo/Avatar';
@ -997,12 +997,10 @@ struct UserInfoPage {
// 开始考试 // 开始考试
async beginExam(): Promise<BeginExamRequest> { async beginExam(): Promise<BeginExamRequest> {
dConsole.log(StartExamTag, "开始考试")
const startHourTime = dayTs().format("HHmmssSSS") const startHourTime = dayTs().format("HHmmssSSS")
AppStorage.setOrCreate('startHourTime', startHourTime) AppStorage.setOrCreate('startHourTime', startHourTime)
const photoBase64 = await this.getPhoto(); const photoBase64 = await this.getPhoto();
if (photoBase64 == '') { if (photoBase64 == '') {
dConsole.log(StartExamTag, "拍照失败")
this.startExamDialogController.close() this.startExamDialogController.close()
return { code: -200 } return { code: -200 }
} }
@ -1018,7 +1016,6 @@ struct UserInfoPage {
kchp: decodeURI(this.carInfo.plateNo || ""), kchp: decodeURI(this.carInfo.plateNo || ""),
Ksy2sfzmhm: this.currentUser.ksy2sfzmhm || '' Ksy2sfzmhm: this.currentUser.ksy2sfzmhm || ''
} }
dConsole.log(StartExamTag, "开始考试参数", drvexam)
const param: RegulatoryInterfaceParams = { const param: RegulatoryInterfaceParams = {
drvexam, drvexam,
xtlb: '17', xtlb: '17',

View File

@ -34,7 +34,7 @@ export default struct DeductedPopup {
} }
aboutToAppear() { aboutToAppear() {
this.universalMarkRules = this.markRules.filter(item => (this.currentItems.includes((item.itemno || 0).toString()) || this.universalMarkRules = this.markRules.filter(item => (this.currentItems.includes((item.itemno||0).toString()) ||
this.currentItems.includes(item.itemno + ''))); this.currentItems.includes(item.itemno + '')));
this.currentIndex = this.defaultTabIndex this.currentIndex = this.defaultTabIndex
if (this.currentIndex == 1) { if (this.currentIndex == 1) {
@ -45,7 +45,7 @@ export default struct DeductedPopup {
changeCurrentItems() { changeCurrentItems() {
if (this.currentItems?.length && (this.currentItems?.length >= this.preCurrentItemsLength)) { if (this.currentItems?.length && (this.currentItems?.length >= this.preCurrentItemsLength)) {
this.universalMarkRules = this.markRules.filter(item => (this.currentItems.includes((item.itemno || 0).toString()) || this.universalMarkRules = this.markRules.filter(item => (this.currentItems.includes((item.itemno||0).toString()) ||
this.currentItems.includes(item.itemno + ''))); this.currentItems.includes(item.itemno + '')));
this.currentIndex = this.defaultTabIndex this.currentIndex = this.defaultTabIndex
if (this.currentIndex == 1) { if (this.currentIndex == 1) {
@ -84,6 +84,7 @@ export default struct DeductedPopup {
//获取当前页的数据 //获取当前页的数据
getCurrentMarkRuleList() { getCurrentMarkRuleList() {
// const { currentIndex, currentUniversalPageIndex, currentPageIndex, markRules, universalMarkRules } = this;
if (this.currentIndex) { if (this.currentIndex) {
//通用评判 //通用评判
return this.universalMarkRules.slice(this.currentUniversalPageIndex * 7, (this.currentUniversalPageIndex + 1) * 7) return this.universalMarkRules.slice(this.currentUniversalPageIndex * 7, (this.currentUniversalPageIndex + 1) * 7)
@ -119,7 +120,7 @@ export default struct DeductedPopup {
this.universalMarkRules = this.markRules.filter(item => item.itemno == 20) this.universalMarkRules = this.markRules.filter(item => item.itemno == 20)
} else { } else {
this.universalMarkRules = this.universalMarkRules =
this.markRules.filter(item => (this.currentItems.includes((item.itemno || 0).toString()) || this.markRules.filter(item => (this.currentItems.includes((item.itemno||0).toString()) ||
this.currentItems.includes(item.itemno + ''))) this.currentItems.includes(item.itemno + '')))
} }
}) })
@ -248,6 +249,6 @@ export default struct DeductedPopup {
private closePopup: Function = () => { private closePopup: Function = () => {
} }
private confirmMark: Function = (item: number, serial: string) => { private confirmMark: Function = (itemno: number, serial: string) => {
} }
} }

View File

@ -1898,7 +1898,6 @@ export default class Judge {
// await fileLog?.setExamJudgeData(JSON.stringify(initInfo)) // await fileLog?.setExamJudgeData(JSON.stringify(initInfo))
//相关评判初始化只做一次 //相关评判初始化只做一次
if (!isJudgeInitBool) { if (!isJudgeInitBool) {
dConsole.log(JudgeTag, "评判初始化参数", initInfo)
const tempJudge = await examJudgeInit(initInfo); const tempJudge = await examJudgeInit(initInfo);
AppStorage.setOrCreate('isJudgeInitBool', true) AppStorage.setOrCreate('isJudgeInitBool', true)
dConsole.info(JudgeTag, '4.评判初始化完成') dConsole.info(JudgeTag, '4.评判初始化完成')

View File

@ -91,9 +91,8 @@ class logWorker {
// 处理长消息分割和记录 // 处理长消息分割和记录
private logLongMessage(level: 'log' | 'info' | 'error', message: string): void { private logLongMessage(level: 'log' | 'info' | 'error', message: string): void {
const chunks = this.splitLongMessage(message); const chunks = this.splitLongMessage(message);
const chunkId = Math.random().toString(36).substring(2, 8); // 生成简短随机ID
chunks.forEach((chunk, index) => { chunks.forEach((chunk, index) => {
this.logConsole(level, `${LOG_CHUNK_PREFIX} ${index + 1}/${chunks.length} [${chunkId}]] ${chunk}`); this.logConsole(level, `${LOG_CHUNK_PREFIX} ${index + 1}/${chunks.length}] ${chunk}`);
}); });
} }

View File

@ -133,7 +133,7 @@ export default function Request<T extends RequestResult>(options: RequestOption)
extraData: options.xml ? options.data : JSON.stringify(options.data), extraData: options.xml ? options.data : JSON.stringify(options.data),
readTimeout: options.timeout || 30 * 1000 readTimeout: options.timeout || 30 * 1000
}).then(async data => { }).then(async data => {
console.log(RequestTag, baseURL, options.url, "返回的数据", JSON.stringify(data)) console.log(RequestTag, options.url, "返回的数据", JSON.stringify(data))
// let result = options.xml ? xmlToJSON(data.result as string) : data.result // let result = options.xml ? xmlToJSON(data.result as string) : data.result
let result = options.xml ? (options.accept ? data.result : xmlToJSON(data.result as string)) : data.result; let result = options.xml ? (options.accept ? data.result : xmlToJSON(data.result as string)) : data.result;
console.log("结束xml解析") console.log("结束xml解析")

View File

@ -117,7 +117,7 @@ export default class TcpClient {
return this.tcp?.send({ return this.tcp?.send({
data data
}).catch(async (err: BusinessError) => { }).catch(async (err: BusinessError) => {
console.log(TCPTag, 'sendMsg error:', JSON.stringify(err), this.oppositeIp, this.oppositeIpPort) console.log(TCPTag, 'sendMsg error:', JSON.stringify(err))
this.tcpSendNum++ this.tcpSendNum++
if (this.tcpSendNum > 10) { if (this.tcpSendNum > 10) {
this.tcpSendNum = 0 this.tcpSendNum = 0

View File

@ -12,6 +12,9 @@ class differentialAndSignal {
// 初始化Worker // 初始化Worker
init() { init() {
if (this.workerInstance) {
this.close();
}
this.workerInstance = new worker.ThreadWorker("entry/ets/workers/DifferentialCorrection.ets"); this.workerInstance = new worker.ThreadWorker("entry/ets/workers/DifferentialCorrection.ets");
let config: EnvironmentConfigurationType = let config: EnvironmentConfigurationType =
AppStorage.get<EnvironmentConfigurationType>("EnvironmentConfiguration") || { AppStorage.get<EnvironmentConfigurationType>("EnvironmentConfiguration") || {
@ -52,15 +55,20 @@ class differentialAndSignal {
// 关闭 // 关闭
close() { close() {
if (this.workerInstance) {
// 清空所有监听器
this.events = []; this.events = [];
const config: EnvironmentConfigurationType = AppStorage.get<EnvironmentConfigurationType>("EnvironmentConfiguration") || {
} // 发送关闭消息
const config = AppStorage.get<EnvironmentConfigurationType>("EnvironmentConfiguration") || {};
this.workerInstance.postMessage(JSON.stringify({ this.workerInstance.postMessage(JSON.stringify({
config: config, config: config,
close: true close: true
})); }));
// 关闭线程 // 关闭线程
this.workerInstance.terminate() this.workerInstance.terminate();
}
} }
// 获取Worker消息 // 获取Worker消息

View File

@ -1,31 +1,3 @@
<details>
<summary>fix: 优化首页获取车辆后才可以进入联网以及单机逻辑</summary>
<span style="color: #888;">[提交人]:</span><span style="color: #333;">wangzhongjie</span><br>
<span style="color: #888;">[提交时间]:</span><span style="color: #333;">2025-07-02 17:34</span><br>
<span style="color: #888;">[提交版本]:</span><span style="color: #333;">f03ace7</span>
</details>
<details>
<summary>fix: 评判代码抽离优化</summary>
<span style="color: #888;">[提交人]:</span><span style="color: #333;">wangzhongjie</span><br>
<span style="color: #888;">[提交时间]:</span><span style="color: #333;">2025-07-02 15:53</span><br>
<span style="color: #888;">[提交版本]:</span><span style="color: #333;">b0692d3</span>
</details>
<details>
<summary>fix: 评判页面结构优化</summary>
<span style="color: #888;">[提交人]:</span><span style="color: #333;">wangzhongjie</span><br>
<span style="color: #888;">[提交时间]:</span><span style="color: #333;">2025-07-02 10:41</span><br>
<span style="color: #888;">[提交版本]:</span><span style="color: #333;">98813fe</span>
</details>
<details>
<summary>fix: 结束考试问题修复</summary>
<span style="color: #888;">[提交人]:</span><span style="color: #333;">wangzhongjie</span><br>
<span style="color: #888;">[提交时间]:</span><span style="color: #333;">2025-07-01 17:51</span><br>
<span style="color: #888;">[提交版本]:</span><span style="color: #333;">b2b7950</span>
</details>
<details> <details>
<summary>fix: 评判日志</summary> <summary>fix: 评判日志</summary>
<span style="color: #888;">[提交人]:</span><span style="color: #333;">wangzhongjie</span><br> <span style="color: #888;">[提交人]:</span><span style="color: #333;">wangzhongjie</span><br>