浏览代码

Merge branch 'V0.0.6-iot' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.0.6-iot

jiawuxian 1 年之前
父节点
当前提交
7c9bc52aba
共有 30 个文件被更改,包括 640 次插入103 次删除
  1. 48 1
      project_data/sql/0.0.6-iot/soc/soc.sql
  2. 4 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteDeviceService.java
  3. 6 51
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysDevice.java
  4. 8 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteDeviceFallbackFactory.java
  5. 81 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmCode.java
  6. 62 36
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorCategory.java
  7. 70 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/DataController.java
  8. 17 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmCodeMapper.java
  9. 17 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorAlarmCodeService.java
  10. 16 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorCategoryService.java
  11. 4 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IVideoDiagnosisLogService.java
  12. 10 1
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IVideoDiagnosisRecordService.java
  13. 24 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/MediatorAlarmCodeServiceImpl.java
  14. 20 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/MediatorCategoryServiceImpl.java
  15. 4 3
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDaysCheckServiceImpl.java
  16. 22 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDiagnosisLogServiceImpl.java
  17. 204 8
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDiagnosisRecordServiceImpl.java
  18. 4 3
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoIntegrityCheckServiceImpl.java
  19. 5 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmCodeMapper.xml
  20. 0 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorCategoryMapper.xml
  21. 0 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/NorthErrorMapper.xml
  22. 0 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDaysCheckLogMapper.xml
  23. 0 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDaysCheckMapper.xml
  24. 0 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDiagnosisLogMapper.xml
  25. 0 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDiagnosisMapper.xml
  26. 0 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDiagnosisRecordMapper.xml
  27. 0 0
      soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoIntegrityCheckMapper.xml
  28. 6 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeviceController.java
  29. 3 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeviceService.java
  30. 5 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java

+ 48 - 1
project_data/sql/0.0.6-iot/soc/soc.sql

@@ -1,5 +1,35 @@
 
 
+DELIMITER ??
+DROP PROCEDURE IF EXISTS schema_change ??
+CREATE PROCEDURE schema_change () BEGIN
+
+    --  设备表增加设备分类字段
+    IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'sys_device'
+                    AND column_name = 'category_id') THEN
+        ALTER TABLE sys_device
+            ADD COLUMN `category_id` bigint NULL COMMENT '设备分类' AFTER `definition`;
+    END IF;
+    --  设备表增加设备分类字段
+    IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'sys_device'
+                    AND column_name = 'host_code') THEN
+        ALTER TABLE sys_device
+            ADD COLUMN `host_code`  varchar(225) NULL COMMENT '主机code' AFTER `category_id`;
+    END IF;
+
+
+
+END ??
+DELIMITER ;
+CALL schema_change ();
+
+
 
 drop table if exists mediator_video_days_check;
 CREATE TABLE `mediator_video_days_check` (
@@ -199,4 +229,21 @@ CREATE TABLE `mediator_category` (
       `expire_day` int NOT NULL DEFAULT '0' COMMENT '过期天数',
       PRIMARY KEY (`id`) USING BTREE,
       KEY `idx_category_parentId` (`parent_id`) USING BTREE
-) ENGINE=InnoDB AUTO_INCREMENT=3713672266842158 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
+) ENGINE=InnoDB AUTO_INCREMENT=3713672266842158 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
+
+drop table if exists mediator_alarm_code;
+CREATE TABLE `mediator_alarm_code` (
+                                `id` bigint NOT NULL AUTO_INCREMENT,
+                                `parent_id` bigint DEFAULT NULL,
+                                `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警代码',
+                                `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '报警名称',
+                                `create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
+                                `modified_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人名称',
+                                `update_time` datetime(6) DEFAULT NULL COMMENT '更新时间',
+                                `modified_id` bigint DEFAULT NULL COMMENT '最后修改人id',
+                                `deleted` int DEFAULT '0' COMMENT '删除',
+                                `auto_generate` int DEFAULT NULL COMMENT '是否自动生成运维单 1:是 0:否',
+                                `voice_alarm_times` int DEFAULT '0' COMMENT '声效告警提示次数',
+                                `light_alarm_times` int DEFAULT '0' COMMENT '光效告警提示次数',
+                                PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=71 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

+ 4 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteDeviceService.java

@@ -9,6 +9,7 @@ import com.xunmei.system.api.factory.RemoteConfigFallbackFactory;
 import com.xunmei.system.api.factory.RemoteDeviceFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestParam;
 
@@ -23,6 +24,9 @@ public interface RemoteDeviceService {
     @GetMapping("/device/getInfoById")
     SysDevice getInfoById(@RequestParam("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
+    @GetMapping("/device/findByHostCode/{code}")
+    SysDevice findByHostCode(@PathVariable("code") String code, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
     @GetMapping("/device/findList")
     R<List<SysDevice>> findList(@RequestParam("orgId") SysDeviceInnerListDto listDto, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 6 - 51
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysDevice.java

@@ -13,6 +13,7 @@ import lombok.experimental.Accessors;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
+import java.io.Serializable;
 import java.util.Date;
 
 /**
@@ -102,60 +103,14 @@ public class SysDevice extends BaseEntity {
      */
     @ApiModelProperty(value = "通道号")
     private Long channel;
+
     @ApiModelProperty(value = "是否高清")
     private String definition;
 
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
-
-
-                .append("id", getId())
-
-
-                .append("orgId", getOrgId())
-
-
-                .append("orgName", getOrgName())
-
-
-                .append("deviceName", getDeviceName())
-
-
-                .append("assetType", getAssetType())
-
-
-                .append("deviceType", getDeviceType())
-
-
-                .append("deviceBrand", getDeviceBrand())
-
-
-                .append("checkTime", getCheckTime())
-
-
-                .append("maintenanceTerm", getMaintenanceTerm())
-
-
-                .append("createTime", getCreateTime())
-
-
-                .append("updateTime", getUpdateTime())
-
-
-                .append("createBy", getCreateBy())
-
-
-                .append("updateBy", getUpdateBy())
-
-
-                .append("delFlag", getDelFlag())
-
-
-                .append("hostId", getHostId())
+    @ApiModelProperty(value = "设备分类")
+    private Long categoryId;
 
+    @ApiModelProperty(value = "主机code")
+    private String hostCode;
 
-                .append("channel", getChannel())
-                .toString();
-    }
 }

+ 8 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteDeviceFallbackFactory.java

@@ -29,9 +29,17 @@ public class RemoteDeviceFallbackFactory implements FallbackFactory<RemoteDevice
             }
 
             @Override
+            public SysDevice findByHostCode(String code, String source) {
+                return null;
+            }
+
+            @Override
             public R<List<SysDevice>> findList(SysDeviceInnerListDto listDto, String source) {
                 return R.fail();
             }
         };
+
     }
+
+
 }

+ 81 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorAlarmCode.java

@@ -0,0 +1,81 @@
+package com.xunmei.common.core.domain.mediator.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author oygj
+ * @since 2024-01-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("mediator_alarm_code")
+@ApiModel(value = "MediatorAlarmCode对象", description = "")
+public class MediatorAlarmCode implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("parent_id")
+    private Long parentId;
+
+    @ApiModelProperty(value = "报警代码")
+    @TableField("code")
+    private String code;
+
+    @ApiModelProperty(value = "报警名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "修改人名称")
+    @TableField("modified_name")
+    private String modifiedName;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "最后修改人id")
+    @TableField("modified_id")
+    private Long modifiedId;
+
+    @ApiModelProperty(value = "删除")
+    @TableField("deleted")
+    private Integer deleted;
+
+    @ApiModelProperty(value = "是否自动生成运维单 1:是 0:否")
+    @TableField("auto_generate")
+    private Integer autoGenerate;
+
+    @ApiModelProperty(value = "声效告警提示次数")
+    @TableField("voice_alarm_times")
+    private Integer voiceAlarmTimes;
+
+    @ApiModelProperty(value = "光效告警提示次数")
+    @TableField("light_alarm_times")
+    private Integer lightAlarmTimes;
+
+
+}

+ 62 - 36
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/mediator/domain/MediatorCategory.java

@@ -1,55 +1,81 @@
 package com.xunmei.common.core.domain.mediator.domain;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.xunmei.common.core.web.domain.BaseEntity;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 
 import java.io.Serializable;
-import java.util.Date;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
- * (t_category)实体类
+ * <p>
  *
- * @author 高雄
- * @since 2022-08-15 15:16:28
- * @description 由 Mybatisplus Code Generator 创建
+ * </p>
+ *
+ * @author oygj
+ * @since 2024-01-25
  */
 @Data
-@NoArgsConstructor
-@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
 @TableName("mediator_category")
-public class MediatorCategory extends BaseEntity implements Serializable {
+@ApiModel(value = "MediatorCategory对象", description = "")
+public class MediatorCategory implements Serializable {
+
     private static final long serialVersionUID = 1L;
 
-    /**
-     * id
-     */
-    @TableId
-	private Long id;
-    /**
-     * name
-     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("name")
     private String name;
-    /**
-     * 上级分类
-     */
+
+    @ApiModelProperty(value = "上级分类")
+    @TableField("parent_id")
     private Long parentId;
-    /**
-     * code
-     */
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("create_by")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建人名称")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "修改人名称")
+    @TableField("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField("update_time")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "code")
+    @TableField("code")
     private String code;
-    /**
-     * 删除
-     */
+
+    @ApiModelProperty(value = "删除")
+    @TableField("deleted")
     private Integer deleted;
-    /**
-     * 层级
-     */
+
+    @ApiModelProperty(value = "层级")
+    @TableField("level")
     private Integer level;
 
-}
+    @ApiModelProperty(value = "0:消防,1:安防")
+    @TableField("type")
+    private Boolean type;
+
+    @ApiModelProperty(value = "过期天数")
+    @TableField("expire_day")
+    private Integer expireDay;
+
+
+}

+ 70 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/DataController.java

@@ -0,0 +1,70 @@
+package com.xunmei.mediator.api.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.xunmei.mediator.api.service.RabbitMsgIdService;
+import com.xunmei.mediator.domain.dto.device.DeviceReceivePageDto;
+import com.xunmei.mediator.domain.dto.protection.ReceiveErrorDto;
+import com.xunmei.mediator.util.LogUtils;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @author jingyuanchao
+ * @date 2024/1/25 10:23
+ */
+public class DataController {
+
+
+    @Autowired
+    private RabbitMsgIdService rabbitMsgIdService;
+
+
+
+
+
+    /***
+     * 频率: 每日组织机构同步完成后,同步当前正在使用的、全量的录像机及网络设备的数据
+     * 粒度: 采取全量分段式提交方式,每次推送500条录像机及网络设备记录为一个数据包
+     * 设备信息同步逻辑:
+     *  设备数据为分页数据:只有接收到全部的分页数据才会开始设备更新操作:
+     *  缓存key 时间限制为1天
+     *  如设备数据分为3页,packageGuid:be12853e-fecd-ea44-e4cd-fb2f16acdcd7
+     *  接收到第1页 缓存到redis中: key:be12853e-fecd-ea44-e4cd-fb2f16acdcd7_1
+     *  接收到第2页 缓存到redis中: key:be12853e-fecd-ea44-e4cd-fb2f16acdcd7_2
+     *  接收到第3页 缓存到redis中: key:be12853e-fecd-ea44-e4cd-fb2f16acdcd7_3
+     *
+     *  每接收到一条消息,都要判断是否 三个key是否都缓存到redis中:
+     *  如果三个key都存在,开启异步线程方法处理数据
+     *
+     *  处理逻辑:
+     *      先逻辑删除source = 1(北向接口同步过来的数据) deleted = 1
+     *      然后更新接收到的数据 deleted = 0
+     * @param branchId
+     * @param msgId
+     * @param deviceReceivePageDto
+     * @return ReceiveErrorDto
+     * @author 高雄
+     * @time 2022/8/17 17:05
+     */
+    /*@ApiOperation("设备信息同步")
+    @PostMapping({"/api/{branchId}/data/equipmentList"})
+    public ReceiveErrorDto equipmentList(@PathVariable String branchId, String msgId, @RequestBody DeviceReceivePageDto deviceReceivePageDto) {
+        rabbitMsgIdService.sendMsgId(msgId, "/data/equipmentList", "设备信息同步");
+        LogUtils.BASE_INFO_EQUIPMENT.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "设备信息同步:/api/data/equipmentList/", branchId, msgId, JSON.toJSONString(deviceReceivePageDto));
+        try {
+            deviceReceivePageDto.setBranchId(branchId);
+            deviceReceivePageDto.setMsgId(msgId);
+            ReceiveErrorDto errorDto = deviceService.save(deviceReceivePageDto);
+            LogUtils.BASE_INFO_EQUIPMENT.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "设备信息同步:/api/data/equipmentList/", branchId, msgId, JSON.toJSONString(errorDto));
+            return errorDto;
+        } catch (Exception e) {
+            LogUtils.BASE_INFO_EQUIPMENT.info("【北向接口-{}】【branchId:{}】【msgId:{}】【异常原因:{}】", "设备信息同步:/api/data/equipmentList/", branchId, msgId, e);
+            e.printStackTrace();
+        }
+        return ReceiveErrorDto.error("数据处理异常");
+    }*/
+
+}

+ 17 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/MediatorAlarmCodeMapper.java

@@ -0,0 +1,17 @@
+package com.xunmei.mediator.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmCode;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author oygj
+ * @since 2024-01-25
+ */
+public interface MediatorAlarmCodeMapper extends BaseMapper<MediatorAlarmCode> {
+
+    MediatorAlarmCode selectByCode(String s);
+}

+ 17 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorAlarmCodeService.java

@@ -0,0 +1,17 @@
+package com.xunmei.mediator.api.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmCode;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author oygj
+ * @since 2024-01-25
+ */
+public interface IMediatorAlarmCodeService extends IService<MediatorAlarmCode> {
+
+    MediatorAlarmCode selectByCode(String code);
+}

+ 16 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IMediatorCategoryService.java

@@ -0,0 +1,16 @@
+package com.xunmei.mediator.api.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author oygj
+ * @since 2024-01-25
+ */
+public interface IMediatorCategoryService extends IService<MediatorCategory> {
+
+}

+ 4 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IVideoDiagnosisLogService.java

@@ -2,6 +2,8 @@ package com.xunmei.mediator.api.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisLog;
+import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisRecord;
+import com.xunmei.mediator.api.mapper.MediatorAlarmCodeMapper;
 
 /**
  * <p>
@@ -13,4 +15,6 @@ import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisLog;
  */
 public interface IVideoDiagnosisLogService extends IService<MediatorVideoDiagnosisLog> {
 
+    void saveData(MediatorVideoDiagnosisRecord videoDiagnosis);
+
 }

+ 10 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IVideoDiagnosisRecordService.java

@@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisRecord;
 import com.xunmei.mediator.domain.dto.protection.ReceiveErrorDto;
 import com.xunmei.mediator.domain.dto.videoDiagnosis.VideoDiagnosisDto;
+import com.xunmei.system.api.domain.SysDevice;
+
+import java.text.ParseException;
+import java.util.Map;
 
 /**
  * <p>
@@ -15,5 +19,10 @@ import com.xunmei.mediator.domain.dto.videoDiagnosis.VideoDiagnosisDto;
  */
 public interface IVideoDiagnosisRecordService extends IService<MediatorVideoDiagnosisRecord> {
 
-    ReceiveErrorDto saveData(VideoDiagnosisDto videoDiagnosisDto, String msgId, String branchId) throws IllegalAccessException;
+    ReceiveErrorDto saveData(VideoDiagnosisDto videoDiagnosisDto, String msgId, String branchId) throws IllegalAccessException, ParseException;
+
+    MediatorVideoDiagnosisRecord findByOrgIdAndEquipmentCodeAndChannelCode(Long orgId, String equipmentCode, String channelCode);
+
+    void saveDataInfo(Map<String, Object> objectMap, VideoDiagnosisDto videoDiagnosisDto, SysDevice device);
+
 }

+ 24 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/MediatorAlarmCodeServiceImpl.java

@@ -0,0 +1,24 @@
+package com.xunmei.mediator.api.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmCode;
+import com.xunmei.mediator.api.mapper.MediatorAlarmCodeMapper;
+import com.xunmei.mediator.api.service.IMediatorAlarmCodeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author oygj
+ * @since 2024-01-25
+ */
+@Service
+public class MediatorAlarmCodeServiceImpl extends ServiceImpl<MediatorAlarmCodeMapper, MediatorAlarmCode> implements IMediatorAlarmCodeService {
+
+    @Override
+    public MediatorAlarmCode selectByCode(String code) {
+        return lambdaQuery().eq(MediatorAlarmCode::getCode, code).last("limit 1").one();
+    }
+}

+ 20 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/MediatorCategoryServiceImpl.java

@@ -0,0 +1,20 @@
+package com.xunmei.mediator.api.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
+import com.xunmei.mediator.api.mapper.MediatorCategoryMapper;
+import com.xunmei.mediator.api.service.IMediatorCategoryService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author oygj
+ * @since 2024-01-25
+ */
+@Service
+public class MediatorCategoryServiceImpl extends ServiceImpl<MediatorCategoryMapper, MediatorCategory> implements IMediatorCategoryService {
+
+}

+ 4 - 3
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDaysCheckServiceImpl.java

@@ -15,6 +15,7 @@ import com.xunmei.mediator.domain.dto.north.NorthError;
 import com.xunmei.mediator.domain.dto.protection.ReceiveErrorDto;
 import com.xunmei.mediator.domain.dto.videoDaysCheck.VideoDaysCheckDto;
 import com.xunmei.mediator.util.RedisUtil;
+import com.xunmei.system.api.RemoteDeviceService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysOrg;
@@ -39,7 +40,8 @@ import java.util.Map;
 public class VideoDaysCheckServiceImpl extends ServiceImpl<VideoDaysCheckMapper, MediatorVideoDaysCheck> implements IVideoDaysCheckService {
     @Resource
     RedisUtil redisUtil;
-
+    @Resource
+    RemoteDeviceService deviceService;
     @Resource
     RemoteOrgService orgService;
     @Resource
@@ -85,8 +87,7 @@ public class VideoDaysCheckServiceImpl extends ServiceImpl<VideoDaysCheckMapper,
         MediatorVideoDaysCheck videoDaysCheck = new MediatorVideoDaysCheck();
 
         //获取监控主机
-        //Device hostDevice = deviceService.findById(videoDaysCheckDto.getEquipmentCode());
-        final SysDevice hostDevice = new SysDevice();
+        SysDevice hostDevice = deviceService.findByHostCode(videoDaysCheckDto.getEquipmentCode(),SecurityConstants.INNER);
         if (hostDevice != null) {
             videoDaysCheck.setEquipmentName(hostDevice.getDeviceName());
         }

+ 22 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDiagnosisLogServiceImpl.java

@@ -2,10 +2,14 @@ package com.xunmei.mediator.api.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisLog;
+import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisRecord;
+import com.xunmei.mediator.api.mapper.MediatorAlarmCodeMapper;
 import com.xunmei.mediator.api.mapper.VideoDiagnosisLogMapper;
 import com.xunmei.mediator.api.service.IVideoDiagnosisLogService;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+
 /**
  * <p>
  * 视频质量诊断结果 服务实现类
@@ -17,4 +21,22 @@ import org.springframework.stereotype.Service;
 @Service
 public class VideoDiagnosisLogServiceImpl extends ServiceImpl<VideoDiagnosisLogMapper, MediatorVideoDiagnosisLog> implements IVideoDiagnosisLogService {
 
+    @Override
+    public void saveData(MediatorVideoDiagnosisRecord data) {
+        MediatorVideoDiagnosisLog videoDiagnosisLog = new MediatorVideoDiagnosisLog();
+        videoDiagnosisLog.setAlarmTime(data.getAlarmTime());
+        videoDiagnosisLog.setChannelCode(data.getChannelCode());
+        videoDiagnosisLog.setChannelName(data.getChannelName());
+        videoDiagnosisLog.setDetailInfo(data.getDetailInfo());
+        videoDiagnosisLog.setEquipmentCode(data.getEquipmentCode());
+        videoDiagnosisLog.setIsAlarm(data.getIsAlarm());
+        videoDiagnosisLog.setVideoDiagnosisId(data.getId());
+        videoDiagnosisLog.setOrgId(data.getOrgId());
+        videoDiagnosisLog.setOrgName(data.getOrgName());
+        videoDiagnosisLog.setOrgPath(data.getOrgPath());
+        videoDiagnosisLog.setEquipmentName(data.getEquipmentName());
+        videoDiagnosisLog.setCreateTime(new Date());
+        videoDiagnosisLog.setUpdateTime(new Date());
+        this.saveOrUpdate(videoDiagnosisLog);
+    }
 }

+ 204 - 8
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDiagnosisRecordServiceImpl.java

@@ -2,32 +2,48 @@ package com.xunmei.mediator.api.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.mediator.domain.MediatorAlarmCode;
 import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
+import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisLog;
 import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisRecord;
+import com.xunmei.common.core.util.BeanHelper;
+import com.xunmei.common.core.utils.IDHelper;
+import com.xunmei.mediator.api.mapper.MediatorAlarmCodeMapper;
 import com.xunmei.mediator.api.mapper.MediatorCategoryMapper;
+import com.xunmei.mediator.api.mapper.VideoDiagnosisLogMapper;
 import com.xunmei.mediator.api.mapper.VideoDiagnosisRecordMapper;
+import com.xunmei.mediator.api.service.IMediatorAlarmCodeService;
+import com.xunmei.mediator.api.service.IVideoDiagnosisLogService;
 import com.xunmei.mediator.api.service.IVideoDiagnosisRecordService;
 import com.xunmei.mediator.api.service.NorthErrorService;
 import com.xunmei.mediator.domain.dto.protection.ReceiveErrorDto;
+import com.xunmei.mediator.domain.dto.protection.VideoRecorderHardDiskDetectionEditDto;
 import com.xunmei.mediator.domain.dto.redis.RedisKey;
 import com.xunmei.mediator.domain.dto.videoDiagnosis.VideoDiagnosisDetailInfoVo;
 import com.xunmei.mediator.domain.dto.videoDiagnosis.VideoDiagnosisDto;
 import com.xunmei.mediator.util.CheckDataUtil;
 import com.xunmei.mediator.util.RedisUtil;
+import com.xunmei.system.api.RemoteDeviceService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysOrg;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.support.TransactionSynchronizationAdapter;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
 
 import javax.annotation.Resource;
+import java.text.ParseException;
 import java.util.*;
 import java.util.stream.Collectors;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author oygj
@@ -40,12 +56,15 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
     @Resource
     RemoteOrgService orgService;
     @Resource
-    NorthErrorService northErrorService;
+    private IVideoDiagnosisLogService videoDiagnosisLogService;
     @Resource
     MediatorCategoryMapper categoryMapper;
-
+    @Resource
+    RemoteDeviceService deviceService;
+    @Resource
+    MediatorAlarmCodeMapper alarmCodeMapper;
     @Override
-    public ReceiveErrorDto saveData(VideoDiagnosisDto videoDiagnosisDto, String msgId, String branchId) throws IllegalAccessException {
+    public ReceiveErrorDto saveData(VideoDiagnosisDto videoDiagnosisDto, String msgId, String branchId) throws IllegalAccessException, ParseException {
         ReceiveErrorDto error = new ReceiveErrorDto();
         //与上次接收到的数据进行比较,如果相同则不进行处理
         //这里要返回true,不然接口调用端会重复发送
@@ -61,8 +80,8 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
             SysOrg org = (SysOrg) map.get("org");
             SysDevice device = (SysDevice) map.get("device");
             MediatorCategory category = (MediatorCategory) map.get("category");
-         //   Map<String, Object> objectMap = this.buildEntityDto(videoDiagnosisDto, org, device, category);
-          //  this.saveDataInfo(objectMap, videoDiagnosisDto, device);
+            Map<String, Object> objectMap = this.buildEntityDto(videoDiagnosisDto, org, device, category);
+            this.saveDataInfo(objectMap, videoDiagnosisDto, device);
         }
         return error;
     }
@@ -101,8 +120,7 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
                 map.put("error", error);
                 return map;
             }
-           // MediatorCategory category = categoryMapper.selectById(device.getCategoryId());
-            MediatorCategory category=new  MediatorCategory();
+            MediatorCategory category = categoryMapper.selectById(device.getCategoryId());
             if (ObjectUtil.isNull(category)) {
                 error.setSuccess(false);
                 error.setErrorMsg("设备类型不存在");
@@ -163,4 +181,182 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
         return diff;
 
     }
+
+    private Map<String, Object> buildEntityDto(VideoDiagnosisDto videoDiagnosisDto, SysOrg org, SysDevice device, MediatorCategory category) throws ParseException {
+        Map<String, Object> objectMap = new HashMap<>();
+        MediatorVideoDiagnosisRecord videoDiagnosis = new MediatorVideoDiagnosisRecord();
+        videoDiagnosis.setId(IDHelper.id());
+        MediatorVideoDiagnosisRecord old = this.findByOrgIdAndEquipmentCodeAndChannelCode(org.getId(), videoDiagnosisDto.getEquipmentCode(), videoDiagnosisDto.getChannelCode());
+        if (old != null) {
+            videoDiagnosis = old;
+        }
+        Date date = new Date();
+        if (videoDiagnosis.getCreateTime() == null) {
+            videoDiagnosis.setCreateTime(date);
+        }
+
+        videoDiagnosis.setUpdateTime(date);
+        videoDiagnosis.setAlarmTime(videoDiagnosisDto.getAlarmTime());
+        videoDiagnosis.setChannelCode(videoDiagnosisDto.getChannelCode());
+        videoDiagnosis.setChannelName(videoDiagnosisDto.getChannelName());
+        videoDiagnosis.setDetailInfo(JSON.toJSONString(videoDiagnosisDto.getDetailInfo()));
+        videoDiagnosis.setEquipmentCode(videoDiagnosisDto.getEquipmentCode());
+        switch (videoDiagnosisDto.getIsAlarm()) {
+            case 0:
+                videoDiagnosis.setIsAlarm(1);
+                break;
+            case 1:
+                videoDiagnosis.setIsAlarm(0);
+                break;
+            default:
+                break;
+        }
+        videoDiagnosis.setOrgId(org.getId());
+        videoDiagnosis.setOrgName(org.getName());
+        videoDiagnosis.setOrgPath(org.getPath());
+        SysDevice hostDevice = deviceService.findByHostCode(videoDiagnosis.getEquipmentCode(),SecurityConstants.INNER);
+        if (hostDevice != null) {
+            videoDiagnosis.setEquipmentName(hostDevice.getDeviceName());
+        }
+        videoDiagnosis.setDeviceName(device.getDeviceName());
+        videoDiagnosis.setDeviceId(String.valueOf(device.getId()));
+        this.dealDetailInfo(videoDiagnosis);
+        objectMap.put("videoDiagnosis", videoDiagnosis);
+
+        QueryWrapper<MediatorAlarmCode> qw = new QueryWrapper<>();
+        qw.lambda().eq(MediatorAlarmCode::getParentId, 6);
+        qw.lambda().eq(MediatorAlarmCode::getDeleted, 0);
+        List<MediatorAlarmCode> codes = alarmCodeMapper.selectList(qw);
+        objectMap.put("codes", codes);
+
+       /* List<HostAlarmRecord> alarmRecords = this.buildHostAlarmRecord(videoDiagnosis, org, category, device, videoDiagnosisDto, codes);
+        if (alarmRecords != null && alarmRecords.size() > 0) {
+            QueryWrapper<HostAlarmRecord> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(HostAlarmRecord::getDeviceId, device.getId());
+            queryWrapper.lambda().eq(HostAlarmRecord::getOrgId, org.getId());
+            queryWrapper.lambda().eq(HostAlarmRecord::getAlarmStatus, 1);
+            List<HostAlarmRecord> alarmRecordList = hostAlarmRecordDao.list(queryWrapper);
+            //传过来的数据(告警未结束,需要插入的数据)
+            List<HostAlarmRecord> alarmRecordsa = alarmRecords.stream().filter(r -> r.getAlarmStatus() == 1).collect(Collectors.toList());
+            //传过来的数据(告警结束,需要修改的数据)
+            List<HostAlarmRecord> alarmRecordsb = alarmRecords.stream().filter(r -> r.getAlarmStatus() == 0).collect(Collectors.toList());
+            List<HostAlarmRecord> alarmRecordsInsert = new ArrayList<>();
+            List<HostAlarmRecord> alarmRecordsUpdate = new ArrayList<>();
+            if (alarmRecordsa != null && alarmRecordsa.size() > 0) {
+                for (HostAlarmRecord record : alarmRecordsa) {
+                    if (alarmRecordList.stream().filter(r -> r.getDeviceId().equals(record.getDeviceId()) && r.getOrgId().equals(record.getOrgId()) && r.getAlarmCode().equals(record.getAlarmCode())).count() > 0) {
+                        continue;
+                    } else {
+                        record.setId(IDHelper.id());
+                        alarmRecordsInsert.add(record);
+
+                    }
+                }
+                objectMap.put("alarmRecordsInsert", alarmRecordsInsert);
+            }
+            if (alarmRecordsb != null && alarmRecordsb.size() > 0) {
+                for (HostAlarmRecord record : alarmRecordsb) {
+                    if (alarmRecordList.stream().filter(r -> r.getDeviceId().equals(record.getDeviceId()) && r.getOrgId().equals(record.getOrgId()) && r.getAlarmCode().equals(record.getAlarmCode())).count() > 0) {
+                        List<HostAlarmRecord> recordaa = alarmRecordList.stream().filter(r -> r.getDeviceId().equals(record.getDeviceId()) && r.getOrgId().equals(record.getOrgId()) && r.getAlarmCode().equals(record.getAlarmCode())).collect(Collectors.toList());
+                        if (recordaa != null && recordaa.size() > 0) {
+                            HostAlarmRecord recorda = recordaa.get(0); //alarmRecordList.stream().filter(r -> r.getDeviceId().equals(record.getDeviceId()) && r.getOrgId().equals(record.getOrgId())).collect(Collectors.toList()).get(0);
+                            BeanHelper.copyProperties(recorda, record);
+                            alarmRecordsUpdate.add(recorda);
+                        }
+                    } else {
+                        continue;
+                    }
+                }
+                objectMap.put("alarmRecordsUpdate", alarmRecordsUpdate);
+            }
+        }*/
+        return objectMap;
+    }
+    private void  dealDetailInfo(MediatorVideoDiagnosisRecord record){
+        final String detailInfo = record.getDetailInfo();
+        if (ObjectUtil.isNotNull(detailInfo)) {
+            final List<VideoDiagnosisDetailInfoVo> list = JSON.parseArray(detailInfo, VideoDiagnosisDetailInfoVo.class);
+            if (ObjectUtil.isEmpty(list)) {
+                return;
+            }
+            for (VideoDiagnosisDetailInfoVo infoVo : list) {
+                switch (infoVo.getType()) {
+                    case 0:
+                        record.setSignalLost(infoVo.getState());
+                        break;
+                    case 1:
+                        record.setOcclude(infoVo.getState());
+                        break;
+                    case 2:
+                        record.setBrightness(infoVo.getState());
+                        break;
+                    case 3:
+                        record.setColorCast(infoVo.getState());
+                        break;
+                    case 4:
+                        record.setSnowflake(infoVo.getState());
+                        break;
+                    case 5:
+                        record.setStripe(infoVo.getState());
+                        break;
+                    case 6:
+                        record.setContrast(infoVo.getState());
+                        break;
+                    case 7:
+                        record.setBlurry(infoVo.getState());
+                        break;
+                    default:
+                        break;
+                }
+            }
+        }
+    }
+
+    @Override
+    public MediatorVideoDiagnosisRecord findByOrgIdAndEquipmentCodeAndChannelCode(Long orgId, String equipmentCode, String channelCode) {
+        return lambdaQuery()
+                .eq(MediatorVideoDiagnosisRecord::getOrgId, orgId)
+                .eq(MediatorVideoDiagnosisRecord::getEquipmentCode, equipmentCode)
+                .eq(MediatorVideoDiagnosisRecord::getChannelCode, channelCode)
+                .last("limit 1").one();
+    }
+
+
+    @Override
+    public void saveDataInfo(Map<String, Object> objectMap, VideoDiagnosisDto videoDiagnosisDto, SysDevice device) {
+        MediatorVideoDiagnosisRecord videoDiagnosis = (MediatorVideoDiagnosisRecord) objectMap.get("videoDiagnosis");
+       /* List<HostAlarmRecord> alarmRecordsInsert = (List<HostAlarmRecord>) objectMap.get("alarmRecordsInsert");
+        List<HostAlarmRecord> alarmRecordsUpdate = (List<HostAlarmRecord>) objectMap.get("alarmRecordsUpdate");*/
+        try {
+            videoDiagnosisLogService.saveData(videoDiagnosis);
+            this.saveOrUpdate(videoDiagnosis);
+            /*if(alarmRecordsInsert!=null&&alarmRecordsInsert.size()>0){
+                hostAlarmRecordDao.saveBatch(alarmRecordsInsert);
+            }
+            if(alarmRecordsUpdate!=null&&alarmRecordsUpdate.size()>0){
+                hostAlarmRecordDao.updateBatchById(alarmRecordsUpdate);
+            }*/
+        } catch (Exception e) {
+            throw new RuntimeException(e.getMessage());
+        }
+
+    /*    TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
+            @Override
+            public void afterCommit() {
+                //如果未开启自动生成运维单则 返回
+                if(alarmRecordsInsert!=null&&alarmRecordsInsert.size()>0){
+                    for (HostAlarmRecord record : alarmRecordsInsert) {
+                        List<AlarmCode> codes1 = codes.stream().filter(r -> r.getCode().equals(record.getAlarmCode())).collect(Collectors.toList());
+                        if (codes1 != null && codes1.size() > 0) {
+                            AlarmCode code = codes1.get(0);
+                            if (code != null && code.getAutoGenerate()!=null&& 0 != code.getAutoGenerate()) {
+                                deal(videoDiagnosisDto, videoDiagnosis, device.getId());
+                            }
+                        }
+
+                    }
+                }
+            }
+        });*/
+    }
 }

+ 4 - 3
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoIntegrityCheckServiceImpl.java

@@ -18,6 +18,7 @@ import com.xunmei.mediator.domain.dto.protection.ReceiveErrorDto;
 import com.xunmei.mediator.domain.dto.redis.RedisKey;
 import com.xunmei.mediator.domain.dto.videoIntegrityCheck.VideoIntegrityCheckDto;
 import com.xunmei.mediator.util.RedisUtil;
+import com.xunmei.system.api.RemoteDeviceService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysOrg;
@@ -48,7 +49,8 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
     NorthErrorService northErrorService;
     @Resource
     IVideoDaysCheckService videoDaysCheckService;
-
+    @Resource
+    RemoteDeviceService deviceService;
     @Override
     public ReceiveErrorDto saveData(VideoIntegrityCheckDto videoIntegrityCheckDto, String msgId, String branchId) {
         String msg = this.checkParam(videoIntegrityCheckDto);
@@ -87,8 +89,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         }
 
         //获取监控主机
-        //Device hostDevice = deviceService.findById(videoIntegrityCheckDto.getEquipmentCode());
-        final SysDevice hostDevice = new SysDevice();
+        SysDevice hostDevice = deviceService.findByHostCode(videoIntegrityCheckDto.getEquipmentCode(),SecurityConstants.INNER);
         if (hostDevice != null) {
             videoIntegrityCheck.setEquipmentName(hostDevice.getDeviceName());
         }

+ 5 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorAlarmCodeMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xunmei.mediator.api.mapper.MediatorAlarmCodeMapper">
+
+</mapper>

+ 0 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/video/MediatorCategoryMapper.xml → soc-modules/soc-modules-mediator/src/main/resources/mapper/MediatorCategoryMapper.xml


+ 0 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/video/NorthErrorMapper.xml → soc-modules/soc-modules-mediator/src/main/resources/mapper/NorthErrorMapper.xml


+ 0 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/video/VideoDaysCheckLogMapper.xml → soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDaysCheckLogMapper.xml


+ 0 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/video/VideoDaysCheckMapper.xml → soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDaysCheckMapper.xml


+ 0 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/video/VideoDiagnosisLogMapper.xml → soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDiagnosisLogMapper.xml


+ 0 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/video/VideoDiagnosisMapper.xml → soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDiagnosisMapper.xml


+ 0 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/video/VideoDiagnosisRecordMapper.xml → soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoDiagnosisRecordMapper.xml


+ 0 - 0
soc-modules/soc-modules-mediator/src/main/resources/mapper/video/VideoIntegrityCheckMapper.xml → soc-modules/soc-modules-mediator/src/main/resources/mapper/VideoIntegrityCheckMapper.xml


+ 6 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeviceController.java

@@ -291,4 +291,10 @@ public class SysDeviceController extends BaseController {
         }
         return null;
     }
+
+    @InnerAuth
+    @GetMapping("/device/findByHostCode/{code}")
+    SysDevice findByHostCode(@PathVariable("code") String code) {
+        return sysDeviceService.findByHostCode(code);
+    }
 }

+ 3 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeviceService.java

@@ -98,6 +98,9 @@ public interface ISysDeviceService extends IService<SysDevice> {
      */
     TableDataInfo<SysDevice> selectPage(SysDevice sysDevice);
 
+    SysDevice findByHostCode(String code);
+
+
     /**
      * 查询列表
      * @param listDto

+ 5 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java

@@ -339,4 +339,9 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
     public int deleteSysDeviceById(Long id) {
         return sysDeviceMapper.deleteById(id);
     }
+
+    @Override
+    public SysDevice findByHostCode(String code) {
+        return lambdaQuery().eq(SysDevice::getHostCode, code).last("limit 1").one();
+    }
 }