feat(ops): 新增 trigger_data 字段存储触发详情
- OpsOrderDO: 新增 triggerData 字段(JSON 字符串) - 存储触发时的详细信息: - 客流阈值:actualCount, baseValue, threshold, exceededCount - 蓝牙信标:rssi, beaconMac - 信号丢失:durationMs, timeoutSeconds - CleanOrderServiceImpl: 序列化 triggerData 到 JSON 存储 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -140,6 +140,15 @@ public class OpsOrderDO extends BaseDO {
|
||||
* 触发设备Key(冗余,便于查询)
|
||||
*/
|
||||
private String triggerDeviceKey;
|
||||
/**
|
||||
* 触发数据(JSON 格式)
|
||||
* <p>
|
||||
* 存储触发时的详细信息:
|
||||
* - 客流阈值:{"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)
|
||||
* <p>
|
||||
|
||||
Reference in New Issue
Block a user