From 767449dec4cdc72c1b2340577f4925a97fcb72c7 Mon Sep 17 00:00:00 2001 From: lzh Date: Tue, 27 Jan 2026 12:04:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E6=96=B0=E5=A2=9E=20trigger=5Fdat?= =?UTF-8?q?a=20=E5=AD=97=E6=AE=B5=E5=AD=98=E5=82=A8=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - OpsOrderDO: 新增 triggerData 字段(JSON 字符串) - 存储触发时的详细信息: - 客流阈值:actualCount, baseValue, threshold, exceededCount - 蓝牙信标:rssi, beaconMac - 信号丢失:durationMs, timeoutSeconds - CleanOrderServiceImpl: 序列化 triggerData 到 JSON 存储 Co-Authored-By: Claude Sonnet 4.5 --- .../cleanorder/CleanOrderServiceImpl.java | 21 ++++++++++++++++--- .../dal/dataobject/workorder/OpsOrderDO.java | 9 ++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/service/cleanorder/CleanOrderServiceImpl.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/service/cleanorder/CleanOrderServiceImpl.java index cec7bec..40a0434 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/service/cleanorder/CleanOrderServiceImpl.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/service/cleanorder/CleanOrderServiceImpl.java @@ -19,6 +19,7 @@ import com.viewsh.module.ops.environment.dal.mysql.workorder.OpsOrderCleanExtMap import com.viewsh.module.ops.environment.integration.listener.CleanOrderEventListener; import com.viewsh.module.ops.infrastructure.code.OrderCodeGenerator; import com.viewsh.module.ops.infrastructure.id.OrderIdGenerator; +import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -75,6 +76,9 @@ public class CleanOrderServiceImpl implements CleanOrderService { @Resource private CleanOrderEventListener cleanOrderEventListener; + @Resource + private ObjectMapper objectMapper; + // ==================== 工单创建 ==================== @Override @@ -85,7 +89,7 @@ public class CleanOrderServiceImpl implements CleanOrderService { String orderCode = orderCodeGenerator.generate("CLEAN"); // 2. 构建主表数据 - OpsOrderDO order = OpsOrderDO.builder() + OpsOrderDO.OpsOrderDOBuilder orderBuilder = OpsOrderDO.builder() .id(orderId) .orderCode(orderCode) .orderType("CLEAN") @@ -100,8 +104,19 @@ public class CleanOrderServiceImpl implements CleanOrderService { .triggerSource(createReq.getTriggerSource()) .triggerRuleId(createReq.getTriggerRuleId()) .triggerDeviceId(createReq.getTriggerDeviceId()) - .triggerDeviceKey(createReq.getTriggerDeviceKey()) - .build(); + .triggerDeviceKey(createReq.getTriggerDeviceKey()); + + // 触发数据(JSON 字符串) + if (createReq.getTriggerData() != null && !createReq.getTriggerData().isEmpty()) { + try { + String triggerDataJson = objectMapper.writeValueAsString(createReq.getTriggerData()); + orderBuilder.triggerData(triggerDataJson); + } catch (Exception e) { + log.warn("[createAutoCleanOrder] 序列化 triggerData 失败: orderId={}", orderId, e); + } + } + + OpsOrderDO order = orderBuilder.build(); // 3. 插入主表 opsOrderMapper.insert(order); diff --git a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/dal/dataobject/workorder/OpsOrderDO.java b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/dal/dataobject/workorder/OpsOrderDO.java index 3a78e02..ba8f2ad 100644 --- a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/dal/dataobject/workorder/OpsOrderDO.java +++ b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/dal/dataobject/workorder/OpsOrderDO.java @@ -140,6 +140,15 @@ public class OpsOrderDO extends BaseDO { * 触发设备Key(冗余,便于查询) */ private String triggerDeviceKey; + /** + * 触发数据(JSON 格式) + *

+ * 存储触发时的详细信息: + * - 客流阈值:{"actualCount":150,"baseValue":1000,"threshold":100,"exceededCount":50} + * - 蓝牙信标:{"rssi":-65,"beaconMac":"F0:C8:60:1D:10:BB"} + * - 信号丢失:{"durationMs":180000,"timeoutSeconds":300} + */ + private String triggerData; /** * 受理人工牌设备ID(关联 iot_device.id) *