|
|
@@ -61,23 +61,32 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
public String routerKey() {
|
|
|
|
|
|
StringJoiner result = new StringJoiner(",");
|
|
|
- //诊断绑定数据
|
|
|
+ //诊断绑定数据-主机上报事件
|
|
|
result.add(WebSocketConstants.CAMERA_MISSION_AND_THRESHOLD_EVENT);
|
|
|
+ //诊断绑定数据-平台调用服务
|
|
|
+ result.add(WebSocketConstants.GET_CAMERA_MISSION_AND_THRESHOLD_SERVICES);
|
|
|
return result.toString();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
|
|
public WebsocketResult execute(WebsocketExecuteReq req) {
|
|
|
- final JSONObject jsb = receiveAndUpdateMissionCamera(req);
|
|
|
+ String event = req.getEvent();
|
|
|
+ String msg;
|
|
|
+ if(event.equals(WebSocketConstants.CAMERA_MISSION_AND_THRESHOLD_EVENT)) {
|
|
|
+ msg = "主机上传诊断绑定";
|
|
|
+ }else{
|
|
|
+ msg = "平台获取诊断绑定Res";
|
|
|
+ }
|
|
|
+ final JSONObject jsb = receiveAndUpdateMissionCamera(msg,req);
|
|
|
return WebsocketResult.reply(req, jsb);
|
|
|
}
|
|
|
|
|
|
- private JSONObject receiveAndUpdateMissionCamera(WebsocketExecuteReq req) {
|
|
|
+ private JSONObject receiveAndUpdateMissionCamera(String msg,WebsocketExecuteReq req) {
|
|
|
try {
|
|
|
final String iotToken = req.getServerInfo().getIotCode();
|
|
|
final JSONObject param = JSON.parseObject(req.getData().toString(), JSONObject.class);
|
|
|
- LogUtils.STATUS_INFO_STATUS_SENSOR.info("主机上传诊断绑定:iotToken={}开始执行",iotToken);
|
|
|
+ LogUtils.STATUS_INFO_STATUS_SENSOR.info("{}:iotToken={}开始执行",msg,iotToken);
|
|
|
|
|
|
Set<String> iotCodes = Sets.newHashSet();
|
|
|
String deviceProduct,dvs,channel;
|
|
|
@@ -100,7 +109,7 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
if(!missionReq.getName().equals(bean.getName())){//规则一样,但名称不一样,治理该主机的诊断阈值(添加下发该主机IotToken同步)
|
|
|
missionReq.setName(bean.getName());
|
|
|
//todo:
|
|
|
- LogUtils.STATUS_INFO_STATUS_SENSOR.info("主机上传诊断绑定:治理的主机iotToken={},missionId={}",iotToken,missionReq.getMissionId());
|
|
|
+ LogUtils.STATUS_INFO_STATUS_SENSOR.info("{}:治理的主机iotToken={},missionId={}",msg,iotToken,missionReq.getMissionId());
|
|
|
iotCodes.add(iotToken);
|
|
|
}
|
|
|
missionMapper.updateById(missionReq);
|
|
|
@@ -115,7 +124,7 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
if(similarBean != null){
|
|
|
missionId = similarBean.getMissionId();
|
|
|
//todo:
|
|
|
- LogUtils.STATUS_INFO_STATUS_SENSOR.info("主机上传诊断绑定:治理的主机iotToken={},missionId={}",iotToken,missionReq.getMissionId());
|
|
|
+ LogUtils.STATUS_INFO_STATUS_SENSOR.info("{}:治理的主机iotToken={},missionId={}",msg,iotToken,missionReq.getMissionId());
|
|
|
iotCodes.add(iotToken);
|
|
|
}else{//未匹配到missionId,且名称或规则不一样
|
|
|
missionId = IDHelper.id().toString();
|
|
|
@@ -140,7 +149,7 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
equWrapper.last(limitOne);
|
|
|
IotDeviceInfo camera=iotDeviceInfoMapper.selectOne(equWrapper);
|
|
|
if(camera == null){
|
|
|
- LogUtils.STATUS_INFO_STATUS_SENSOR.error("主机上传诊断绑定:dvs={},channel={},未找到有效的摄像机基础信息(IotDeviceInfo)",dvs,channel);
|
|
|
+ LogUtils.STATUS_INFO_STATUS_SENSOR.error("{}:dvs={},channel={},未找到有效的摄像机基础信息(IotDeviceInfo)",msg,dvs,channel);
|
|
|
continue;
|
|
|
}
|
|
|
Long deviceId = camera.getId();
|
|
|
@@ -187,7 +196,7 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
thresholdReq.setThresholdName(newThresholdName);
|
|
|
|
|
|
//todo:
|
|
|
- LogUtils.STATUS_INFO_STATUS_SENSOR.info("主机上传诊断绑定:治理的主机iotToken={},thresholdCode={}",iotToken,thresholdReq.getThresholdCode());
|
|
|
+ LogUtils.STATUS_INFO_STATUS_SENSOR.info("{}:治理的主机iotToken={},thresholdCode={}",msg,iotToken,thresholdReq.getThresholdCode());
|
|
|
iotCodes.add(iotToken);
|
|
|
}
|
|
|
|
|
|
@@ -202,7 +211,7 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
if(!thresholdReq.getThresholdName().equals(bean.getThresholdName())){//规则一样,但名称不一样,治理该主机的诊断阈值(添加下发该主机IotToken同步)
|
|
|
thresholdReq.setThresholdName(bean.getThresholdName());
|
|
|
//todo:
|
|
|
- LogUtils.STATUS_INFO_STATUS_SENSOR.info("主机上传诊断绑定:治理的主机iotToken={},thresholdCode={}",iotToken,thresholdReq.getThresholdCode());
|
|
|
+ LogUtils.STATUS_INFO_STATUS_SENSOR.info("{}:治理的主机iotToken={},thresholdCode={}",msg,iotToken,thresholdReq.getThresholdCode());
|
|
|
iotCodes.add(iotToken);
|
|
|
}
|
|
|
thresholdMapper.updateById(thresholdReq);
|
|
|
@@ -223,7 +232,7 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
equWrapper.last(limitOne);
|
|
|
IotDeviceInfo camera=iotDeviceInfoMapper.selectOne(equWrapper);
|
|
|
if(camera == null){
|
|
|
- LogUtils.STATUS_INFO_STATUS_SENSOR.error("主机上传诊断绑定:dvs={},channel={},未找到有效的摄像机基础信息(IotDeviceInfo)",dvs,channel);
|
|
|
+ LogUtils.STATUS_INFO_STATUS_SENSOR.error("{}:dvs={},channel={},未找到有效的摄像机基础信息(IotDeviceInfo)",msg,dvs,channel);
|
|
|
continue;
|
|
|
}
|
|
|
Long deviceId = camera.getId();
|
|
|
@@ -254,7 +263,7 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
this.syncDiagnoseToHost(new ArrayList<>(iotCodes));
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
- LogUtils.STATUS_INFO_STATUS_SENSOR.info("主机上传诊断绑定: 处理出现异常{}", e);
|
|
|
+ LogUtils.STATUS_INFO_STATUS_SENSOR.error("{}: 处理出现异常{}",msg, e);
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
|
return WebsocketResult.getSuccessPayload();
|
|
|
@@ -318,4 +327,18 @@ public class IotCameraMissionRuleServiceImpl implements IotCameraMissionRuleServ
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void getCameraMissionRules(){
|
|
|
+ final String topic = TopicTypeEnums.formatUrl(TopicTypeEnums.PRODUCT_SERVICE_INVOKE.getUrl(), WebSocketConstants.DETECTION_HOST, WebSocketConstants.DETECTION_HOST_DEVICE);
|
|
|
+ final WebsocketResult result = WebsocketResult.invokeHostServer(topic, new JSONObject(), WebSocketConstants.GET_CAMERA_MISSION_AND_THRESHOLD_SERVICES, new JSONObject());
|
|
|
+ final Set<String> set = missionChMapper.selectIotTokensByCamera();
|
|
|
+ if (set.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ LogUtils.WEBSOCKET_MSG.info("平台获取诊断绑定Req:目标主机code={}", JSON.toJSONString(set));
|
|
|
+ for (String token : set) {
|
|
|
+ websocketService.sendMsgByTokens(result, token);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|