|
|
@@ -7,6 +7,7 @@ import com.xunmei.common.core.domain.iot.domain.IotAlarmDefenceArea;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotAlarmSubsystem;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
|
|
|
+import com.xunmei.common.core.utils.JacksonUtils;
|
|
|
import com.xunmei.common.core.utils.StringUtils;
|
|
|
import com.xunmei.common.redis.utils.RedisUtils;
|
|
|
import com.xunmei.mediator.api.protection.service.IotAlarmDefenceAreaService;
|
|
|
@@ -18,8 +19,8 @@ import com.xunmei.mediator.iot.service.IIotDeviceInfoService;
|
|
|
import com.xunmei.mediator.websocket.constant.WebSocketConstants;
|
|
|
import com.xunmei.mediator.websocket.dto.DeviceBaseInfo;
|
|
|
import com.xunmei.mediator.websocket.dto.WebsocketExecuteReq;
|
|
|
+import com.xunmei.mediator.websocket.dto.WebsocketResult;
|
|
|
import com.xunmei.mediator.websocket.dto.alarmHost.AlarmHostBaseInfo;
|
|
|
-import com.xunmei.mediator.websocket.dto.alarmHost.AlarmHostInfo;
|
|
|
import com.xunmei.mediator.websocket.dto.alarmHost.AlarmInputInfo;
|
|
|
import com.xunmei.mediator.websocket.dto.alarmHost.SubSystemInfo;
|
|
|
import com.xunmei.mediator.websocket.dto.dvs.ChannelInfo;
|
|
|
@@ -28,15 +29,13 @@ import com.xunmei.mediator.websocket.dto.dvs.DvsBaseInfo;
|
|
|
import com.xunmei.mediator.websocket.dto.dvs.DvsInfo;
|
|
|
import com.xunmei.mediator.websocket.enums.DeviceTypeEnum;
|
|
|
import com.xunmei.mediator.websocket.enums.ProductEnums;
|
|
|
+import com.xunmei.mediator.websocket.holder.WebSocketSessionHolder;
|
|
|
import com.xunmei.mediator.websocket.redis.WebsocketPublisher;
|
|
|
import com.xunmei.mediator.websocket.service.RouterService;
|
|
|
import com.xunmei.mediator.websocket.service.WebsocketService;
|
|
|
import com.xunmei.system.api.domain.iot.IotDeviceInfo;
|
|
|
import com.xunmei.system.api.domain.iot.IotDeviceInfoExtend;
|
|
|
import com.xunmei.system.api.domain.websocket.RedisWebsocketMsg;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.util.*;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
import org.redisson.api.RKeys;
|
|
|
import org.redisson.api.RLock;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
@@ -71,7 +70,6 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
private IotAlarmSubsystemService iotAlarmSubsystemService;
|
|
|
|
|
|
|
|
|
-
|
|
|
private static final String LOCK_DVS_ACCPET_KEY_PREFIX = "websocket:lock:base_info_dvs_";
|
|
|
|
|
|
private static final String LOCK_ALARM_HOST_ACCPET_KEY_PREFIX = "websocket:lock:base_info_alarm_host_";
|
|
|
@@ -82,6 +80,18 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
@Override
|
|
|
public void invokeBaseDeviceInfoForSchedule() {
|
|
|
|
|
|
+ WebsocketResult websocketResult = new WebsocketResult();
|
|
|
+ websocketResult.setId(UUID.randomUUID().toString());
|
|
|
+ websocketResult.setTimestamp(new Date());
|
|
|
+ HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
+ hashMap.put(WebSocketConstants.SERVICE, WebSocketConstants.GET_DEVICE_BASE_INFOS);
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
+ object.put("categories", Arrays.asList(WebSocketConstants.DVS, WebSocketConstants.ALARM_HOST));
|
|
|
+ hashMap.put(WebSocketConstants.ARGS, object);
|
|
|
+ websocketResult.setPayload(hashMap);
|
|
|
+ WebSocketSessionHolder.sendAll(JacksonUtils.toJSONString(websocketResult));
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -190,12 +200,11 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
*/
|
|
|
processDvsDevices(dvsBaseInfo.getDvsInfos(), serverInfo, token, addDvsList, updateDvsList, addListExtend, updateListExtend);
|
|
|
processChannelDevices(dvsBaseInfo.getChannelInfos(), serverInfo, token, addChnnelList, updateChnnelList);
|
|
|
- processDiskDevices(dvsBaseInfo.getDiskInfos(), serverInfo, token,addDiskList,updateDiskList);
|
|
|
-
|
|
|
+ processDiskDevices(dvsBaseInfo.getDiskInfos(), serverInfo, token, addDiskList, updateDiskList);
|
|
|
|
|
|
|
|
|
// 批量保存和更新设备信息
|
|
|
- saveOrUpdateDeviceBatches(addDvsList, updateDvsList,addChnnelList,updateChnnelList, addListExtend, updateListExtend, addDiskList,updateDiskList);
|
|
|
+ saveOrUpdateDeviceBatches(addDvsList, updateDvsList, addChnnelList, updateChnnelList, addListExtend, updateListExtend, addDiskList, updateDiskList);
|
|
|
|
|
|
|
|
|
} catch (Exception var8) {
|
|
|
@@ -208,37 +217,37 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void dealAlarmHostInfo(List<AlarmHostInfo> alarmHostInfos, String token) throws Exception {
|
|
|
+ public void dealBaseDeviceInfo(List<DeviceBaseInfo> alarmHostInfos, String token) throws Exception {
|
|
|
//添加分布式锁
|
|
|
String lockKey = LOCK_ALARM_HOST_ACCPET_KEY_PREFIX + token;
|
|
|
lockAndExecute(lockKey, () -> {
|
|
|
if (StringUtils.isEmpty(token) || alarmHostInfos.isEmpty()) {
|
|
|
- log.error("同步报警主机基础信息失败。原因:token或alarmHostInfos为空");
|
|
|
+ log.error("同步主机基础信息失败。原因:token或alarmHostInfos为空");
|
|
|
return;
|
|
|
}
|
|
|
try {
|
|
|
if (StringUtils.isEmpty(token)) {
|
|
|
- log.error("同步报警主机基础信息,token为null,同步数据失败!");
|
|
|
+ log.error("同步主机基础信息,token为null,同步数据失败!");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
IotServerInfo serverInfo = iotServerInfoService.selectByToken(token);
|
|
|
if (ObjectUtil.isEmpty(serverInfo)) {
|
|
|
- log.error("同步报警主机基础信息,token:{},获取机构信息未空,结束同步!", token);
|
|
|
+ log.error("同步主机基础信息,token:{},获取机构信息未空,结束同步!", token);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- //逻辑删除报警主机
|
|
|
- iIotDeviceInfoService.deleteAlarmHostDeviceByToken(token);
|
|
|
+ //逻辑删除主机
|
|
|
+ iIotDeviceInfoService.deleteAlarmHostAndDvsByToken(token);
|
|
|
|
|
|
//添加报警主机集合
|
|
|
- List<IotDeviceInfo> addAlarmHostList = new ArrayList();
|
|
|
+ List<IotDeviceInfo> addHostList = new ArrayList();
|
|
|
//更新报警主机集合
|
|
|
- List<IotDeviceInfo> updateAlarmHostList = new ArrayList();
|
|
|
+ List<IotDeviceInfo> updateHostList = new ArrayList();
|
|
|
|
|
|
- processAlarmHostDevices(alarmHostInfos,serverInfo,token,addAlarmHostList,updateAlarmHostList,null,null);
|
|
|
+ processHostDevices(alarmHostInfos, serverInfo, token, addHostList, updateHostList);
|
|
|
|
|
|
- saveOrUpdateAlarmHostBatches(addAlarmHostList,updateAlarmHostList,null,null);
|
|
|
+ saveOrUpdateHostBatches(addHostList, updateHostList);
|
|
|
|
|
|
|
|
|
} catch (Exception var8) {
|
|
|
@@ -283,10 +292,10 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
//更新子系统集合
|
|
|
List<IotAlarmDefenceArea> updateDefenceAreaList = new ArrayList();
|
|
|
|
|
|
- processSubSystem(alarmHostBaseInfo.getSubsystems(),serverInfo,token,addSubSystemList,updateSubSystemList);
|
|
|
- processDefenceArea(alarmHostBaseInfo.getInputs(),serverInfo,token,addDefenceAreaList,updateDefenceAreaList);
|
|
|
+ processSubSystem(alarmHostBaseInfo.getSubsystems(), serverInfo, token, addSubSystemList, updateSubSystemList);
|
|
|
+ processDefenceArea(alarmHostBaseInfo.getInputs(), serverInfo, token, addDefenceAreaList, updateDefenceAreaList);
|
|
|
|
|
|
- saveOrUpdateSubSystemAndDefenceAreaBatches(addSubSystemList,updateSubSystemList,addDefenceAreaList,updateDefenceAreaList);
|
|
|
+ saveOrUpdateSubSystemAndDefenceAreaBatches(addSubSystemList, updateSubSystemList, addDefenceAreaList, updateDefenceAreaList);
|
|
|
|
|
|
} catch (Exception var8) {
|
|
|
log.error("同步报警主机子系统和防区信息过程中出现异常", var8);
|
|
|
@@ -296,6 +305,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 批量保存和更新设备信息
|
|
|
+ *
|
|
|
* @param addList
|
|
|
* @param updateList
|
|
|
* @param addChnnelList
|
|
|
@@ -303,8 +313,8 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
* @param addListExtend
|
|
|
* @param updateListExtend
|
|
|
*/
|
|
|
- private void saveOrUpdateDeviceBatches(List<IotDeviceInfo> addList, List<IotDeviceInfo> updateList,List<IotDeviceInfo> addChnnelList, List<IotDeviceInfo> updateChnnelList,
|
|
|
- List<IotDeviceInfoExtend> addListExtend, List<IotDeviceInfoExtend> updateListExtend,List<IotDvrDisk> addDiskList,List<IotDvrDisk> updateDiskList) {
|
|
|
+ private void saveOrUpdateDeviceBatches(List<IotDeviceInfo> addList, List<IotDeviceInfo> updateList, List<IotDeviceInfo> addChnnelList, List<IotDeviceInfo> updateChnnelList,
|
|
|
+ List<IotDeviceInfoExtend> addListExtend, List<IotDeviceInfoExtend> updateListExtend, List<IotDvrDisk> addDiskList, List<IotDvrDisk> updateDiskList) {
|
|
|
if (!addList.isEmpty()) {
|
|
|
iIotDeviceInfoService.saveDvsDevice(addList);
|
|
|
}
|
|
|
@@ -312,11 +322,11 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
iIotDeviceInfoService.updateDvsDevice(updateList);
|
|
|
}
|
|
|
|
|
|
- if(!addChnnelList.isEmpty()){
|
|
|
+ if (!addChnnelList.isEmpty()) {
|
|
|
iIotDeviceInfoService.saveChannelDevice(addChnnelList);
|
|
|
}
|
|
|
|
|
|
- if(!updateChnnelList.isEmpty()){
|
|
|
+ if (!updateChnnelList.isEmpty()) {
|
|
|
iIotDeviceInfoService.updateChannelDevice(updateChnnelList);
|
|
|
}
|
|
|
|
|
|
@@ -329,11 +339,11 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
iIotDeviceInfoExtendService.updateIotDeviceExtends(updateListExtend);
|
|
|
}
|
|
|
|
|
|
- if(!addDiskList.isEmpty()){
|
|
|
+ if (!addDiskList.isEmpty()) {
|
|
|
iIotDvrDiskService.saveBatchDisks(addDiskList);
|
|
|
}
|
|
|
|
|
|
- if(!updateDiskList.isEmpty()){
|
|
|
+ if (!updateDiskList.isEmpty()) {
|
|
|
iIotDvrDiskService.updateBatchDisks(updateDiskList);
|
|
|
}
|
|
|
}
|
|
|
@@ -358,9 +368,9 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
if (info == null) {
|
|
|
info = createIotDeviceInfo(dvsInfo, serverInfo);
|
|
|
addList.add(info);
|
|
|
- addListExtend.add(createIotDeviceInfoExtend(dvsInfo, info.getId(),token));
|
|
|
+ addListExtend.add(createIotDeviceInfoExtend(dvsInfo, info.getId(), token));
|
|
|
} else {
|
|
|
- dealDvsInfo(dvsInfo, info,serverInfo);
|
|
|
+ dealDvsInfo(dvsInfo, info, serverInfo);
|
|
|
updateList.add(info);
|
|
|
IotDeviceInfoExtend extend = iIotDeviceInfoExtendService.selectByDeviceId(info.getId());
|
|
|
dealDvsExtend(dvsInfo, extend);
|
|
|
@@ -370,7 +380,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void dealDvsExtend(DvsInfo dvsInfo, IotDeviceInfoExtend extend){
|
|
|
+ private void dealDvsExtend(DvsInfo dvsInfo, IotDeviceInfoExtend extend) {
|
|
|
extend.setDeleted(0);
|
|
|
extend.setPort(dvsInfo.getPort());
|
|
|
extend.setPassword(dvsInfo.getPassword());
|
|
|
@@ -382,6 +392,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 更新数据
|
|
|
+ *
|
|
|
* @param dvsInfo
|
|
|
* @param info
|
|
|
*/
|
|
|
@@ -398,11 +409,12 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 构建扩展信息数据
|
|
|
+ *
|
|
|
* @param dvsInfo
|
|
|
* @param deviceId
|
|
|
* @return
|
|
|
*/
|
|
|
- private IotDeviceInfoExtend createIotDeviceInfoExtend(DvsInfo dvsInfo,Long deviceId,String token) {
|
|
|
+ private IotDeviceInfoExtend createIotDeviceInfoExtend(DvsInfo dvsInfo, Long deviceId, String token) {
|
|
|
IotDeviceInfoExtend extend = new IotDeviceInfoExtend();
|
|
|
extend.setDeviceId(deviceId);
|
|
|
extend.setPort(dvsInfo.getPort());
|
|
|
@@ -417,13 +429,15 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
extend.setUpdateTime(new Date());
|
|
|
return extend;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 构造设备信息
|
|
|
+ *
|
|
|
* @param dvsInfo
|
|
|
* @param serverInfo
|
|
|
* @return
|
|
|
*/
|
|
|
- private IotDeviceInfo createIotDeviceInfo(DvsInfo dvsInfo, IotServerInfo serverInfo){
|
|
|
+ private IotDeviceInfo createIotDeviceInfo(DvsInfo dvsInfo, IotServerInfo serverInfo) {
|
|
|
IotDeviceInfo info = new IotDeviceInfo();
|
|
|
long id = IdWorker.getId(info);
|
|
|
info.setDeleted(0);
|
|
|
@@ -447,6 +461,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 处理通道类设备
|
|
|
+ *
|
|
|
* @param channelInfos
|
|
|
* @param serverInfo
|
|
|
* @param token
|
|
|
@@ -463,7 +478,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
info = createChannelInfo(channelInfo, serverInfo);
|
|
|
addList.add(info);
|
|
|
} else {
|
|
|
- dealChannelDevice(channelInfo, info,serverInfo);
|
|
|
+ dealChannelDevice(channelInfo, info, serverInfo);
|
|
|
updateList.add(info);
|
|
|
}
|
|
|
}
|
|
|
@@ -472,10 +487,11 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 处理通道类设备更新
|
|
|
+ *
|
|
|
* @param channelInfo
|
|
|
* @param info
|
|
|
*/
|
|
|
- private void dealChannelDevice(ChannelInfo channelInfo, IotDeviceInfo info, IotServerInfo serverInfo){
|
|
|
+ private void dealChannelDevice(ChannelInfo channelInfo, IotDeviceInfo info, IotServerInfo serverInfo) {
|
|
|
info.setDeleted(0);
|
|
|
info.setDeviceCode(channelInfo.getChannelIndex());
|
|
|
info.setDeviceName(channelInfo.getChannelName());
|
|
|
@@ -490,6 +506,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 处理通道类设备新增
|
|
|
+ *
|
|
|
* @param channelInfo
|
|
|
* @param serverInfo
|
|
|
* @return
|
|
|
@@ -514,7 +531,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
return info;
|
|
|
}
|
|
|
|
|
|
- private void processDiskDevices(List<DiskInfo> diskInfos, IotServerInfo serverInfo, String token,List<IotDvrDisk> addDiskList,List<IotDvrDisk> updateDiskList) {
|
|
|
+ private void processDiskDevices(List<DiskInfo> diskInfos, IotServerInfo serverInfo, String token, List<IotDvrDisk> addDiskList, List<IotDvrDisk> updateDiskList) {
|
|
|
if (ObjectUtil.isEmpty(diskInfos)) {
|
|
|
log.error("同步视频类基础信息,获取硬盘信息为空");
|
|
|
} else {
|
|
|
@@ -527,17 +544,17 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
diskInfo.setFreeMb(convertToMB(diskInfo.getFreeBytes()));
|
|
|
IotDvrDisk info = iIotDvrDiskService.selectByTokenAndDiskIndex(token, diskInfo.getDeviceName(), diskInfo.getDiskSerialNum());
|
|
|
if (info == null) {
|
|
|
- info = createDiskInfo(diskInfo,serverInfo);
|
|
|
+ info = createDiskInfo(diskInfo, serverInfo);
|
|
|
addDiskList.add(info);
|
|
|
} else {
|
|
|
- dealDiskDevice(diskInfo, info,serverInfo);
|
|
|
+ dealDiskDevice(diskInfo, info, serverInfo);
|
|
|
updateDiskList.add(info);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void dealDiskDevice(DiskInfo diskInfo,IotDvrDisk info, IotServerInfo serverInfo) {
|
|
|
+ private void dealDiskDevice(DiskInfo diskInfo, IotDvrDisk info, IotServerInfo serverInfo) {
|
|
|
info.setDeleted(0);
|
|
|
info.setHostCode(diskInfo.getDeviceName());
|
|
|
info.setDiskIndex(diskInfo.getDiskSerialNum());
|
|
|
@@ -553,6 +570,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 构建磁盘类数据
|
|
|
+ *
|
|
|
* @param diskInfo
|
|
|
* @param serverInfo
|
|
|
* @return
|
|
|
@@ -582,7 +600,6 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 处理报警主机数据
|
|
|
*
|
|
|
@@ -591,20 +608,18 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
* @param token
|
|
|
* @param addList
|
|
|
* @param updateList
|
|
|
- * @param addListExtend
|
|
|
- * @param updateListExtend
|
|
|
*/
|
|
|
- private void processAlarmHostDevices(List<AlarmHostInfo> alarmHostInfos, IotServerInfo serverInfo, String token, List<IotDeviceInfo> addList, List<IotDeviceInfo> updateList, List<IotDeviceInfoExtend> addListExtend, List<IotDeviceInfoExtend> updateListExtend) {
|
|
|
+ private void processHostDevices(List<DeviceBaseInfo> alarmHostInfos, IotServerInfo serverInfo, String token, List<IotDeviceInfo> addList, List<IotDeviceInfo> updateList) {
|
|
|
if (ObjectUtil.isEmpty(alarmHostInfos)) {
|
|
|
- log.error("同步报警主机基础信息,获取报警主机信息为空");
|
|
|
+ log.error("同步主机基础信息,获取主机信息为空");
|
|
|
} else {
|
|
|
- for (AlarmHostInfo alarmHostInfo : alarmHostInfos) {
|
|
|
- IotDeviceInfo info = iIotDeviceInfoService.selectByTypeAndCode(token, DeviceTypeEnum.ALARM_HOST.getCode(), alarmHostInfo.getDeviceName());
|
|
|
+ for (DeviceBaseInfo alarmHostInfo : alarmHostInfos) {
|
|
|
+ IotDeviceInfo info = iIotDeviceInfoService.selectByTypeAndCode(token, getDeviceType(alarmHostInfo.getCategories()), alarmHostInfo.getDeviceName());
|
|
|
if (info == null) {
|
|
|
- info = createAlarmHostInfo(alarmHostInfo, serverInfo);
|
|
|
+ info = createHostInfo(alarmHostInfo, serverInfo);
|
|
|
addList.add(info);
|
|
|
} else {
|
|
|
- dealAlarmHostInfo(alarmHostInfo, info,serverInfo);
|
|
|
+ dealHostInfo(alarmHostInfo, info, serverInfo);
|
|
|
updateList.add(info);
|
|
|
}
|
|
|
}
|
|
|
@@ -613,21 +628,22 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 转换报警主机设备数据(新增数据)
|
|
|
- * @param alarmHostInfos
|
|
|
+ *
|
|
|
+ * @param baseInfo
|
|
|
* @param serverInfo
|
|
|
* @return
|
|
|
*/
|
|
|
- private IotDeviceInfo createAlarmHostInfo(AlarmHostInfo alarmHostInfos, IotServerInfo serverInfo){
|
|
|
+ private IotDeviceInfo createHostInfo(DeviceBaseInfo baseInfo, IotServerInfo serverInfo) {
|
|
|
IotDeviceInfo info = new IotDeviceInfo();
|
|
|
long id = IdWorker.getId(info);
|
|
|
info.setDeleted(0);
|
|
|
- info.setDeviceCode(alarmHostInfos.getDeviceName());
|
|
|
- info.setDeviceProduct(alarmHostInfos.getProductName());
|
|
|
- info.setDeviceModel(alarmHostInfos.getModel());
|
|
|
- info.setDeviceType(DeviceTypeEnum.ALARM_HOST.getCode());
|
|
|
+ info.setDeviceCode(baseInfo.getDeviceName());
|
|
|
+ info.setDeviceProduct(baseInfo.getProductName());
|
|
|
+ //info.setDeviceModel(alarmHostInfos.getModel());
|
|
|
+ info.setDeviceType(getDeviceType(baseInfo.getCategories()));
|
|
|
info.setNetStatus("0");
|
|
|
info.setIotToken(serverInfo.getIotCode());
|
|
|
- info.setDeviceName(alarmHostInfos.getDisplayName());
|
|
|
+ info.setDeviceName(baseInfo.getDisplayName());
|
|
|
info.setOrgName(serverInfo.getOrgName());
|
|
|
info.setOrgId(serverInfo.getOrgId());
|
|
|
info.setOrgPath(serverInfo.getOrgPath());
|
|
|
@@ -635,16 +651,32 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
return info;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private String getDeviceType(String categories) {
|
|
|
+ if (ObjectUtil.isEmpty(categories)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ String string = categories.split(":")[0];
|
|
|
+ if (WebSocketConstants.DVS.equals(string)) {
|
|
|
+ return DeviceTypeEnum.DVS.getCode();
|
|
|
+ }
|
|
|
+ if (WebSocketConstants.ALARM_HOST.equals(string)) {
|
|
|
+ return DeviceTypeEnum.ALARM_HOST.getCode();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 更新数据
|
|
|
- * @param alarmHostInfos
|
|
|
+ *
|
|
|
+ * @param baseInfo
|
|
|
* @param info
|
|
|
* @param serverInfo
|
|
|
*/
|
|
|
- private void dealAlarmHostInfo(AlarmHostInfo alarmHostInfos, IotDeviceInfo info, IotServerInfo serverInfo) {
|
|
|
+ private void dealHostInfo(DeviceBaseInfo baseInfo, IotDeviceInfo info, IotServerInfo serverInfo) {
|
|
|
info.setDeleted(0);
|
|
|
- info.setDeviceName(alarmHostInfos.getDisplayName());
|
|
|
- info.setDeviceModel(alarmHostInfos.getModel());
|
|
|
+ info.setDeviceName(baseInfo.getDisplayName());
|
|
|
+ //info.setDeviceModel(alarmHostInfos.getModel());
|
|
|
info.setOrgId(serverInfo.getOrgId());
|
|
|
info.setOrgName(serverInfo.getOrgName());
|
|
|
info.setOrgPath(serverInfo.getOrgPath());
|
|
|
@@ -652,24 +684,25 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
info.setUpdateTime(new Date());
|
|
|
}
|
|
|
|
|
|
- private void saveOrUpdateAlarmHostBatches(List<IotDeviceInfo> addAlarmHostInfos,List<IotDeviceInfo> updateAlarmHostInfos,List<IotDeviceInfoExtend> addAlarmHostExtendInfos,List<IotDeviceInfoExtend> updateAlarmHostExtendInfos){
|
|
|
- if (!addAlarmHostInfos.isEmpty()) {
|
|
|
- iIotDeviceInfoService.saveAlarmHostDevice(addAlarmHostInfos);
|
|
|
+ private void saveOrUpdateHostBatches(List<IotDeviceInfo> addHostInfos, List<IotDeviceInfo> updateHostInfos) {
|
|
|
+ if (!addHostInfos.isEmpty()) {
|
|
|
+ iIotDeviceInfoService.saveHostDevice(addHostInfos);
|
|
|
}
|
|
|
- if (!updateAlarmHostInfos.isEmpty()) {
|
|
|
- iIotDeviceInfoService.updateAlarmHostDevice(updateAlarmHostInfos);
|
|
|
+ if (!updateHostInfos.isEmpty()) {
|
|
|
+ iIotDeviceInfoService.updateHostDevice(updateHostInfos);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理报警主机子系统数据
|
|
|
+ *
|
|
|
* @param subSystemInfos
|
|
|
* @param serverInfo
|
|
|
* @param token
|
|
|
* @param addList
|
|
|
* @param updateList
|
|
|
*/
|
|
|
- private void processSubSystem(List<SubSystemInfo> subSystemInfos, IotServerInfo serverInfo , String token , List<IotAlarmSubsystem> addList , List<IotAlarmSubsystem> updateList){
|
|
|
+ private void processSubSystem(List<SubSystemInfo> subSystemInfos, IotServerInfo serverInfo, String token, List<IotAlarmSubsystem> addList, List<IotAlarmSubsystem> updateList) {
|
|
|
if (ObjectUtil.isEmpty(subSystemInfos)) {
|
|
|
log.error("同步报警主机子系统信息,获取报警主机子系统信息为空");
|
|
|
} else {
|
|
|
@@ -679,14 +712,14 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
info = createAlarmSubSystem(subSystemInfo, serverInfo);
|
|
|
addList.add(info);
|
|
|
} else {
|
|
|
- dealAlarmSubSystem(subSystemInfo, info,serverInfo);
|
|
|
+ dealAlarmSubSystem(subSystemInfo, info, serverInfo);
|
|
|
updateList.add(info);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private IotAlarmSubsystem createAlarmSubSystem(SubSystemInfo subSystemInfo, IotServerInfo serverInfo){
|
|
|
+ private IotAlarmSubsystem createAlarmSubSystem(SubSystemInfo subSystemInfo, IotServerInfo serverInfo) {
|
|
|
IotAlarmSubsystem info = new IotAlarmSubsystem();
|
|
|
long id = IdWorker.getId(info);
|
|
|
info.setDeleted(0);
|
|
|
@@ -721,30 +754,31 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
|
|
|
/**
|
|
|
* 处理报警主机防区数据
|
|
|
+ *
|
|
|
* @param alarmInputInfos
|
|
|
* @param serverInfo
|
|
|
* @param token
|
|
|
* @param addList
|
|
|
* @param updateList
|
|
|
*/
|
|
|
- private void processDefenceArea(List<AlarmInputInfo> alarmInputInfos, IotServerInfo serverInfo , String token , List<IotAlarmDefenceArea> addList, List<IotAlarmDefenceArea> updateList){
|
|
|
+ private void processDefenceArea(List<AlarmInputInfo> alarmInputInfos, IotServerInfo serverInfo, String token, List<IotAlarmDefenceArea> addList, List<IotAlarmDefenceArea> updateList) {
|
|
|
if (ObjectUtil.isEmpty(alarmInputInfos)) {
|
|
|
log.error("同步报警主机防区信息,获取报警主机防区信息为空");
|
|
|
} else {
|
|
|
for (AlarmInputInfo alarmInputInfo : alarmInputInfos) {
|
|
|
- IotAlarmDefenceArea info = iotAlarmDefenceAreaService.getBySubSystemCodeAndDeviceName(token,alarmInputInfo.getDeviceName(),alarmInputInfo.getSubsystemId(),alarmInputInfo.getInputIndex());
|
|
|
+ IotAlarmDefenceArea info = iotAlarmDefenceAreaService.getBySubSystemCodeAndDeviceName(token, alarmInputInfo.getDeviceName(), alarmInputInfo.getSubsystemId(), alarmInputInfo.getInputIndex());
|
|
|
if (info == null) {
|
|
|
info = createDefenceArea(alarmInputInfo, serverInfo);
|
|
|
addList.add(info);
|
|
|
} else {
|
|
|
- dealDefenceArea(alarmInputInfo, info,serverInfo);
|
|
|
+ dealDefenceArea(alarmInputInfo, info, serverInfo);
|
|
|
updateList.add(info);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private IotAlarmDefenceArea createDefenceArea(AlarmInputInfo alarmInputInfo, IotServerInfo serverInfo){
|
|
|
+ private IotAlarmDefenceArea createDefenceArea(AlarmInputInfo alarmInputInfo, IotServerInfo serverInfo) {
|
|
|
IotAlarmDefenceArea info = new IotAlarmDefenceArea();
|
|
|
long id = IdWorker.getId(info);
|
|
|
info.setDeleted(0);
|
|
|
@@ -777,7 +811,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
info.setUpdateTime(LocalDateTime.now());
|
|
|
}
|
|
|
|
|
|
- private void saveOrUpdateSubSystemAndDefenceAreaBatches(List<IotAlarmSubsystem> addSubSystemInfos,List<IotAlarmSubsystem> updateSubSystemInfos,List<IotAlarmDefenceArea> addDefenceAreaInfos,List<IotAlarmDefenceArea> updateDefenceAreaInfos){
|
|
|
+ private void saveOrUpdateSubSystemAndDefenceAreaBatches(List<IotAlarmSubsystem> addSubSystemInfos, List<IotAlarmSubsystem> updateSubSystemInfos, List<IotAlarmDefenceArea> addDefenceAreaInfos, List<IotAlarmDefenceArea> updateDefenceAreaInfos) {
|
|
|
if (!addSubSystemInfos.isEmpty()) {
|
|
|
iotAlarmSubsystemService.saveSubSystemInfos(addSubSystemInfos);
|
|
|
}
|
|
|
@@ -793,8 +827,6 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
@Override
|
|
|
public ProductEnums product() {
|
|
|
return ProductEnums.IOT_SERVER;
|
|
|
@@ -811,22 +843,22 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
|
|
|
@Override
|
|
|
public Object execute(WebsocketExecuteReq req) {
|
|
|
try {
|
|
|
- if (WebSocketConstants.GET_DEVICE_BASE_INFOS.equals(req.getEvent())){
|
|
|
+ if (WebSocketConstants.GET_DEVICE_BASE_INFOS.equals(req.getEvent())) {
|
|
|
JSONObject object = (JSONObject) req.getData();
|
|
|
- if (object != null){
|
|
|
+ if (object != null) {
|
|
|
List<DeviceBaseInfo> deviceBaseInfos = (List<DeviceBaseInfo>) object.get("deviceBaseInfos");
|
|
|
chooseMethod(deviceBaseInfos);
|
|
|
}
|
|
|
- }else if(WebSocketConstants.GET_ALARM_HOST_DEVICE_INFOS.equals(req.getEvent())){
|
|
|
- dealSubSystemAndInput((AlarmHostBaseInfo) req.getData(),req.getToken());
|
|
|
+ } else if (WebSocketConstants.GET_ALARM_HOST_DEVICE_INFOS.equals(req.getEvent())) {
|
|
|
+ dealSubSystemAndInput((AlarmHostBaseInfo) req.getData(), req.getToken());
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- private void chooseMethod(List<DeviceBaseInfo> deviceBaseInfos){
|
|
|
+ private void chooseMethod(List<DeviceBaseInfo> deviceBaseInfos) {
|
|
|
//new HashMap<String,List>()
|
|
|
}
|
|
|
}
|