diff --git a/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java b/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java index 04152067..7212ee59 100644 --- a/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java +++ b/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java @@ -10,7 +10,7 @@ public interface RtcmClient { HttpResp config(@RequestParam(name = "deviceId") String deviceId, @RequestParam(name = "configuration") String configData); @PostMapping("/device_param_changed") - HttpResp deviceParamChanged(@RequestParam(name = "deviceId") String deviceId); + HttpResp deviceParamChanged(@RequestParam(name = "deviceId") String deviceId,@RequestParam(name = "oldParentId") String oldParentId); @PostMapping("/group_param_changed") HttpResp groupParamChanged(); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java index 9268fee8..b9003706 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D331RtcmMessageExecutor.java @@ -48,7 +48,7 @@ public class D331RtcmMessageExecutor implements Executor byte[] forwardBytes = message.getSrcData(); // 要求快速转发,因此用缓存,不要每次都查数据库 List deviceList = deviceService.findByParentId(id); - logger.debug("base station {} has {} rovers: ", message.getId(),deviceList.size()); + //logger.debug("base station {} has {} rovers: ", message.getId(),deviceList.size()); for (Device device : deviceList) { if (device.getOpMode() != GnssDevice.OP_MODE_USE) continue; String deviceId = device.getDeviceId(); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java index 88dd42de..43693fb0 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java @@ -57,11 +57,14 @@ public class LocalDeviceServiceImpl implements DeviceService { return device; } - public void refresh(String deviceId){ + public void refresh(String deviceId, String oldParentId){ Device device = deviceCache.getIfPresent(deviceId); if (device != null) { if(device.getParentId()!=null) { subDeviceCache.invalidate(device.getParentId()); + if(oldParentId!=null && !oldParentId.equals(device.getParentId())){ + subDeviceCache.invalidate(oldParentId); + } } deviceCache.invalidate(deviceId); } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java index 637b8008..544bbc0b 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java @@ -71,9 +71,9 @@ public class ApiController { } @PostMapping("/device_param_changed") - public HttpResp deviceParamChanged(String deviceId) { + public HttpResp deviceParamChanged(String deviceId, String oldParentId) { // 更新设备缓存 - localDeviceService.refresh(deviceId); + localDeviceService.refresh(deviceId, oldParentId); calcService.refreshDeviceCalc(deviceId); HttpResp resp = new HttpResp(); diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssDeviceController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssDeviceController.java index ef713be8..602902f8 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssDeviceController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssDeviceController.java @@ -200,7 +200,8 @@ public class GnssDeviceController extends BasicController{ } else { // 更新组参数的关联个数 updateBasicGroupAssociatedNum(device,old_device); - rtcmClient.deviceParamChanged(device.getDeviceid()); + rtcmClient.deviceParamChanged(device.getDeviceid(), + old_device==null?null:old_device.getParentid()); return HttpResult.ok(); } } @@ -293,7 +294,7 @@ public class GnssDeviceController extends BasicController{ if (num == 0) { return HttpResult.failed(); } else{ - rtcmClient.deviceParamChanged(del_id); + rtcmClient.deviceParamChanged(del_id, null); return HttpResult.ok(); } }