From cd40c6f6f3a6138cb70b2e2d017cc7f34a887ef8 Mon Sep 17 00:00:00 2001
From: lgq <1015864684@qq.com>
Date: 星期五, 17 四月 2026 13:59:49 +0800
Subject: [PATCH] 1.更新vf107代码,更新自动上报通行记录接口、人员查询接口、人员添加接口
---
vf107/src/worker/passRecordWorker.js | 78 ++++++++++++++++++++++++++++++++-------
1 files changed, 64 insertions(+), 14 deletions(-)
diff --git a/vf107/src/worker/passRecordWorker.js b/vf107/src/worker/passRecordWorker.js
index 5c7f693..df0ecd3 100644
--- a/vf107/src/worker/passRecordWorker.js
+++ b/vf107/src/worker/passRecordWorker.js
@@ -12,7 +12,7 @@
*
* 鑱岃矗锛�
* - 甯搁┗杩愯锛屽彧瑕� MQTT 杩炴帴灏辨寔缁笂鎶�
- * - 姣忔鍔犺浇鎵�鏈夋湭鍒犻櫎鐨勯�氳璁板綍锛坉1_pass_record锛�
+ * - 姣忔鍔犺浇鎵�鏈夋湭涓婃姤鐨勯�氳璁板綍锛坉1_pass_record锛�
* - 姣忛殧 5 绉掍笂鎶ヤ竴鏉�
* - 鍙戝畬褰撳墠鎵规鍚庯紝鑷姩閲嶆柊鍔犺浇鏈�鏂拌褰�
*/
@@ -29,10 +29,12 @@
return mqtt_map.get("MQTT_STATUS") === "connected"
}
-// 鍔犺浇鏂版壒娆★細鏌ヨ鎵�鏈夋湭鍒犻櫎鐨勮褰曪紙鎸夋椂闂村崌搴忥級
+// 鍔犺浇鏂版壒娆★細鏌ヨ鎵�鏈夋湭鍒犻櫎涓旀湭涓婃姤鐨勮褰曪紙鎸夋椂闂村崌搴忥級
function loadNewBatch() {
try {
- currentBatch = sqliteService.d1_pass_record.findAllOrderByTimeStampAsc()
+ let sql = `SELECT * FROM d1_pass_record WHERE reported = 0 OR reported IS NULL ORDER BY timeStamp ASC`
+ let result = sqliteService.select(sql)
+ currentBatch = result || []
currentIndex = 0
} catch (err) {
logger.error("[passRecordWorker] Failed to load batch:", err)
@@ -59,29 +61,70 @@
return
}
let extra = record.extra ? JSON.parse(record.extra) : ""
+ let extra2 = record.extra2 ? JSON.parse(record.extra2) : ""
let accessRecord = {
- userId: record.userId,
- type: record.type,
- result: record.result,
- name: extra && extra.name ? extra.name : "",
- timeStamp: record.timeStamp,
- extra: {},
- error: record.message
+ timeStamp: mqttService.timestampToDateString(record.timeStamp || 0),
+ result: record.result || 0,
+ error: record.message || "",
+ // permissionId: record.permissionId || "", // TODO
+ door: config.get("houseName") || "",
+ users: [
+ {
+ userId: record.userId || "",
+ name: extra && extra.name ? extra.name : "",
+ userType: extra && extra.type ? extra.type : 0,
+ accessType: extra && extra.accessType !== undefined ? extra.accessType : "",
+ card: extra && extra.card ? extra.card : "",
+ face: extra && extra.face ? extra.face : "",
+ finge: extra && extra.finge ? extra.finge : ""
+ }
+ ]
}
+
+ // 濡傛灉鏄弻浜鸿璇侊紝娣诲姞绗簩涓敤鎴蜂俊鎭�
+ if (record.userId2) {
+ let secondUser = {
+ userId: record.userId2 || "",
+ name: extra2 && extra2.name ? extra2.name : "",
+ userType: extra2 && extra2.type ? extra2.type : 0,
+ accessType: extra2 && extra2.accessType !== undefined ? extra2.accessType : "",
+ card: extra2 && extra2.card ? extra2.card : "",
+ face: extra2 && extra2.face ? extra2.face : "",
+ finge: extra2 && extra2.finge ? extra2.finge : ""
+ }
+ // 鏍规嵁璁よ瘉绫诲瀷娣诲姞鐩稿簲鐨勮璇佷俊鎭�
+ if (extra2 && extra2.accessType == 200 && extra2.card) {
+ secondUser.card = extra2.card
+ } else if (extra2 && extra2.accessType == 300) {
+ // 浜鸿劯璁よ瘉锛宖ace瀛楁鍙互鐣欑┖鎴栨坊鍔犵浉搴斾俊鎭�
+ } else if (extra2 && extra2.accessType == 500) {
+ // 鎸囩汗璁よ瘉锛宖inge瀛楁鍙互鐣欑┖鎴栨坊鍔犵浉搴斾俊鎭�
+ }
+ accessRecord.users.push(secondUser)
+ }
+
if (record.type == 300) {
- if (std.exist(record.code) && config.get("access.uploadToCloud")) {
- accessRecord.code = dxCommonUtils.fs.fileToBase64(record.code)
+ if (std.exist(record.code)) {
+ // 浜鸿劯璁よ瘉锛屽皢鍥剧墖杞崲涓篵ase64濉厖鍒癴ace瀛楁
+ accessRecord.users[0].face = dxCommonUtils.fs.fileToBase64(record.code)
if (currentIndex > 0) {
currentBatch[currentIndex - 1].code = ""
}
} else {
- accessRecord.code = ""
+ accessRecord.users[0].face = ""
+ }
+
+ // 濡傛灉鏈夌浜屼釜鐢ㄦ埛鐨勪簩缁寸爜
+ if (record.code2) {
+ accessRecord.users[1] = accessRecord.users[1] || {}
+ accessRecord.users[1].code = record.code2
}
}
// 鍙戦��
try {
+ const sn = config.get("sys.sn") || "default"
driver.mqtt.send(
- "access_device/v2/event/access",
+ `access_device/v2/event/${sn}/access`,
JSON.stringify(
mqttService.mqttReply(
record.id,
@@ -90,6 +133,13 @@
)
)
)
+ // 鏍囪璁板綍涓哄凡涓婃姤
+ try {
+ let updateSql = `UPDATE d1_pass_record SET reported = 1 WHERE id = '${record.id}'`
+ sqliteService.exec(updateSql)
+ } catch (updateErr) {
+ logger.error("[passRecordWorker] Failed to update reported status for record", record.id, updateErr)
+ }
} catch (e) {
logger.error("[passRecordWorker] Send failed for record", record.id, e)
}
--
Gitblit v1.9.3