Kaynağa Gözat

设备同步 平台下发报警主机相关逻辑增加

jingyuanchao 11 ay önce
ebeveyn
işleme
56d8da1ef4

+ 46 - 13
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceInfoServiceImpl.java

@@ -1036,20 +1036,53 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
     }
 
     private JSONObject getAlarmHostJson(IotDeviceInfo deviceInfo) {
-        final JSONObject obj = JSONObject.parseObject(JSON.toJSONString(deviceInfo));
+        final IotDeviceInfoExtend extend = iIotDeviceInfoExtendService.selectByDeviceId(deviceInfo.getId());
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("deviceType", BaseDeviceTypeEnum.AlarmHost.name());
+        jsonObject.put("name", deviceInfo.getDeviceCode());
+        jsonObject.put("displayName", deviceInfo.getDeviceName());
+        jsonObject.put("product", deviceInfo.getDeviceProduct());
+        jsonObject.put("model", deviceInfo.getDeviceModel());
+        jsonObject.put("deviceAddress", extend.getNetAddress());
+        jsonObject.put("devicePort", extend.getPort());
+        jsonObject.put("listenAddress", extend.getListenAddress());
+        jsonObject.put("listenPort", extend.getListenPort());
+        jsonObject.put("deviceMacAddress", extend.getDeviceMac());
+        jsonObject.put("deviceAccount", extend.getUserName());
+        jsonObject.put("devicePassword", extend.getPassword());
+        jsonObject.put("deviceUserCode", extend.getDeviceUserCode());
+        jsonObject.put("controlAddress", extend.getIotAddress());
+        jsonObject.put("status", deviceInfo.getEnable());
         final List<IotAlarmSubsystem> subSystem = iotAlarmSubsystemService.findSubSystem(deviceInfo.getDeviceCode());
-        final List<IotAlarmDefenceArea> defenceAreaList = iotAlarmDefenceAreaService.findBySubSystemCode(deviceInfo.getDeviceCode(), deviceInfo.getOrgId());
-        obj.put("deviceType", BaseDeviceTypeEnum.AlarmHost.name());
-        if (ObjectUtil.isNotEmpty(subSystem)) {
-            final List<JSONObject> sub = subSystem.stream().map(r -> {
-                final JSONObject subSystemObj = JSONObject.parseObject(JSON.toJSONString(subSystem));
-                final List<IotAlarmDefenceArea> collect = defenceAreaList.stream().filter(d -> ObjectUtil.equal(d.getSubSystemCode(), r.getCode())).collect(Collectors.toList());
-                subSystemObj.put("defenceArea", collect);
-                return subSystemObj;
-            }).collect(Collectors.toList());
-            obj.put("subSystem", sub);
-        }
-        return obj;
+        final List<JSONObject> list = subSystem.stream().map(r -> {
+            final JSONObject object = new JSONObject();
+            //object.put("id", r.getId());
+            object.put("subSystemId", r.getCode());
+            object.put("subSystemName", r.getName());
+            object.put("status", r.getEnable());
+            return object;
+        }).collect(Collectors.toList());
+
+        final List<IotAlarmDefenceArea> defenceAreaList = iotAlarmDefenceAreaService.findDefenceArea(deviceInfo.getIotToken(), deviceInfo.getDeviceCode());
+        final List<JSONObject> collect = defenceAreaList.stream().map(r -> {
+            final JSONObject object = new JSONObject();
+            //object.put("id", r.getId());
+            object.put("inputIndex", r.getDefenceAreaIndex());
+            object.put("inputName", r.getDefenceAreaName());
+            object.put("moduleAddress", r.getModuleAddress());
+            object.put("subSystemId", r.getSubSystemCode());
+            object.put("sensorType", r.getSensorType());
+            object.put("sensorTypeName", r.getSensorTypeName());
+            object.put("status", r.getEnable());
+            return object;
+        }).collect(Collectors.toList());
+        jsonObject.put("inputData", collect);
+        jsonObject.put("inputCount", collect.size());
+        jsonObject.put("outputData", Lists.newArrayList());
+        jsonObject.put("outputCount", 0);
+        jsonObject.put("subSystemCount", subSystem.size());
+        jsonObject.put("subSystemData", list);
+        return jsonObject;
     }
 
     private JSONObject getNetDeviceJson(IotDeviceInfo deviceInfo, BaseDeviceTypeEnum deviceTypeEnum) {

+ 2 - 0
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/protection/service/IotAlarmDefenceAreaService.java

@@ -19,6 +19,8 @@ public interface IotAlarmDefenceAreaService extends IService<IotAlarmDefenceArea
 
     List<IotAlarmDefenceArea> findBySubSystemCode(String defenceAreaCode,Long orgId);
 
+    List<IotAlarmDefenceArea> findDefenceArea(String iotCode,String alarmHostCode);
+
     IotAlarmDefenceArea findBySubSystemCodeAndIdx(String defenceAreaCode, Integer idx, String orgGuid);
 
     ReceiveErrorDto saveData(String msgId, SensorDataDto request);

+ 9 - 0
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/protection/service/impl/IotAlarmDefenceAreaServiceImpl.java

@@ -74,6 +74,15 @@ public class IotAlarmDefenceAreaServiceImpl extends ServiceImpl<IotAlarmDefenceA
     }
 
     @Override
+    public List<IotAlarmDefenceArea> findDefenceArea(String iotCode, String alarmHostCode) {
+        return lambdaQuery()
+                .eq(IotAlarmDefenceArea::getIotToken, iotCode)
+                .eq(IotAlarmDefenceArea::getAlarmHostCode, alarmHostCode)
+                .eq(IotAlarmDefenceArea::getDeleted, 0)
+                .list();
+    }
+
+    @Override
     public IotAlarmDefenceArea findBySubSystemCodeAndIdx(String defenceAreaCode, Integer idx, String orgGuid) {
         return lambdaQuery()
                 .eq(IotAlarmDefenceArea::getOrganizationGuid, orgGuid)

+ 5 - 6
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDeviceInfoServiceImpl.java

@@ -333,10 +333,9 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         SysOrg sysOrg = orgService.selectOrgById(req.getOrgId(), SecurityConstants.INNER);
 
         if (deviceId == null) {
-            addAlarmHostDevice(req, sysOrg);
+             deviceId = addAlarmHostDevice(req, sysOrg);
             return 1;
         }
-
         updateAddAlarmHostDevice(req);
         return 1;
     }
@@ -344,15 +343,14 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
     private void updateAddAlarmHostDevice(EditAlarmHostDeviceDto req) {
         SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
         IotDeviceInfo deviceInfo = getById(req.getId());
-
         deviceInfo.setDeviceName(req.getDeviceName());
         deviceInfo.setDeviceModel(req.getModels());
         deviceInfo.setEnable(req.getEnable());
         deviceInfo.setUpdateTime(new Date());
         deviceInfo.setUpdateBy(sysUser.getName());
-
+        deviceInfo.setSyncStatus(DeviceSyncStatus.NOT_SYNC.getCode());
         extendService.updateAlarmHostExtendByDeviceId(deviceInfo.getId(), req);
-
+        updateById(deviceInfo);
         List<EditAlarmHostDeviceDto.SubSystemDto> subSystemList = req.getSubSystemList();
         if (CollUtil.isNotEmpty(subSystemList)) {
             updateSubsystems(deviceInfo, subSystemList);
@@ -422,7 +420,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         defenceAreaMapper.updateById(defenceArea);
     }
 
-    private void addAlarmHostDevice(EditAlarmHostDeviceDto req, SysOrg sysOrg) {
+    private Long addAlarmHostDevice(EditAlarmHostDeviceDto req, SysOrg sysOrg) {
         SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
         IotDeviceInfo deviceInfo = new IotDeviceInfo();
 
@@ -458,6 +456,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         if (CollUtil.isNotEmpty(subSystemList)) {
             createSubsystems(deviceInfo, subSystemList, req.getInputSensorList(), sysOrg);
         }
+        return deviceInfo.getId();
     }
 
     private void createSubsystems(IotDeviceInfo deviceInfo, List<EditAlarmHostDeviceDto.SubSystemDto> subSystemList, List<EditAlarmHostDeviceDto.InputSensorDto> sensorList, SysOrg sysOrg) {