diff --git a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRoiServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRoiServiceImpl.java index 5821a4f58..05467456a 100644 --- a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRoiServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRoiServiceImpl.java @@ -61,7 +61,10 @@ public class AiRoiServiceImpl implements IAiRoiService { } } - if (roi.getId() != null && roi.getId() > 0) { + boolean isUpdate = roi.getId() != null && roi.getId() > 0; + String cameraId = roi.getCameraId(); + + if (isUpdate) { AiRoi old = roiMapper.queryById(roi.getId()); roiMapper.update(roi); configLogService.addLog("ROI", roi.getRoiId(), toJson(old), toJson(roi), null); @@ -79,6 +82,16 @@ public class AiRoiServiceImpl implements IAiRoiService { roiMapper.add(roi); configLogService.addLog("ROI", roi.getRoiId(), null, toJson(roi), null); } + + // 推送配置到 Edge(新增/更新操作) + if (cameraId != null) { + try { + redisConfigService.writeDeviceAggregatedConfig(cameraId, "UPDATE"); + log.info("[AiRoi] {}ROI后推送配置到Edge,camera_id={}", isUpdate ? "更新" : "新增", cameraId); + } catch (Exception e) { + log.error("[AiRoi] {}ROI后推送配置失败,camera_id={}", isUpdate ? "更新" : "新增", cameraId, e); + } + } } /** @@ -178,6 +191,20 @@ public class AiRoiServiceImpl implements IAiRoiService { bind.setUpdateTime(now); bindMapper.add(bind); configLogService.addLog("BIND", bind.getBindId(), null, toJson(bind), null); + + // 推送配置到 Edge(绑定算法) + String roiId = bind.getRoiId(); + if (roiId != null) { + AiRoi roi = roiMapper.queryByRoiId(roiId); + if (roi != null && roi.getCameraId() != null) { + try { + redisConfigService.writeDeviceAggregatedConfig(roi.getCameraId(), "UPDATE"); + log.info("[AiRoi] 绑定算法后推送配置到Edge,camera_id={}, algo={}", roi.getCameraId(), bind.getAlgoCode()); + } catch (Exception e) { + log.error("[AiRoi] 绑定算法后推送配置失败,camera_id={}", roi.getCameraId(), e); + } + } + } } @Override @@ -214,6 +241,20 @@ public class AiRoiServiceImpl implements IAiRoiService { bind.setUpdateTime(now); bindMapper.updateByBindId(bind); configLogService.addLog("BIND", bind.getBindId(), toJson(old), toJson(bind), null); + + // 推送配置到 Edge(更新算法参数) + String roiId = old.getRoiId(); + if (roiId != null) { + AiRoi roi = roiMapper.queryByRoiId(roiId); + if (roi != null && roi.getCameraId() != null) { + try { + redisConfigService.writeDeviceAggregatedConfig(roi.getCameraId(), "UPDATE"); + log.info("[AiRoi] 更新算法参数后推送配置到Edge,camera_id={}, bind_id={}", roi.getCameraId(), bind.getBindId()); + } catch (Exception e) { + log.error("[AiRoi] 更新算法参数后推送配置失败,camera_id={}", roi.getCameraId(), e); + } + } + } } private String toJson(Object obj) {