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) *