Pārlūkot izejas kodu

设备维护: 报警主机 代码部分提交

jingyuanchao 11 mēneši atpakaļ
vecāks
revīzija
aa4109e099

+ 7 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotDeviceInfoController.java

@@ -2,6 +2,7 @@ package com.xunmei.iot.controller;
 
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.iot.dto.deviceInfo.EditAlarmHostDeviceDto;
 import com.xunmei.iot.dto.deviceInfo.EditDvrHostDeviceDto;
 import com.xunmei.iot.dto.deviceInfo.IotDeviceInfoPageDto;
 import com.xunmei.iot.service.IIotDeviceInfoService;
@@ -50,5 +51,11 @@ public class IotDeviceInfoController {
         return AjaxResult.success(deviceInfoService.editDvrHostDevice(req));
     }
 
+    @ApiOperation("新增/编辑报警主机")
+    @PostMapping({"/editAlarmHostDevice"})
+    AjaxResult editAlarmHostDevice(@RequestBody EditAlarmHostDeviceDto req) {
+        return AjaxResult.success(deviceInfoService.editAlarmHostDevice(req));
+    }
+
 
 }

+ 110 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/deviceInfo/EditAlarmHostDeviceDto.java

@@ -0,0 +1,110 @@
+package com.xunmei.iot.dto.deviceInfo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(description = "设备信息")
+public class EditAlarmHostDeviceDto {
+
+    @ApiModelProperty(value = "设备ID")
+    private Long id;
+
+    @ApiModelProperty(value = "组织ID")
+    private Long orgId;
+
+    @ApiModelProperty(value = "物联网编码")
+    private String iotCode;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "设备产品")
+    private String deviceProduct;
+
+    @ApiModelProperty(value = "服务器IP")
+    private String serverIp;
+
+    @ApiModelProperty(value = "服务器端口")
+    private Integer serverPort;
+
+    @ApiModelProperty(value = "用户名")
+    private String userName;
+
+    @ApiModelProperty(value = "密码")
+    private String password;
+
+    @ApiModelProperty(value = "监听地址")
+    private String listenAddress;
+
+    @ApiModelProperty(value = "监听端口")
+    private Integer listenPort;
+
+    @ApiModelProperty(value = "设备MAC地址")
+    private String deviceMac;
+
+    @ApiModelProperty(value = "设备用户编码")
+    private String deviceUserCode;
+
+    @ApiModelProperty(value = "物联网地址")
+    private String iotAddress;
+
+    @ApiModelProperty(value = "模型")
+    private String models;
+
+    @ApiModelProperty(value = "主机设备类型")
+    private String hostDeviceType;
+
+    @ApiModelProperty(value = "启用状态")
+    private Integer enable;
+
+    @ApiModelProperty(value = "子系统数量")
+    private Integer subSystemNums;
+
+    @ApiModelProperty(value = "子系统列表")
+    private List<SubSystemDto> subSystemList;
+
+    @ApiModelProperty(value = "输入传感器数量")
+    private Integer inputSensorNums;
+
+    @ApiModelProperty(value = "输入传感器列表")
+    private List<InputSensorDto> inputSensorList;
+
+    @Data
+    @ApiModel(description = "子系统信息")
+    public static class SubSystemDto {
+        @ApiModelProperty(value = "子系统索引")
+        private Integer subSystemIndex;
+
+        @ApiModelProperty(value = "子系统名称")
+        private String subSystemName;
+
+        @ApiModelProperty(value = "启用状态")
+        private Integer enable;
+    }
+
+    @Data
+    @ApiModel(description = "输入传感器信息")
+    public static class InputSensorDto {
+        @ApiModelProperty(value = "输入传感器索引")
+        private Integer inputSensorIndex;
+
+        @ApiModelProperty(value = "输入传感器名称")
+        private String inputSensorName;
+
+        @ApiModelProperty(value = "模块地址")
+        private String moduleAddress;
+
+        @ApiModelProperty(value = "子系统索引")
+        private String subSystemIndex;
+
+        @ApiModelProperty(value = "传感器类型")
+        private String sensorType;
+
+        @ApiModelProperty(value = "启用状态")
+        private Integer enable;
+    }
+}

+ 6 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IIotDeviceInfoService.java

@@ -1,8 +1,11 @@
 package com.xunmei.iot.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.iot.domain.IotServerProduct;
+import com.xunmei.common.core.enums.iot.BaseDeviceTypeEnum;
 import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.iot.dto.deviceInfo.EditAlarmHostDeviceDto;
 import com.xunmei.iot.dto.deviceInfo.EditDvrHostDeviceDto;
 import com.xunmei.iot.dto.deviceInfo.IotDeviceInfoPageDto;
 import com.xunmei.iot.vo.deviceInfo.DeviceDetailInfoVo;
@@ -31,6 +34,8 @@ public interface IIotDeviceInfoService extends IService<IotDeviceInfo> {
     Integer editDvrHostDevice(EditDvrHostDeviceDto req);
 
 
-    String  generalDeviceCode();
+    String  generalDeviceCode(BaseDeviceTypeEnum typeEnum, JSONObject jsb);
+
+    Integer editAlarmHostDevice(EditAlarmHostDeviceDto req);
 
 }

+ 48 - 3
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDeviceInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.xunmei.iot.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,6 +16,7 @@ import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.iot.dto.deviceInfo.EditAlarmHostDeviceDto;
 import com.xunmei.iot.dto.deviceInfo.EditDvrHostDeviceDto;
 import com.xunmei.iot.dto.deviceInfo.IotDeviceInfoPageDto;
 import com.xunmei.iot.mapper.IotAlarmSubsystemMapper;
@@ -134,13 +136,20 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
     }
 
     @Override
-    public String generalDeviceCode() {
+    public String generalDeviceCode(BaseDeviceTypeEnum typeEnum, JSONObject jsb) {
         RedissonClient client = RedisUtils.getClient();
         RLock lock = client.getLock(RedisConstant.GENERAL_DEVICE_CODE);
         try {
             boolean tryLock = lock.tryLock(10, 10, TimeUnit.SECONDS);
             if (tryLock) {
-                return "PT_" + DateUtils.parseDateToStr("yyyyMMddHHmmssSSS", new Date());
+                switch (typeEnum) {
+                    case Dvs:
+                        return "PT_" + DateUtils.parseDateToStr("yyyyMMddHHmmssSSS", new Date());
+                    case AlarmHost:
+                        //DaHuaAlarmHost1729673859287
+                        return jsb.getString("deviceProduct") + System.currentTimeMillis();
+                }
+
             }
         } catch (InterruptedException e) {
             throw new RuntimeException("生成设备编码失败");
@@ -182,7 +191,9 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         deviceInfo.setDeviceName(req.getDeviceName());
         deviceInfo.setDeviceType(BaseDeviceTypeEnum.Dvs.getCode());
         deviceInfo.setDeviceProduct(req.getDeviceProduct());
-        deviceInfo.setDeviceCode(generalDeviceCode());
+        if (ObjectUtil.isEmpty(deviceInfo.getDeviceCode())){
+            deviceInfo.setDeviceCode(generalDeviceCode(BaseDeviceTypeEnum.Dvs, null));
+        }
         deviceInfo.setDeviceModel(req.getModels());
         deviceInfo.setIotToken(req.getIotCode());
         deviceInfo.setOrgId(req.getOrgId());
@@ -193,4 +204,38 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         deviceInfo.setOrgName(sysOrg.getShortName());
         deviceInfo.setOrgPath(sysOrg.getPath());
     }
+
+    @Override
+    public Integer editAlarmHostDevice(EditAlarmHostDeviceDto req) {
+        Long deviceId = req.getId();
+        SysOrg sysOrg = orgService.selectOrgById(req.getOrgId(), SecurityConstants.INNER);
+        if (deviceId == null) {
+            addAlarmHostDevice(req, sysOrg);
+        }
+
+
+        return null;
+    }
+
+    private void addAlarmHostDevice(EditAlarmHostDeviceDto req, SysOrg sysOrg) {
+        final IotDeviceInfo deviceInfo = new IotDeviceInfo();
+        deviceInfo.setDeviceName(req.getDeviceName());
+        deviceInfo.setDeviceType(BaseDeviceTypeEnum.AlarmHost.getCode());
+        deviceInfo.setDeviceProduct(req.getDeviceProduct());
+        if (ObjectUtil.isEmpty(deviceInfo.getDeviceCode())){
+            final JSONObject object = new JSONObject();
+            object.put("deviceProduct", req.getDeviceProduct()+"_");
+            deviceInfo.setDeviceCode(generalDeviceCode(BaseDeviceTypeEnum.AlarmHost,object));
+        }
+        deviceInfo.setDeviceModel(req.getModels());
+        deviceInfo.setIotToken(req.getIotCode());
+        deviceInfo.setOrgId(req.getOrgId());
+        deviceInfo.setEnable(req.getEnable());
+        deviceInfo.setDeleted(0);
+        deviceInfo.setUpdateTime(new Date());
+        deviceInfo.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getName());
+        deviceInfo.setOrgName(sysOrg.getShortName());
+        deviceInfo.setOrgPath(sysOrg.getPath());
+
+    }
 }