From e71d3d823093bafe0283a57aa640928709d09434 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Mon, 25 Sep 2023 11:51:01 +0800
Subject: [PATCH] 优化sql框架使用mybatis-plus代替mybatis

---
 src/main/java/com/ard/alarm/radar/service/impl/ArdEquipRadarServiceImpl.java         |   75 --
 src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java   |   17 
 src/main/java/com/ard/alarm/radar/domain/ArdEquipRadar.java                          |    5 
 src/main/resources/logback-spring.xml                                                |    4 
 src/main/java/com/ard/alarm/apponekey/service/IArdAlarmApponekeyService.java         |   47 -
 src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java              |   49 +-
 src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java     |   21 
 src/main/resources/application-prod.yml                                              |    8 
 src/main/java/com/ard/alarm/camera/domain/ArdCameras.java                            |    5 
 pom.xml                                                                              |   20 
 /dev/null                                                                            |  126 -----
 src/main/java/com/ard/alarm/apponekey/service/impl/ArdAlarmApponekeyServiceImpl.java |   60 --
 src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java                      |   17 
 src/main/java/com/ard/alarm/digitization/service/DataBridgeService.java              |    1 
 src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java                    |  597 ++++++++++++-------------
 src/main/java/com/ard/alarm/camera/service/IArdCamerasService.java                   |   10 
 src/main/resources/application-dev.yml                                               |   18 
 src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java           |   38 -
 src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java                    |   49 --
 src/main/java/com/ard/utils/other/CodeGeneration.java                                |  126 +++++
 src/main/java/com/ard/alarm/radar/service/IArdEquipRadarService.java                 |   45 -
 21 files changed, 531 insertions(+), 807 deletions(-)

diff --git a/pom.xml b/pom.xml
index fd515f5..6ac5930 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,11 +59,23 @@
             <artifactId>examples</artifactId>
             <version>1.0.0</version>
         </dependency>
-        <!--mybatis依赖-->
+        <!--MP代码生成器依赖-->
         <dependency>
-            <groupId>org.mybatis.spring.boot</groupId>
-            <artifactId>mybatis-spring-boot-starter</artifactId>
-            <version>2.2.2</version>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <version>3.5.3.1</version>
+        </dependency>
+        <!--velocity模板引擎-->
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.0</version>
+        </dependency>
+        <!--mybatis-plus依赖-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.5.1</version>
         </dependency>
         <!--Oracle jdbc-->
         <!--这里注意,某些ojdbc的版本不支持jdk1.8,遇到过,网上说这个ojdbc8支持,所以这里使用它-->
diff --git a/src/main/java/com/ard/alarm/apponekey/mapper/ArdAlarmApponekeyMapper.java b/src/main/java/com/ard/alarm/apponekey/mapper/ArdAlarmApponekeyMapper.java
deleted file mode 100644
index beb1681..0000000
--- a/src/main/java/com/ard/alarm/apponekey/mapper/ArdAlarmApponekeyMapper.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.ard.alarm.apponekey.mapper;
-
-import java.util.List;
-import com.ard.alarm.apponekey.domain.ArdAlarmApponekey;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * app一键报警Mapper接口
- * 
- * @author ard
- * @date 2023-07-21
- */
-@Mapper
-public interface ArdAlarmApponekeyMapper 
-{
-    /**
-     * 查询app一键报警
-     * 
-     * @param id app一键报警主键
-     * @return app一键报警
-     */
-    public ArdAlarmApponekey selectArdAlarmApponekeyById(String id);
-
-    /**
-     * 查询app一键报警列表
-     * 
-     * @param ardAlarmApponekey app一键报警
-     * @return app一键报警集合
-     */
-    public List<ArdAlarmApponekey> selectArdAlarmApponekeyList(ArdAlarmApponekey ardAlarmApponekey);
-
-    /**
-     * 新增app一键报警
-     * 
-     * @param ardAlarmApponekey app一键报警
-     * @return 结果
-     */
-    public int insertArdAlarmApponekey(ArdAlarmApponekey ardAlarmApponekey);
-
-    /**
-     * 修改app一键报警
-     * 
-     * @param ardAlarmApponekey app一键报警
-     * @return 结果
-     */
-    public int updateArdAlarmApponekey(ArdAlarmApponekey ardAlarmApponekey);
-
-    /**
-     * 删除app一键报警
-     * 
-     * @param id app一键报警主键
-     * @return 结果
-     */
-    public int deleteArdAlarmApponekeyById(String id);
-
-    /**
-     * 批量删除app一键报警
-     * 
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int deleteArdAlarmApponekeyByIds(String[] ids);
-}
diff --git a/src/main/java/com/ard/alarm/apponekey/service/IArdAlarmApponekeyService.java b/src/main/java/com/ard/alarm/apponekey/service/IArdAlarmApponekeyService.java
index 6d69469..5cc494e 100644
--- a/src/main/java/com/ard/alarm/apponekey/service/IArdAlarmApponekeyService.java
+++ b/src/main/java/com/ard/alarm/apponekey/service/IArdAlarmApponekeyService.java
@@ -1,6 +1,5 @@
 package com.ard.alarm.apponekey.service;
 
-import java.util.List;
 import com.ard.alarm.apponekey.domain.ArdAlarmApponekey;
 
 /**
@@ -9,53 +8,15 @@
  * @author ard
  * @date 2023-07-21
  */
-public interface IArdAlarmApponekeyService 
-{
-    /**
-     * 查询app一键报警
-     * 
-     * @param id app一键报警主键
-     * @return app一键报警
-     */
-    public ArdAlarmApponekey selectArdAlarmApponekeyById(String id);
-
-    /**
-     * 查询app一键报警列表
-     * 
-     * @param ardAlarmApponekey app一键报警
-     * @return app一键报警集合
-     */
-    public List<ArdAlarmApponekey> selectArdAlarmApponekeyList(ArdAlarmApponekey ardAlarmApponekey);
+public interface IArdAlarmApponekeyService {
 
     /**
      * 新增app一键报警
-     * 
+     *
      * @param ardAlarmApponekey app一键报警
      * @return 结果
      */
     public int insertArdAlarmApponekey(ArdAlarmApponekey ardAlarmApponekey);
-
-    /**
-     * 修改app一键报警
-     * 
-     * @param ardAlarmApponekey app一键报警
-     * @return 结果
-     */
-    public int updateArdAlarmApponekey(ArdAlarmApponekey ardAlarmApponekey);
-
-    /**
-     * 批量删除app一键报警
-     * 
-     * @param ids 需要删除的app一键报警主键集合
-     * @return 结果
-     */
-    public int deleteArdAlarmApponekeyByIds(String[] ids);
-
-    /**
-     * 删除app一键报警信息
-     * 
-     * @param id app一键报警主键
-     * @return 结果
-     */
-    public int deleteArdAlarmApponekeyById(String id);
 }
+
+
diff --git a/src/main/java/com/ard/alarm/apponekey/service/impl/ArdAlarmApponekeyServiceImpl.java b/src/main/java/com/ard/alarm/apponekey/service/impl/ArdAlarmApponekeyServiceImpl.java
index c958173..f002e47 100644
--- a/src/main/java/com/ard/alarm/apponekey/service/impl/ArdAlarmApponekeyServiceImpl.java
+++ b/src/main/java/com/ard/alarm/apponekey/service/impl/ArdAlarmApponekeyServiceImpl.java
@@ -8,13 +8,9 @@
 import com.ard.utils.uuid.IdUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import com.ard.alarm.apponekey.mapper.ArdAlarmApponekeyMapper;
 import com.ard.alarm.apponekey.domain.ArdAlarmApponekey;
 import com.ard.alarm.apponekey.service.IArdAlarmApponekeyService;
 
-import javax.annotation.Resource;
-
-import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
 
 /**
  * app一键报警Service业务层处理
@@ -25,30 +21,6 @@
 @Service
 @Slf4j(topic = "apponekey")
 public class ArdAlarmApponekeyServiceImpl implements IArdAlarmApponekeyService {
-    @Resource
-    private ArdAlarmApponekeyMapper ardAlarmApponekeyMapper;
-
-    /**
-     * 查询app一键报警
-     *
-     * @param id app一键报警主键
-     * @return app一键报警
-     */
-    @Override
-    public ArdAlarmApponekey selectArdAlarmApponekeyById(String id) {
-        return ardAlarmApponekeyMapper.selectArdAlarmApponekeyById(id);
-    }
-
-    /**
-     * 查询app一键报警列表
-     *
-     * @param ardAlarmApponekey app一键报警
-     * @return app一键报警
-     */
-    @Override
-    public List<ArdAlarmApponekey> selectArdAlarmApponekeyList(ArdAlarmApponekey ardAlarmApponekey) {
-        return ardAlarmApponekeyMapper.selectArdAlarmApponekeyList(ardAlarmApponekey);
-    }
 
     /**
      * 新增app一键报警
@@ -76,36 +48,4 @@
                 + "【高层】" + ardAlarmApponekey.getAltitude() + "【创建时间】" + ardAlarmApponekey.getCreateTime());
     }
 
-    /**
-     * 修改app一键报警
-     *
-     * @param ardAlarmApponekey app一键报警
-     * @return 结果
-     */
-    @Override
-    public int updateArdAlarmApponekey(ArdAlarmApponekey ardAlarmApponekey) {
-        return ardAlarmApponekeyMapper.updateArdAlarmApponekey(ardAlarmApponekey);
-    }
-
-    /**
-     * 批量删除app一键报警
-     *
-     * @param ids 需要删除的app一键报警主键
-     * @return 结果
-     */
-    @Override
-    public int deleteArdAlarmApponekeyByIds(String[] ids) {
-        return ardAlarmApponekeyMapper.deleteArdAlarmApponekeyByIds(ids);
-    }
-
-    /**
-     * 删除app一键报警信息
-     *
-     * @param id app一键报警主键
-     * @return 结果
-     */
-    @Override
-    public int deleteArdAlarmApponekeyById(String id) {
-        return ardAlarmApponekeyMapper.deleteArdAlarmApponekeyById(id);
-    }
 }
diff --git a/src/main/java/com/ard/alarm/camera/domain/ArdCameras.java b/src/main/java/com/ard/alarm/camera/domain/ArdCameras.java
index 5fa12ca..9d24096 100644
--- a/src/main/java/com/ard/alarm/camera/domain/ArdCameras.java
+++ b/src/main/java/com/ard/alarm/camera/domain/ArdCameras.java
@@ -1,6 +1,7 @@
 package com.ard.alarm.camera.domain;
 
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -63,8 +64,8 @@
     /**
      * 光电类型
      */
-
-    private String gdtype;
+    @TableField("gdtype")
+    private String gdType;
 
     /**
      * 通道号
diff --git a/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java b/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
index c75f1df..08a2e51 100644
--- a/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
+++ b/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 import com.ard.alarm.camera.domain.ArdCameras;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -11,22 +12,8 @@
  * @date 2023-02-11
  */
 @Mapper
-public interface ArdCamerasMapper 
+public interface ArdCamerasMapper extends BaseMapper<ArdCameras>
 {
-    /**
-     * 查询相机设备
-     * 
-     * @param id 相机设备主键
-     * @return 相机设备
-     */
-    public ArdCameras selectArdCamerasById(String id);
 
-    /**
-     * 查询相机设备列表
-     * 
-     * @param ardCameras 相机设备
-     * @return 相机设备集合
-     */
-    public List<ArdCameras> selectArdCamerasList(ArdCameras ardCameras);
 
 }
diff --git a/src/main/java/com/ard/alarm/camera/service/IArdCamerasService.java b/src/main/java/com/ard/alarm/camera/service/IArdCamerasService.java
index c93a92e..08af9f1 100644
--- a/src/main/java/com/ard/alarm/camera/service/IArdCamerasService.java
+++ b/src/main/java/com/ard/alarm/camera/service/IArdCamerasService.java
@@ -14,16 +14,8 @@
 public interface IArdCamerasService 
 {
     /**
-     * 查询相机设备
-     * 
-     * @param id 相机设备主键
-     * @return 相机设备
-     */
-    public ArdCameras selectArdCamerasById(String id);
-
-    /**
      * 查询相机设备列表
-     * 
+     *
      * @param ardCameras 相机设备
      * @return 相机设备集合
      */
diff --git a/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java b/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
index 7513cd8..af9336f 100644
--- a/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
+++ b/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
@@ -12,6 +12,8 @@
 import com.ard.alarm.external.domain.ArdEquipExternal;
 import com.ard.alarm.external.mapper.ArdEquipExternalMapper;
 import com.ard.utils.hiksdk.service.impl.HikClientUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
@@ -34,34 +36,31 @@
     private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
 
     public static List<ArdCameras> ardCameraList = new ArrayList<>();
-
     @Resource
     private ArdCamerasMapper ardCamerasMapper;
 
+    //初始化执行
     @Override
     public void run(ApplicationArguments args) {
         //加载sdk库
         HikClientUtil.loadHCNetSDKLib();
         //获取小光电尝试登录
-        ArdCameras ardCamera=new ArdCameras();
-        ardCamera.setGdtype("0");
-        ardCameraList = ardCamerasMapper.selectArdCamerasList(ardCamera);
+        ardCameraList = selectArdCamerasList(new ArdCameras());
         HikClientUtil.loginAllCamera(ardCameraList);
-        syncTask();
+        syncCameraListTask();
     }
 
     /**
-     * 同步任务
+     * 同步相机列表任务
+     * 实时获取在线的小光电
      * 刘苏义
      * 2023/8/11 9:09:27
      */
-    private void syncTask() {
+    private void syncCameraListTask() {
         scheduler.scheduleAtFixedRate(() -> {
             try {
                 //region 定时同步小光电
-                ArdCameras ardCamera=new ArdCameras();
-                ardCamera.setGdtype("0");
-                List<ArdCameras> newArdCameraList = ardCamerasMapper.selectArdCamerasList(ardCamera);
+                List<ArdCameras> newArdCameraList = selectArdCamerasList(new ArdCameras());
                 //需要更新的数据
                 List<ArdCameras> updateList = sameListWithDifferent(ardCameraList, newArdCameraList);
                 if (updateList.size() > 0) {
@@ -94,25 +93,16 @@
     }
 
     /**
-     * 查询相机设备
-     *
-     * @param id 相机设备主键
-     * @return 相机设备
-     */
-    @Override
-    public ArdCameras selectArdCamerasById(String id) {
-        return ardCamerasMapper.selectArdCamerasById(id);
-    }
-
-    /**
      * 查询相机设备列表
      *
-     * @param ardCameras 相机设备
+     * @param ardCamera 相机设备
      * @return 相机设备
      */
     @Override
-    public List<ArdCameras> selectArdCamerasList(ArdCameras ardCameras) {
-        return ardCamerasMapper.selectArdCamerasList(ardCameras);
+    public List<ArdCameras> selectArdCamerasList(ArdCameras ardCamera) {
+        ardCamera.setGdType("0");
+        Wrapper<ArdCameras> queryWrapper=new QueryWrapper<>(ardCamera);
+        return ardCamerasMapper.selectList(queryWrapper);
     }
 
 
diff --git a/src/main/java/com/ard/alarm/digitization/controller/DatabridgeController.java b/src/main/java/com/ard/alarm/digitization/controller/DatabridgeController.java
deleted file mode 100644
index 2014deb..0000000
--- a/src/main/java/com/ard/alarm/digitization/controller/DatabridgeController.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.ard.alarm.digitization.controller;
-
-import com.ard.alarm.digitization.model.DataBridge;
-import com.ard.alarm.digitization.service.DataBridgeService;
-import com.ard.utils.http.AjaxResult;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import javax.annotation.Resource;
-
-/**
- * @ClassName DatabridgeController
- * @Description:
- * @Author 刘苏义
- * @Date 2023/9/17 23:11
- * @Version 1.0
- */
-@RestController
-@RequestMapping("/alarm/digitization")
-public class DatabridgeController {
-
-    @Resource
-    DataBridgeService databridgeService;
-
-    @GetMapping("/list")
-    public AjaxResult list(DataBridge databridge) {
-        return AjaxResult.success(databridgeService.selectDatabridgeList(databridge));
-    }
-}
diff --git a/src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java b/src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java
deleted file mode 100644
index 498665e..0000000
--- a/src/main/java/com/ard/alarm/digitization/mapper/DataBridgeMapper.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.ard.alarm.digitization.mapper;
-
-import com.ard.alarm.digitization.model.DataBridge;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-@Mapper
-public interface DataBridgeMapper {
-
-    List<DataBridge> selectDatabridgeList(DataBridge row);
-
-    int deleteByPrimaryKey(String id);
-
-    int insert(DataBridge row);
-
-    int insertSelective(DataBridge row);
-
-    DataBridge selectByPrimaryKey(String id);
-
-    int updateByPrimaryKeySelective(DataBridge row);
-
-    int updateByPrimaryKey(DataBridge row);
-}
\ No newline at end of file
diff --git a/src/main/java/com/ard/alarm/digitization/service/DataBridgeService.java b/src/main/java/com/ard/alarm/digitization/service/DataBridgeService.java
index 527dfe8..94dfcec 100644
--- a/src/main/java/com/ard/alarm/digitization/service/DataBridgeService.java
+++ b/src/main/java/com/ard/alarm/digitization/service/DataBridgeService.java
@@ -6,5 +6,4 @@
 
 public interface DataBridgeService {
 
-    List<DataBridge> selectDatabridgeList(DataBridge row);
 }
diff --git a/src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java b/src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java
index fb31a67..981f2a8 100644
--- a/src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java
+++ b/src/main/java/com/ard/alarm/digitization/service/impl/DataBridgeServiceImpl.java
@@ -1,7 +1,6 @@
 package com.ard.alarm.digitization.service.impl;
 
 import com.alibaba.fastjson2.JSON;
-import com.ard.alarm.digitization.mapper.DataBridgeMapper;
 import com.ard.alarm.digitization.model.DataBridge;
 import com.ard.alarm.digitization.service.DataBridgeService;
 import com.ard.utils.jdbc.Query;
@@ -10,7 +9,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
+
 import java.util.Date;
 import java.util.List;
 
@@ -25,9 +24,6 @@
 @Slf4j(topic = "digitization3")
 public class DataBridgeServiceImpl implements DataBridgeService {
 
-
-    @Resource
-    DataBridgeMapper databridgeMapper;
     public static Date lastTime;
     @Value("${spring.digitization3.enabled}")
     private Boolean enabled;
@@ -62,21 +58,6 @@
         } catch (Exception ex) {
             log.error("3厂数字化报警数据处理异常:" + ex.getMessage());
         }
-    }
-
-    @Override
-    public List<DataBridge> selectDatabridgeList(DataBridge row) {
-        List<DataBridge> dataBridgeList;
-        if (lastTime == null) {
-            lastTime = new Date();
-            row.setRowNum(10);
-            dataBridgeList = databridgeMapper.selectDatabridgeList(row);
-            lastTime = dataBridgeList.get(0).getDateTime();
-        } else {
-            row.setDateTime(lastTime);
-            dataBridgeList = databridgeMapper.selectDatabridgeList(row);
-        }
-        return dataBridgeList;
     }
 
 }
diff --git a/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java b/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
index e5b3a23..af32b5c 100644
--- a/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
+++ b/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 import com.ard.alarm.external.domain.ArdEquipExternal;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
 
@@ -12,30 +13,30 @@
  * @date 2023-03-13
  */
 @Mapper
-public interface ArdEquipExternalMapper 
+public interface ArdEquipExternalMapper extends BaseMapper<ArdEquipExternal>
 {
-    /**
-     * 查询external
-     * 
-     * @param id external主键
-     * @return external
-     */
-    public ArdEquipExternal selectArdEquipExternalById(String id);
-
-
-    /**
-     * 查询external
-     *
-     * @param ardEquipExternal external
-     * @return external集合
-     */
-    public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal);
-    /**
-     * 查询external列表
-     * 
-     * @param ardEquipExternal external
-     * @return external集合
-     */
-    public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal);
+    ///**
+    // * 查询external
+    // *
+    // * @param id external主键
+    // * @return external
+    // */
+    //public ArdEquipExternal selectArdEquipExternalById(String id);
+    //
+    //
+    ///**
+    // * 查询external
+    // *
+    // * @param ardEquipExternal external
+    // * @return external集合
+    // */
+    //public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal);
+    ///**
+    // * 查询external列表
+    // *
+    // * @param ardEquipExternal external
+    // * @return external集合
+    // */
+    //public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal);
 
 }
diff --git a/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java b/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
index 45dd493..723ab35 100644
--- a/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
+++ b/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
@@ -11,6 +11,7 @@
 import com.ard.alarm.external.mapper.ArdEquipExternalMapper;
 import com.ard.alarm.external.service.IArdEquipExternalService;
 import com.ard.utils.hiksdk.service.impl.HikClientUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;
@@ -44,14 +45,14 @@
         ArdEquipExternal alarmHost = new ArdEquipExternal();
         alarmHost.setFactory("1");
         alarmHost.setType("1");
-        ardAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+        ardAlarmHostList = selectArdEquipExternalList(alarmHost);
         HikClientUtil.loginAllAlarmHost(ardAlarmHostList);
         log.debug("报警主机尝试登录");
         //获取全部门禁主机尝试登录
         ArdEquipExternal accessControlHost = new ArdEquipExternal();
         accessControlHost.setFactory("1");
         accessControlHost.setType("6");
-        ardAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(accessControlHost);
+        ardAccessHostList = selectArdEquipExternalList(accessControlHost);
         HikClientUtil.loginAllAccessControlHost(ardAccessHostList);
         log.debug("门禁主机尝试登录");
         //同步任务
@@ -70,7 +71,7 @@
                 ArdEquipExternal alarmHost = new ArdEquipExternal();
                 alarmHost.setFactory("1");
                 alarmHost.setType("1");
-                List<ArdEquipExternal> newAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+                List<ArdEquipExternal> newAlarmHostList = selectArdEquipExternalList(alarmHost);
                 //需要更新的数据
                 List<ArdEquipExternal> updateList = sameListWithDifferent(ardAlarmHostList, newAlarmHostList);
                 if (updateList.size() > 0) {
@@ -101,7 +102,7 @@
                 alarmHost = new ArdEquipExternal();
                 alarmHost.setFactory("1");
                 alarmHost.setType("6");
-                List<ArdEquipExternal> newAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+                List<ArdEquipExternal> newAccessHostList = selectArdEquipExternalList(alarmHost);
                 //需要更新的数据
                 updateList = sameListWithDifferent(ardAccessHostList, newAccessHostList);
                 if (updateList.size() > 0) {
@@ -142,12 +143,13 @@
      */
     @Override
     public ArdEquipExternal selectArdEquipExternalById(String id) {
-        return ardEquipExternalMapper.selectArdEquipExternalById(id);
+        return ardEquipExternalMapper.selectById(id);
     }
 
     @Override
     public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) {
-        return ardEquipExternalMapper.selectArdEquipExternal(ardEquipExternal);
+        QueryWrapper<ArdEquipExternal> queryWrapper=new QueryWrapper<>(ardEquipExternal);
+        return ardEquipExternalMapper.selectOne(queryWrapper);
     }
 
     /**
@@ -158,7 +160,8 @@
      */
     @Override
     public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal) {
-        return ardEquipExternalMapper.selectArdEquipExternalList(ardEquipExternal);
+        QueryWrapper<ArdEquipExternal> queryWrapper=new QueryWrapper<>(ardEquipExternal);
+        return ardEquipExternalMapper.selectList(queryWrapper);
     }
 
 
diff --git a/src/main/java/com/ard/alarm/radar/domain/ArdEquipRadar.java b/src/main/java/com/ard/alarm/radar/domain/ArdEquipRadar.java
index 7d13e4d..1bcadef 100644
--- a/src/main/java/com/ard/alarm/radar/domain/ArdEquipRadar.java
+++ b/src/main/java/com/ard/alarm/radar/domain/ArdEquipRadar.java
@@ -1,6 +1,8 @@
 package com.ard.alarm.radar.domain;
 
 import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
@@ -52,6 +54,9 @@
 
     /** 塔id */
     private String towerId;
+
+    /** 塔名称 */
+    @TableField(exist = false)
     private String towerName;
 
     /** 图像宽度 */
diff --git a/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java b/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
index 2d5755c..adab6f0 100644
--- a/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
+++ b/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 import com.ard.alarm.radar.domain.ArdEquipRadar;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -11,53 +12,7 @@
  * @date 2023-03-11
  */
 @Mapper
-public interface ArdEquipRadarMapper 
+public interface ArdEquipRadarMapper extends BaseMapper<ArdEquipRadar>
 {
-    /**
-     * 查询radar
-     * 
-     * @param id radar主键
-     * @return radar
-     */
-    public ArdEquipRadar selectArdEquipRadarById(String id);
 
-    /**
-     * 查询radar列表
-     * 
-     * @param ardEquipRadar radar
-     * @return radar集合
-     */
-    public List<ArdEquipRadar> selectArdEquipRadarList(ArdEquipRadar ardEquipRadar);
-
-    /**
-     * 新增radar
-     * 
-     * @param ardEquipRadar radar
-     * @return 结果
-     */
-    public int insertArdEquipRadar(ArdEquipRadar ardEquipRadar);
-
-    /**
-     * 修改radar
-     * 
-     * @param ardEquipRadar radar
-     * @return 结果
-     */
-    public int updateArdEquipRadar(ArdEquipRadar ardEquipRadar);
-
-    /**
-     * 删除radar
-     * 
-     * @param id radar主键
-     * @return 结果
-     */
-    public int deleteArdEquipRadarById(String id);
-
-    /**
-     * 批量删除radar
-     * 
-     * @param ids 需要删除的数据主键集合
-     * @return 结果
-     */
-    public int deleteArdEquipRadarByIds(String[] ids);
 }
diff --git a/src/main/java/com/ard/alarm/radar/service/IArdEquipRadarService.java b/src/main/java/com/ard/alarm/radar/service/IArdEquipRadarService.java
index 87889de..c999aa5 100644
--- a/src/main/java/com/ard/alarm/radar/service/IArdEquipRadarService.java
+++ b/src/main/java/com/ard/alarm/radar/service/IArdEquipRadarService.java
@@ -9,53 +9,14 @@
  * @author zj
  * @date 2023-03-11
  */
-public interface IArdEquipRadarService 
-{
-    /**
-     * 查询radar
-     * 
-     * @param id radar主键
-     * @return radar
-     */
-    public ArdEquipRadar selectArdEquipRadarById(String id);
+public interface IArdEquipRadarService {
 
     /**
      * 查询radar列表
-     * 
+     *
      * @param ardEquipRadar radar
      * @return radar集合
      */
     public List<ArdEquipRadar> selectArdEquipRadarList(ArdEquipRadar ardEquipRadar);
 
-    /**
-     * 新增radar
-     * 
-     * @param ardEquipRadar radar
-     * @return 结果
-     */
-    public int insertArdEquipRadar(ArdEquipRadar ardEquipRadar);
-
-    /**
-     * 修改radar
-     * 
-     * @param ardEquipRadar radar
-     * @return 结果
-     */
-    public int updateArdEquipRadar(ArdEquipRadar ardEquipRadar);
-
-    /**
-     * 批量删除radar
-     * 
-     * @param ids 需要删除的radar主键集合
-     * @return 结果
-     */
-    public int deleteArdEquipRadarByIds(String[] ids);
-
-    /**
-     * 删除radar信息
-     * 
-     * @param id radar主键
-     * @return 结果
-     */
-    public int deleteArdEquipRadarById(String id);
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/ard/alarm/radar/service/impl/ArdEquipRadarServiceImpl.java b/src/main/java/com/ard/alarm/radar/service/impl/ArdEquipRadarServiceImpl.java
index 70dd870..5b141dc 100644
--- a/src/main/java/com/ard/alarm/radar/service/impl/ArdEquipRadarServiceImpl.java
+++ b/src/main/java/com/ard/alarm/radar/service/impl/ArdEquipRadarServiceImpl.java
@@ -1,94 +1,37 @@
 package com.ard.alarm.radar.service.impl;
 
 import java.util.List;
+
+import com.ard.alarm.external.domain.ArdEquipExternal;
 import com.ard.alarm.radar.domain.ArdEquipRadar;
 import com.ard.alarm.radar.mapper.ArdEquipRadarMapper;
 import com.ard.alarm.radar.service.IArdEquipRadarService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
  * radarService业务层处理
- * 
+ *
  * @author zj
  * @date 2023-03-11
  */
 @Service
-public class ArdEquipRadarServiceImpl implements IArdEquipRadarService
-{
+public class ArdEquipRadarServiceImpl implements IArdEquipRadarService {
     @Autowired
     private ArdEquipRadarMapper ardEquipRadarMapper;
-
-    /**
-     * 查询radar
-     * 
-     * @param id radar主键
-     * @return radar
-     */
-    @Override
-    public ArdEquipRadar selectArdEquipRadarById(String id)
-    {
-        return ardEquipRadarMapper.selectArdEquipRadarById(id);
-    }
 
 
     /**
      * 查询radar列表
-     * 
+     *
      * @param ardEquipRadar radar
      * @return radar
      */
     @Override
-    public List<ArdEquipRadar> selectArdEquipRadarList(ArdEquipRadar ardEquipRadar)
-    {
-        return ardEquipRadarMapper.selectArdEquipRadarList(ardEquipRadar);
+    public List<ArdEquipRadar> selectArdEquipRadarList(ArdEquipRadar ardEquipRadar) {
+        QueryWrapper<ArdEquipRadar> queryWrapper = new QueryWrapper<>(ardEquipRadar);
+        return ardEquipRadarMapper.selectList(queryWrapper);
     }
 
-    /**
-     * 新增radar
-     * 
-     * @param ardEquipRadar radar
-     * @return 结果
-     */
-    @Override
-    public int insertArdEquipRadar(ArdEquipRadar ardEquipRadar)
-    {
-        return ardEquipRadarMapper.insertArdEquipRadar(ardEquipRadar);
-    }
-
-    /**
-     * 修改radar
-     * 
-     * @param ardEquipRadar radar
-     * @return 结果
-     */
-    @Override
-    public int updateArdEquipRadar(ArdEquipRadar ardEquipRadar)
-    {
-        return ardEquipRadarMapper.updateArdEquipRadar(ardEquipRadar);
-    }
-
-    /**
-     * 批量删除radar
-     * 
-     * @param ids 需要删除的radar主键
-     * @return 结果
-     */
-    @Override
-    public int deleteArdEquipRadarByIds(String[] ids)
-    {
-        return ardEquipRadarMapper.deleteArdEquipRadarByIds(ids);
-    }
-
-    /**
-     * 删除radar信息
-     * 
-     * @param id radar主键
-     * @return 结果
-     */
-    @Override
-    public int deleteArdEquipRadarById(String id)
-    {
-        return ardEquipRadarMapper.deleteArdEquipRadarById(id);
-    }
 }
diff --git a/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java b/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
index 9ee1b35..62f68de 100644
--- a/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
+++ b/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
@@ -24,6 +24,7 @@
 import java.nio.ByteBuffer;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName: FMSGCallBack
@@ -54,80 +55,75 @@
         String url = "";//事件图片
         //lCommand是传的报警类型
         //log.debug("报警事件类型:lCommand:" + Integer.toHexString(lCommand));
-        switch (lCommand) {
-            case HCNetSDK.COMM_ALARM_V30:
-                //log.debug("移动侦测");
-                ArdCameras ardCameras = new ArdCameras();
-                ardCameras.setIp(sDeviceIP);
-                ardCameras.setPort(wLinkPort);
-                IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
-                ArdCameras camera = ardCamerasService.selectArdCamerasList(ardCameras).get(0);
-                HCNetSDK.NET_DVR_ALARMINFO_V30 netDvrAlarminfoV30 = new HCNetSDK.NET_DVR_ALARMINFO_V30();
-                netDvrAlarminfoV30.write();
-                Pointer pNDAInfo = netDvrAlarminfoV30.getPointer();
-                pNDAInfo.write(0, pAlarmInfo.getByteArray(0, netDvrAlarminfoV30.size()), 0, netDvrAlarminfoV30.size());
-                netDvrAlarminfoV30.read();
-                switch (netDvrAlarminfoV30.dwAlarmType) {
-                    case 3:
-                        info = new CameraEventInfo();
-                        info.setAlarmName("移动侦测");
-                        info.setAlarmTime(fmt.format(new Date()));
-                        info.setCameraName(camera.getName());
-                        info.setCameraId(camera.getId());
-                        info.setCameraIp(camera.getIp());
-                        info.setCameraPort(camera.getPort());
-                        info.setCameraType(camera.getGdtype());
-                        info.setCameraChannel(Integer.valueOf(netDvrAlarminfoV30.byChannel[0]));
-                        info.setLongitude(camera.getLongitude());
-                        info.setLatitude(camera.getLatitude());
-                        info.setAlarmType("移动侦测");
-                        //图片存入minio
-                        url = savePicture(info);
-                        info.setPicUrl(url);
-                        publishMqtt(info);
-                        break;
-                }
-
-            case HCNetSDK.COMM_ALARM_RULE:
-                //log.debug("行为分析信息报警信息上报");
-                //region 行为分析信息
-                ardCameras = new ArdCameras();
-                ardCameras.setIp(sDeviceIP);
-                ardCameras.setPort(wLinkPort);
-                ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
-                ArdCameras ardCamera = ardCamerasService.selectArdCamerasList(ardCameras).get(0);
-
-                HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM();
-                strVcaAlarm.write();
-                Pointer pVCAInfo = strVcaAlarm.getPointer();
-                pVCAInfo.write(0, pAlarmInfo.getByteArray(0, strVcaAlarm.size()), 0, strVcaAlarm.size());
-                strVcaAlarm.read();
-                Integer ruleID = Integer.valueOf(strVcaAlarm.struRuleInfo.byRuleID);
-                sTime = DateUtils.parseTime(strVcaAlarm.dwAbsTime);//事件时间
-                String ipaddr = new String(strVcaAlarm.struDevInfo.struDevIP.sIpV4).trim();//设备ip
-                Integer channel = Integer.valueOf(strVcaAlarm.struDevInfo.byChannel);//通道
-                info = new CameraEventInfo();
-                info.setAlarmName("人员行为分析");
-                info.setAlarmTime(sTime);
-                info.setCameraName(ardCamera.getName());
-                info.setCameraId(ardCamera.getId());
-                info.setCameraIp(ardCamera.getIp());
-                info.setCameraPort(ardCamera.getPort());
-                info.setCameraType(ardCamera.getGdtype());
-                info.setCameraChannel(channel);
-                info.setLongitude(ardCamera.getLongitude());
-                info.setLatitude(ardCamera.getLatitude());
-                info.setRuleId(ruleID);
-                switch (strVcaAlarm.struRuleInfo.wEventTypeEx) {
-                    case 1: //region穿越警戒面 (越界侦测)
-                        info.setAlarmType("越界侦测报警");
-                        strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_TRAVERSE_PLANE.class);
-                        //图片存入minio
-                        url = savePicture(info);
-                        info.setPicUrl(url);
-                        publishMqtt(info);
-                        //endregion
-                        break;
+        ArdCameras ardCameras = new ArdCameras();
+        ardCameras.setIp(sDeviceIP);
+        ardCameras.setPort(wLinkPort);
+        IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class);
+        List<ArdCameras> ardCamerasList = ardCamerasService.selectArdCamerasList(ardCameras);
+        if (ardCamerasList.size() > 0) {
+            ArdCameras camera = ardCamerasService.selectArdCamerasList(ardCameras).get(0);
+            switch (lCommand) {
+                case HCNetSDK.COMM_ALARM_V30:
+                    //log.debug("移动侦测");
+                    HCNetSDK.NET_DVR_ALARMINFO_V30 netDvrAlarminfoV30 = new HCNetSDK.NET_DVR_ALARMINFO_V30();
+                    netDvrAlarminfoV30.write();
+                    Pointer pNDAInfo = netDvrAlarminfoV30.getPointer();
+                    pNDAInfo.write(0, pAlarmInfo.getByteArray(0, netDvrAlarminfoV30.size()), 0, netDvrAlarminfoV30.size());
+                    netDvrAlarminfoV30.read();
+                    switch (netDvrAlarminfoV30.dwAlarmType) {
+                        case 3:
+                            info = new CameraEventInfo();
+                            info.setAlarmName("移动侦测");
+                            info.setAlarmTime(fmt.format(new Date()));
+                            info.setCameraName(camera.getName());
+                            info.setCameraId(camera.getId());
+                            info.setCameraIp(camera.getIp());
+                            info.setCameraPort(camera.getPort());
+                            info.setCameraType(camera.getGdType());
+                            info.setCameraChannel(Integer.valueOf(netDvrAlarminfoV30.byChannel[0]));
+                            info.setLongitude(camera.getLongitude());
+                            info.setLatitude(camera.getLatitude());
+                            info.setAlarmType("移动侦测");
+                            //图片存入minio
+                            url = savePicture(info);
+                            info.setPicUrl(url);
+                            publishMqtt(info);
+                            break;
+                    }
+                case HCNetSDK.COMM_ALARM_RULE:
+                    //log.debug("行为分析信息报警信息上报");
+                    //region 行为分析信息
+                    HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM();
+                    strVcaAlarm.write();
+                    Pointer pVCAInfo = strVcaAlarm.getPointer();
+                    pVCAInfo.write(0, pAlarmInfo.getByteArray(0, strVcaAlarm.size()), 0, strVcaAlarm.size());
+                    strVcaAlarm.read();
+                    Integer ruleID = Integer.valueOf(strVcaAlarm.struRuleInfo.byRuleID);
+                    sTime = DateUtils.parseTime(strVcaAlarm.dwAbsTime);//事件时间
+                    String ipaddr = new String(strVcaAlarm.struDevInfo.struDevIP.sIpV4).trim();//设备ip
+                    Integer channel = Integer.valueOf(strVcaAlarm.struDevInfo.byChannel);//通道
+                    info = new CameraEventInfo();
+                    info.setAlarmName("人员行为分析");
+                    info.setAlarmTime(sTime);
+                    info.setCameraName(camera.getName());
+                    info.setCameraId(camera.getId());
+                    info.setCameraIp(camera.getIp());
+                    info.setCameraPort(camera.getPort());
+                    info.setCameraType(camera.getGdType());
+                    info.setCameraChannel(channel);
+                    info.setLongitude(camera.getLongitude());
+                    info.setLatitude(camera.getLatitude());
+                    info.setRuleId(ruleID);
+                    switch (strVcaAlarm.struRuleInfo.wEventTypeEx) {
+                        case 1: //region穿越警戒面 (越界侦测)
+                            info.setAlarmType("越界侦测报警");
+                            strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_TRAVERSE_PLANE.class);
+                            //图片存入minio
+                            url = savePicture(info);
+                            info.setPicUrl(url);
+                            publishMqtt(info);
+                            //endregion
+                            break;
 //                    case 2: //region 目标进入区域
 //                        info.setAlarmType("目标进入区域报警");
 //                        strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_AREA.class);
@@ -138,15 +134,15 @@
 //                        strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_AREA.class);
 //                        //endregion
 //                        break;
-                    case 4: //region 周界入侵
-                        info.setAlarmType("周界入侵报警");
-                        strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_INTRUSION.class);
-                        //图片存入minio
-                        url = savePicture(info);
-                        info.setPicUrl(url);
-                        publishMqtt(info);
-                        //endregion
-                        break;
+                        case 4: //region 周界入侵
+                            info.setAlarmType("周界入侵报警");
+                            strVcaAlarm.struRuleInfo.uEventParam.setType(HCNetSDK.NET_VCA_INTRUSION.class);
+                            //图片存入minio
+                            url = savePicture(info);
+                            info.setPicUrl(url);
+                            publishMqtt(info);
+                            //endregion
+                            break;
 //                    case 5: //region 徘徊
 //                        info.setAlarmType("徘徊事件报警");
 //                        //endregion
@@ -171,224 +167,221 @@
 //                        info.setAlarmType("玩手机报警事件");
 //                        //endregion
 //                        break;
-                    default:
-                        // log.debug("未知行为事件类型:" + strVcaAlarm.struRuleInfo.wEventTypeEx);
-                        break;
-                }
-                //endregion
-                break;
-//            case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT:
-//                log.debug("人脸检测事件上报(暂不解析)");
-//                break;
-//            case HCNetSDK.COMM_GISINFO_UPLOAD:
-//                log.debug("GPS报警信息上报(暂不解析)");
-//                break;
-            case HCNetSDK.COMM_ALARMHOST_CID_ALARM:
-                //log.debug("报警主机CID报告报警上报");
-                //region 报警主机报警处理
-                ArdEquipExternal ardEquipExternal = new ArdEquipExternal();
-                ardEquipExternal.setIp(sDeviceIP);
-                ardEquipExternal.setPort(wLinkPort);
-                IArdEquipExternalService ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class);
-                ardEquipExternal = ardEquipExternalService.selectArdEquipExternal(ardEquipExternal);
-
-
-                HCNetSDK.NET_DVR_CID_ALARM netDvrCidAlarm = new HCNetSDK.NET_DVR_CID_ALARM();
-                netDvrCidAlarm.write();
-                Pointer pCIDInfo = netDvrCidAlarm.getPointer();
-                pCIDInfo.write(0, pAlarmInfo.getByteArray(0, netDvrCidAlarm.size()), 0, netDvrCidAlarm.size());
-                netDvrCidAlarm.read();
-                //CID事件名
-                String sCIDCode = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDCode);//CID事件名
-
-                //CID事件名
-                //String sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe);//CID事件名
-                int position = ByteUtils.findIndexOfDoubleZero(netDvrCidAlarm.sCIDDescribe);
-                String sCIDDescribe;
-                if (position != -1) {
-                    byte[] result = new byte[position];
-                    System.arraycopy(netDvrCidAlarm.sCIDDescribe, 0, result, 0, position);
-                    sCIDDescribe = ByteUtils.bytesToStringZh(result);
-                } else {
-                    sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe);
-                }
-                //触发报警的时间点
-                String struTriggerTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struTriggerTime), "yyyy-M-d H:m:s");
-                //上传报警的时间点
-                String struUploadTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struUploadTime), "yyyy-M-d H:m:s");
-                //报告类型
-                String byReportType = "";
-                switch (netDvrCidAlarm.byReportType) {
-                    case 1:
-                        byReportType = "防区报警";
-                        break;
-                    case 2:
-                        byReportType = "视频报警";
-                        break;
-                    case 3:
-                        byReportType = "软防区报警";
-                        break;
-                    case 4:
-                        byReportType = "挟持报警";
-                        break;
-                    case 5:
-                        byReportType = "防拆报警 ";
-                        break;
-                    case 6:
-                        byReportType = "操作报告 ";
-                        break;
-                    case 7:
-                        byReportType = "异常报告 ";
-                        break;
-                }
-                //子系统号
-                Integer bySubSysNo = Integer.valueOf(netDvrCidAlarm.bySubSysNo);
-                //防区号 起始0
-                Integer wDefenceNo = Integer.valueOf(netDvrCidAlarm.wDefenceNo);
-                //防区名称
-                String wDefenceName = "";
-                if (!bySubSysNo.equals(-1)) {
-                    CameraCmd cmd = new CameraCmd();
-                    cmd.setCameraId(ardEquipExternal.getId());
-                    cmd.setWZoneIndex(wDefenceNo);
-                    wDefenceName = HikClientUtil.getDefenseZoneName(cmd);
-                }
-                if (sCIDDescribe.contains("恢复")) {
-                    return true;
-                }
-
-                ExternalAlarmEventInfo externalAlarmEventInfo = new ExternalAlarmEventInfo();
-                externalAlarmEventInfo.setAlarmId(sCIDCode);
-                externalAlarmEventInfo.setAlarmName(sCIDDescribe);
-                externalAlarmEventInfo.setDefenseId((wDefenceNo + 1));
-                externalAlarmEventInfo.setDefenseName(wDefenceName);
-                externalAlarmEventInfo.setSubSysNo(bySubSysNo);
-                externalAlarmEventInfo.setAlarmType(byReportType);
-                externalAlarmEventInfo.setAlarmTime(struTriggerTime);
-                externalAlarmEventInfo.setAlarmHostId(ardEquipExternal.getId());
-                publishMqtt(externalAlarmEventInfo);
-                //endregion
-                break;
-            case HCNetSDK.COMM_ALARM_ACS:
-                //region 门禁主机报警处理
-
-                ArdEquipExternal accessControlHost = new ArdEquipExternal();
-                accessControlHost.setIp(sDeviceIP);
-                accessControlHost.setPort(wLinkPort);
-                ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class);
-                accessControlHost = ardEquipExternalService.selectArdEquipExternal(accessControlHost);
-
-                HCNetSDK.NET_DVR_ACS_ALARM_INFO strACSInfo = new HCNetSDK.NET_DVR_ACS_ALARM_INFO();
-                strACSInfo.write();
-                Pointer acsInfo = strACSInfo.getPointer();
-                acsInfo.write(0, pAlarmInfo.getByteArray(0, strACSInfo.size()), 0, strACSInfo.size());
-                strACSInfo.read();
-                int dwMajor = strACSInfo.dwMajor;
-
-                if (dwMajor != 5) {
-                    //只获取事件
-                    // log.debug("非事件报警数据上报(暂不解析)");
-                    break;
-                }
-
-                int dwMinor = strACSInfo.dwMinor;
-                if (dwMinor != 80 && dwMinor != 104) {
-                    //只解析真人检测失败和人脸抓拍失败的次类型事件
-                    break;
-                }
-                String alarmType = "";
-                switch (dwMinor) {
-                    case 104:
-                        alarmType = "真人检测失败";
-                        break;
-                    case 80:
-                        alarmType = "人脸抓拍失败";
-                        break;
-                }
-                log.debug("门禁主机报警上传:"+alarmType);
-                String alarmTime = DateUtils.convertDate(parseAlarmTime(strACSInfo.struTime), "yyyy-M-d H:m:s");
-
-                //事件图片处理
-                int dwPicDataLen = strACSInfo.dwPicDataLen;
-                if (dwPicDataLen > 0) {
-                    try {
-                        //将字节写入文件
-                        long offset = 0;
-                        ByteBuffer buffers = strACSInfo.pPicData.getByteBuffer(offset, strACSInfo.dwPicDataLen);
-                        byte[] bytes = new byte[strACSInfo.dwPicDataLen];
-                        buffers.rewind();
-                        buffers.get(bytes);
-                        InputStream input = new ByteArrayInputStream(bytes);
-                        String bucketName = "pic";
-                        String objectName = "alarm/" + IdUtils.simpleUUID() + ".jpeg";
-                        boolean uploadObject = MinioUtil.uploadObject(bucketName, objectName, input,input.available(), "image/JPEG");
-                        if (uploadObject) {
-                            url = MinioUtil.getBucketObjectUrl(bucketName, objectName);
-                            //log.debug("上传文件成功!" + url);
-                        }
-                    } catch (Exception e) {
-                        log.error("图片保存失败");
+                        default:
+                            // log.debug("未知行为事件类型:" + strVcaAlarm.struRuleInfo.wEventTypeEx);
+                            break;
                     }
-                }
-                HCNetSDK.NET_DVR_ACS_EVENT_INFO struAcsEventInfo = strACSInfo.struAcsEventInfo;
-                int byType = struAcsEventInfo.byType;
-                String defenseType = "";
-                switch (byType) {
-                    case 0:
-                        defenseType = "即时防区";
-                        break;
-                    case 1:
-                        defenseType = "24小时防区";
-                        break;
-                    case 2:
-                        defenseType = "延时防区";
-                        break;
-                    case 3:
-                        defenseType = "内部防区";
-                        break;
-                    case 4:
-                        defenseType = "钥匙防区";
-                        break;
-                    case 5:
-                        defenseType = "火警防区";
-                        break;
-                    case 6:
-                        defenseType = "周界防区";
-                        break;
-                    case 7:
-                        defenseType = "24小时无声防区";
-                        break;
-                    case 8:
-                        defenseType = "24小时辅助防区";
-                        break;
-                    case 9:
-                        defenseType = "24小时震动防区";
-                        break;
-                    case 10:
-                        defenseType = "门禁紧急开门防区";
-                        break;
-                    case 11:
-                        defenseType = "门禁紧急关门防区";
-                        break;
-                    default:
-                        defenseType = "无";
-                        break;
-                }
-                AccessControlHostEventInfo accessControlHostEventInfo = new AccessControlHostEventInfo();
-                accessControlHostEventInfo.setSerialNo(struAcsEventInfo.dwSerialNo);
-                accessControlHostEventInfo.setAlarmType(alarmType);
-                accessControlHostEventInfo.setDoorNo(struAcsEventInfo.dwDoorNo);
-                accessControlHostEventInfo.setDefenseType(defenseType);
-                accessControlHostEventInfo.setAlarmTime(alarmTime);
-                accessControlHostEventInfo.setPicUrl(url);
-                accessControlHostEventInfo.setAcsId(accessControlHost.getId());
-                publishMqtt(accessControlHostEventInfo);
-                //endregion
-                break;
-            default:
-                // log.debug("未知报警事件类型:lCommand:" + Integer.toHexString(lCommand));
-                break;
+                    //endregion
+                    break;
+                case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT:
+                    //log.debug("人脸检测事件上报(暂不解析)");
+                    break;
+                case HCNetSDK.COMM_GISINFO_UPLOAD:
+                    //log.debug("GPS报警信息上报(暂不解析)");
+                    break;
+                case HCNetSDK.COMM_ALARMHOST_CID_ALARM:
+                    //log.debug("报警主机CID报告报警上报");
+                    //region 报警主机报警处理
+                    ArdEquipExternal ardEquipExternal = new ArdEquipExternal();
+                    ardEquipExternal.setIp(sDeviceIP);
+                    ardEquipExternal.setPort(wLinkPort);
+                    IArdEquipExternalService ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class);
+                    ardEquipExternal = ardEquipExternalService.selectArdEquipExternal(ardEquipExternal);
 
+                    HCNetSDK.NET_DVR_CID_ALARM netDvrCidAlarm = new HCNetSDK.NET_DVR_CID_ALARM();
+                    netDvrCidAlarm.write();
+                    Pointer pCIDInfo = netDvrCidAlarm.getPointer();
+                    pCIDInfo.write(0, pAlarmInfo.getByteArray(0, netDvrCidAlarm.size()), 0, netDvrCidAlarm.size());
+                    netDvrCidAlarm.read();
+                    //CID事件名
+                    String sCIDCode = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDCode);//CID事件名
+                    //CID事件名
+                    //String sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe);//CID事件名
+                    int position = ByteUtils.findIndexOfDoubleZero(netDvrCidAlarm.sCIDDescribe);
+                    String sCIDDescribe;
+                    if (position != -1) {
+                        byte[] result = new byte[position];
+                        System.arraycopy(netDvrCidAlarm.sCIDDescribe, 0, result, 0, position);
+                        sCIDDescribe = ByteUtils.bytesToStringZh(result);
+                    } else {
+                        sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe);
+                    }
+                    //触发报警的时间点
+                    String struTriggerTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struTriggerTime), "yyyy-M-d H:m:s");
+                    //上传报警的时间点
+                    String struUploadTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struUploadTime), "yyyy-M-d H:m:s");
+                    //报告类型
+                    String byReportType = "";
+                    switch (netDvrCidAlarm.byReportType) {
+                        case 1:
+                            byReportType = "防区报警";
+                            break;
+                        case 2:
+                            byReportType = "视频报警";
+                            break;
+                        case 3:
+                            byReportType = "软防区报警";
+                            break;
+                        case 4:
+                            byReportType = "挟持报警";
+                            break;
+                        case 5:
+                            byReportType = "防拆报警 ";
+                            break;
+                        case 6:
+                            byReportType = "操作报告 ";
+                            break;
+                        case 7:
+                            byReportType = "异常报告 ";
+                            break;
+                    }
+                    //子系统号
+                    Integer bySubSysNo = Integer.valueOf(netDvrCidAlarm.bySubSysNo);
+                    //防区号 起始0
+                    Integer wDefenceNo = Integer.valueOf(netDvrCidAlarm.wDefenceNo);
+                    //防区名称
+                    String wDefenceName = "";
+                    if (!bySubSysNo.equals(-1)) {
+                        CameraCmd cmd = new CameraCmd();
+                        cmd.setCameraId(ardEquipExternal.getId());
+                        cmd.setWZoneIndex(wDefenceNo);
+                        wDefenceName = HikClientUtil.getDefenseZoneName(cmd);
+                    }
+                    if (sCIDDescribe.contains("恢复")) {
+                        return true;
+                    }
+
+                    ExternalAlarmEventInfo externalAlarmEventInfo = new ExternalAlarmEventInfo();
+                    externalAlarmEventInfo.setAlarmId(sCIDCode);
+                    externalAlarmEventInfo.setAlarmName(sCIDDescribe);
+                    externalAlarmEventInfo.setDefenseId((wDefenceNo + 1));
+                    externalAlarmEventInfo.setDefenseName(wDefenceName);
+                    externalAlarmEventInfo.setSubSysNo(bySubSysNo);
+                    externalAlarmEventInfo.setAlarmType(byReportType);
+                    externalAlarmEventInfo.setAlarmTime(struTriggerTime);
+                    externalAlarmEventInfo.setAlarmHostId(ardEquipExternal.getId());
+                    publishMqtt(externalAlarmEventInfo);
+                    //endregion
+                    break;
+                case HCNetSDK.COMM_ALARM_ACS:
+                    //region 门禁主机报警处理
+                    ArdEquipExternal accessControlHost = new ArdEquipExternal();
+                    accessControlHost.setIp(sDeviceIP);
+                    accessControlHost.setPort(wLinkPort);
+                    ardEquipExternalService = SpringUtils.getBean(IArdEquipExternalService.class);
+                    accessControlHost = ardEquipExternalService.selectArdEquipExternal(accessControlHost);
+                    HCNetSDK.NET_DVR_ACS_ALARM_INFO strACSInfo = new HCNetSDK.NET_DVR_ACS_ALARM_INFO();
+                    strACSInfo.write();
+                    Pointer acsInfo = strACSInfo.getPointer();
+                    acsInfo.write(0, pAlarmInfo.getByteArray(0, strACSInfo.size()), 0, strACSInfo.size());
+                    strACSInfo.read();
+                    int dwMajor = strACSInfo.dwMajor;
+
+                    if (dwMajor != 5) {
+                        //只获取事件
+                        // log.debug("非事件报警数据上报(暂不解析)");
+                        break;
+                    }
+
+                    int dwMinor = strACSInfo.dwMinor;
+                    if (dwMinor != 80 && dwMinor != 104) {
+                        //只解析真人检测失败和人脸抓拍失败的次类型事件
+                        break;
+                    }
+                    String alarmType = "";
+                    switch (dwMinor) {
+                        case 104:
+                            alarmType = "真人检测失败";
+                            break;
+                        case 80:
+                            alarmType = "人脸抓拍失败";
+                            break;
+                    }
+                    log.debug("门禁主机报警上传:" + alarmType);
+                    String alarmTime = DateUtils.convertDate(parseAlarmTime(strACSInfo.struTime), "yyyy-M-d H:m:s");
+
+                    //事件图片处理
+                    int dwPicDataLen = strACSInfo.dwPicDataLen;
+                    if (dwPicDataLen > 0) {
+                        try {
+                            //将字节写入文件
+                            long offset = 0;
+                            ByteBuffer buffers = strACSInfo.pPicData.getByteBuffer(offset, strACSInfo.dwPicDataLen);
+                            byte[] bytes = new byte[strACSInfo.dwPicDataLen];
+                            buffers.rewind();
+                            buffers.get(bytes);
+                            InputStream input = new ByteArrayInputStream(bytes);
+                            String bucketName = "pic";
+                            String objectName = "alarm/" + IdUtils.simpleUUID() + ".jpeg";
+                            boolean uploadObject = MinioUtil.uploadObject(bucketName, objectName, input, input.available(), "image/JPEG");
+                            if (uploadObject) {
+                                url = MinioUtil.getBucketObjectUrl(bucketName, objectName);
+                                //log.debug("上传文件成功!" + url);
+                            }
+                        } catch (Exception e) {
+                            log.error("图片保存失败");
+                        }
+                    }
+                    HCNetSDK.NET_DVR_ACS_EVENT_INFO struAcsEventInfo = strACSInfo.struAcsEventInfo;
+                    int byType = struAcsEventInfo.byType;
+                    String defenseType = "";
+                    switch (byType) {
+                        case 0:
+                            defenseType = "即时防区";
+                            break;
+                        case 1:
+                            defenseType = "24小时防区";
+                            break;
+                        case 2:
+                            defenseType = "延时防区";
+                            break;
+                        case 3:
+                            defenseType = "内部防区";
+                            break;
+                        case 4:
+                            defenseType = "钥匙防区";
+                            break;
+                        case 5:
+                            defenseType = "火警防区";
+                            break;
+                        case 6:
+                            defenseType = "周界防区";
+                            break;
+                        case 7:
+                            defenseType = "24小时无声防区";
+                            break;
+                        case 8:
+                            defenseType = "24小时辅助防区";
+                            break;
+                        case 9:
+                            defenseType = "24小时震动防区";
+                            break;
+                        case 10:
+                            defenseType = "门禁紧急开门防区";
+                            break;
+                        case 11:
+                            defenseType = "门禁紧急关门防区";
+                            break;
+                        default:
+                            defenseType = "无";
+                            break;
+                    }
+                    AccessControlHostEventInfo accessControlHostEventInfo = new AccessControlHostEventInfo();
+                    accessControlHostEventInfo.setSerialNo(struAcsEventInfo.dwSerialNo);
+                    accessControlHostEventInfo.setAlarmType(alarmType);
+                    accessControlHostEventInfo.setDoorNo(struAcsEventInfo.dwDoorNo);
+                    accessControlHostEventInfo.setDefenseType(defenseType);
+                    accessControlHostEventInfo.setAlarmTime(alarmTime);
+                    accessControlHostEventInfo.setPicUrl(url);
+                    accessControlHostEventInfo.setAcsId(accessControlHost.getId());
+                    publishMqtt(accessControlHostEventInfo);
+                    //endregion
+                    break;
+                default:
+                    // log.debug("未知报警事件类型:lCommand:" + Integer.toHexString(lCommand));
+                    break;
+
+            }
         }
         return true;
     }
@@ -399,7 +392,7 @@
      */
     private String savePicture(CameraEventInfo info) {
         CameraCmd cmd = new CameraCmd();
-        String key=info.getCameraIp()+":"+info.getCameraPort();
+        String key = info.getCameraIp() + ":" + info.getCameraPort();
         ArdCameras Cameras = GlobalVariable.cameraMap.get(key);
         if (Cameras == null) {
             return "";
@@ -407,7 +400,7 @@
         cmd.setCameraId(Cameras.getId());
         cmd.setChannelNum(info.getCameraChannel());
         cmd.setBucketName("pic");
-        String filename =  "alarm" + "/" + IdUtils.simpleUUID() + ".jpg";
+        String filename = "alarm" + "/" + IdUtils.simpleUUID() + ".jpg";
         cmd.setObjectName(filename);
         String url = HikClientUtil.picCutCate(cmd);
         return url;
@@ -446,7 +439,7 @@
      * 通用光电报警推送mqtt
      */
     private void publishMqtt(CameraEventInfo info) {
-         printLog(info);
+        printLog(info);
         MqttConsumer.publish(2, false, "camera", JSON.toJSONString(info));
     }
 
diff --git a/src/main/java/com/ard/utils/other/CodeGeneration.java b/src/main/java/com/ard/utils/other/CodeGeneration.java
new file mode 100644
index 0000000..e7994a4
--- /dev/null
+++ b/src/main/java/com/ard/utils/other/CodeGeneration.java
@@ -0,0 +1,126 @@
+package com.ard.utils.other;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.Oracle12cDialect;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.querys.OracleQuery;
+import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import java.util.Collections;
+
+/**
+ * @ClassName: CodeGeneration
+ * @Description: 代码生成器
+ * @Author: Administrator
+ * @Date: 2023年03月25日 14:49
+ * @Version: 1.0
+ **/
+public class CodeGeneration {
+    public static void main(String[] args) {
+        /**
+         * 先配置数据源
+         */
+        //PostgreSqlQuery postgreSqlQuery = new PostgreSqlQuery() {
+        //    @Override
+        //    public String[] fieldCustom() {
+        //        return new String[]{"Default"};
+        //    }
+        //};
+
+        OracleQuery oracleQuery = new OracleQuery() {
+            @Override
+            public String[] fieldCustom() {
+                return new String[]{"Default"};
+            }
+        };
+        DataSourceConfig dsc = new DataSourceConfig.Builder("jdbc:oracle:thin:@//112.98.126.2:21521/orcl","c##ard_user","123456")
+                .dbQuery(oracleQuery).build();
+        //通过datasourceConfig创建AutoGenerator
+        AutoGenerator generator = new AutoGenerator(dsc);
+
+        /**
+         * 全局配置
+         */
+        String projectPath = System.getProperty("user.dir"); //获取项目路径
+        String filePath = projectPath + "/src/main/java";  //java下的文件路径
+        GlobalConfig global = new GlobalConfig.Builder()
+                .outputDir(filePath)//生成的输出路径
+                .author("刘苏义")//生成的作者名字
+                //.enableSwagger()开启swagger,需要添加swagger依赖并配置
+                .dateType(DateType.TIME_PACK)//时间策略
+                .commentDate("yyyy年MM月dd日")//格式化时间格式
+                .disableOpenDir()//禁止打开输出目录,默认false
+                .fileOverride()//覆盖生成文件
+                .build();
+
+        /**
+         * 包配置
+         */
+        PackageConfig packages = new PackageConfig.Builder()
+                .entity("domian")//实体类包名
+                .parent("com.ard.alarm.bridge")//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
+                .controller("controller")//控制层包名
+                .mapper("mapper")//mapper层包名
+                .xml("mapper.xml")//数据访问层xml包名
+                .service("service")//service层包名
+                .serviceImpl("service.impl")//service实现类包名
+                .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/src/main/resources/mapper"))
+                .build();
+
+        /**
+         * 策略配置开始
+         */
+        StrategyConfig strategyConfig = new StrategyConfig.Builder()
+                .enableCapitalMode()//开启全局大写命名
+                //.likeTable()模糊表匹配
+                .addInclude("DATABRIDGE")//添加表匹配,指定要生成的数据表名,不写默认选定数据库所有表
+                //.disableSqlFilter()禁用sql过滤:默认(不使用该方法)true
+                //.enableSchema()启用schema:默认false
+
+                .entityBuilder() //实体策略配置
+                //.disableSerialVersionUID()禁用生成SerialVersionUID:默认true
+                .enableChainModel()//开启链式模型
+                .enableLombok()//开启lombok
+                .enableRemoveIsPrefix()//开启 Boolean 类型字段移除 is 前缀
+                .enableTableFieldAnnotation()//开启生成实体时生成字段注解
+                //.addTableFills()添加表字段填充
+                .naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
+                .columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行
+                .idType(IdType.AUTO)//添加全局主键类型
+                .formatFileName("%s")//格式化实体名称,%s取消首字母I
+                .build()
+
+                .mapperBuilder()//mapper文件策略
+                .enableMapperAnnotation()//开启mapper注解
+                .enableBaseResultMap()//启用xml文件中的BaseResultMap 生成
+                .enableBaseColumnList()//启用xml文件中的BaseColumnList
+                //.cache(缓存类.class)设置缓存实现类
+                .formatMapperFileName("%sMapper")//格式化Dao类名称
+                .formatXmlFileName("%sMapper")//格式化xml文件名称
+                .build()
+
+                .serviceBuilder()//service文件策略
+                .formatServiceFileName("%sService")//格式化 service 接口文件名称
+                .formatServiceImplFileName("%sServiceImpl")//格式化 service 接口文件名称
+                .build()
+
+                .controllerBuilder()//控制层策略
+                //.enableHyphenStyle()开启驼峰转连字符,默认:false
+                .enableRestStyle()//开启生成@RestController
+                .formatFileName("%sController")//格式化文件名称
+                .build();
+        /*至此,策略配置才算基本完成!*/
+
+        /**
+         * 将所有配置项整合到AutoGenerator中进行执行
+         */
+        generator.global(global)
+                .packageInfo(packages)
+                .strategy(strategyConfig)
+                .execute();
+    }
+}
+
+
diff --git a/src/main/resources/GeneratorMapper.xml b/src/main/resources/GeneratorMapper.xml
deleted file mode 100644
index 74a7223..0000000
--- a/src/main/resources/GeneratorMapper.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE generatorConfiguration
-        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
-        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
-<generatorConfiguration>
-    <!-- 指定连接数据库的 JDBC 驱动包所在位置,指定到你本机的完整路径 -->
-    <classPathEntry location="D:\ENV\repository\com\oracle\ojdbc\ojdbc8\19.3.0.0\ojdbc8-19.3.0.0.jar"/>
-    <classPathEntry location="C:\Users\Administrator\Downloads\orai18n-19.7.0.0.jar"/>
-    <!-- 配置 table 表信息内容体,targetRuntime 指定采用 MyBatis3 的版本 -->
-    <context id="tables" targetRuntime="MyBatis3">
-        <!-- 抑制生成注释,由于生成的注释都是英文的,可以不让它生成 -->
-        <commentGenerator>
-            <property name="suppressAllComments" value="true"/>
-        </commentGenerator>
-        <!-- 配置数据库连接信息 -->
-        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
-                        connectionURL="jdbc:oracle:thin:@//112.98.126.2:21521/orcl"
-                        userId="c##ard_user"
-                        password="123456">
-        </jdbcConnection>
-        <!-- 生成 model 类,targetPackage 指定 model 类的包名, targetProject 指定
-       生成的 model 放在 eclipse 的哪个工程下面-->
-        <javaModelGenerator targetPackage="com.ard.alarm.digitization.model"
-                            targetProject="src/main/java">
-            <property name="enableSubPackages" value="false"/>
-            <property name="trimStrings" value="false"/>
-        </javaModelGenerator>
-        <!-- 生成 MyBatis 的 Mapper.xml 文件,targetPackage 指定 mapper.xml 文件的
-       包名, targetProject 指定生成的 mapper.xml 放在 eclipse 的哪个工程下面 -->
-        <sqlMapGenerator targetPackage="mapper"
-                         targetProject="src/main/resources">
-            <property name="enableSubPackages" value="false"/>
-        </sqlMapGenerator>
-        <!-- 生成 MyBatis 的 Mapper 接口类文件,targetPackage 指定 Mapper 接口类的包
-       名, targetProject 指定生成的 Mapper 接口放在 eclipse 的哪个工程下面 -->
-        <javaClientGenerator type="XMLMAPPER"
-                             targetPackage="com.ard.alarm.digitization.mapper" targetProject="src/main/java">
-            <property name="enableSubPackages" value="false"/>
-        </javaClientGenerator>
-        <!-- 数据库表名及对应的 Java 模型类名 -->
-        <table tableName="DATABRIDGE" domainObjectName="Databridge"
-               enableCountByExample="false"
-               enableUpdateByExample="false"
-               enableDeleteByExample="false"
-               enableSelectByExample="false"
-               selectByExampleQueryId="false">
-            <!--使用实际的字段名-->
-            <property name="useActualColumnNames" value="true"/>
-            <columnOverride column="DB_GUID" property="id"/>
-            <columnOverride column="DB_XMMC" property="xmmc"/>
-            <columnOverride column="DB_FKEY" property="fKey"/>
-            <columnOverride column="DB_FNAME" property="fName"/>
-            <columnOverride column="DB_VALUE" property="value"/>
-            <columnOverride column="DB_DATETIME" property="dateTime"/>
-        </table>
-    </context>
-</generatorConfiguration>
\ No newline at end of file
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index ed3593e..a2c8cdf 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -35,7 +35,7 @@
       port: 40000
       enabled: true
     tcp:
-      enabled: false
+      enabled: true
   # mqtt配置
   mqtt:
     host: tcp://192.168.2.15:1883
@@ -58,18 +58,18 @@
     endpoint: http://192.168.2.15:9001
     accessKey: admin
     secretKey: xzx12345
-# mybatis配置
-mybatis:
-  typeAliasesPackage: com.ard.alarm.**.domain
-  mapperLocations: classpath:/mapper/*.xml
+# mybatis-plus配置
+mybatis-plus:
+  type-aliases-package: com.ard.alarm.**.domain
+  mapper-locations: classpath:/mapper/*.xml
 # 日志等级配置
 logging:
   level:
-    hikSdk: info
+    hikSdk: debug
     mqtt: info
-    netty: info
+    netty: debug
     external: info
     camera: info
     tube: info
-    digitization3: debug
-    stealAlarm: info
\ No newline at end of file
+    digitization3: info
+    stealAlarm: info
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 0a5e94c..40c012f 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -56,10 +56,10 @@
   # 三厂数字化地址
   digitization3:
     enabled: false
-mybatis:
-  typeAliasesPackage: com.ard.alarm.**.domain
-  mapperLocations: classpath:/mapper/*.xml
-
+# mybatis-plus配置
+mybatis-plus:
+  type-aliases-package: com.ard.alarm.**.domain
+  mapper-locations: classpath:/mapper/*.xml
 server:
   port: 8088
 logging:
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index 1df85d7..164d969 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -2,8 +2,8 @@
 <configuration>
     <!--日志存放路径-->
     <property name="log.path" value="./logs"/>
-    <!--日志输出格式-->
-    <property name="log.pattern" value="%d{HH:mm:ss.SSS}[%thread]%-5level%logger{20}-[%method,%line]-%msg%n"/>
+    <!-- 日志输出格式 -->
+    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
     <!--控制台输出-->
     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>
diff --git a/src/main/resources/mapper/ArdCamerasMapper.xml b/src/main/resources/mapper/ArdCamerasMapper.xml
deleted file mode 100644
index 2ecf053..0000000
--- a/src/main/resources/mapper/ArdCamerasMapper.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?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.ard.alarm.camera.mapper.ArdCamerasMapper">
-
-    <resultMap type="com.ard.alarm.camera.domain.ArdCameras" id="ArdCamerasResult">
-        <result property="id" column="id"/>
-        <result property="name" column="name"/>
-        <result property="ip" column="ip"/>
-        <result property="port" column="port"/>
-        <result property="rtspPort" column="rtsp_port"/>
-        <result property="username" column="username"/>
-        <result property="password" column="password"/>
-        <result property="gdtype" column="gdtype"/>
-        <result property="channel" column="channel"/>
-        <result property="longitude" column="longitude"/>
-        <result property="latitude" column="latitude"/>
-        <result property="altitude" column="altitude"/>
-        <result property="userId" column="user_id"/>
-        <result property="deptId" column="dept_id"/>
-        <result property="camHeading" column="cam_heading"/>
-        <result property="camPitch" column="cam_pitch"/>
-        <result property="camRoll" column="cam_roll"/>
-        <result property="camNear" column="cam_near"/>
-        <result property="camFar" column="cam_far"/>
-        <result property="camAspectratio" column="cam_aspectratio"/>
-        <result property="camDepth" column="cam_depth"/>
-        <result property="camFov" column="cam_fov"/>
-        <result property="loginId" column="login_id"/>
-        <result property="operatorId" column="operator_id"/>
-        <result property="operatorExpired" column="operator_expired"/>
-        <result property="camMaxVisibleDistance" column="cam_max_visible_distance"/>
-        <result property="camAlarmGuideEnable" column="cam_alarm_guide_enable"/>
-        <result property="updateTime" column="update_time"/>
-    </resultMap>
-
-    <sql id="selectArdCamerasVo">
-        select c.id,
-               c.name,
-               c.ip,
-               c.port,
-               c.rtsp_port,
-               c.username,
-               c.password,
-               c.gdtype,
-               c.channel,
-               c.longitude,
-               c.latitude,
-               c.altitude,
-               c.user_id,
-               c.dept_id,
-               c.cam_heading,
-               c.cam_pitch,
-               c.cam_roll,
-               c.cam_near,
-               c.cam_far,
-               c.cam_aspectratio,
-               c.cam_depth,
-               c.cam_fov,
-               c.operator_id,
-               c.operator_expired,
-               c.cam_max_visible_distance,
-               c.cam_alarm_guide_enable,
-               c.update_time
-        from ard_cameras c
-    </sql>
-
-    <select id="selectArdCamerasList" parameterType="com.ard.alarm.camera.domain.ArdCameras" resultMap="ArdCamerasResult">
-        <include refid="selectArdCamerasVo"/>
-        <where>
-            <if test="id != null  and id != ''">and c.id = #{id}</if>
-            <if test="name != null  and name != ''">and c.name like '%'||#{name}||'%'</if>
-            <if test="ip != null  and ip != ''">and c.ip = #{ip}</if>
-            <if test="port != null ">and c.port = #{port}</if>
-            <if test="rtspPort != null ">and c.rtsp_port = #{rtspPort}</if>
-            <if test="username != null  and username != ''">and c.username like '%'||#{username}||'%'</if>
-            <if test="password != null  and password != ''">and c.password = #{password}</if>
-            <if test="gdtype != null  and gdtype != ''">and c.gdtype = #{gdtype}</if>
-            <if test="channel != null ">and c.channel = #{channel}</if>
-            <if test="longitude != null ">and c.longitude = #{longitude}</if>
-            <if test="latitude != null ">and c.latitude = #{latitude}</if>
-            <if test="altitude != null ">and c.altitude = #{altitude}</if>
-            <if test="userId != null  and userId != ''">and c.user_id = #{userId}</if>
-            <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
-                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
-            </if>
-            <if test="camHeading != null ">and c.cam_heading = #{camHeading}</if>
-            <if test="camPitch != null ">and c.cam_pitch = #{camPitch}</if>
-            <if test="camRoll != null ">and c.cam_roll = #{camRoll}</if>
-            <if test="camNear != null ">and c.cam_near = #{camNear}</if>
-            <if test="camFar != null ">and c.cam_far = #{camFar}</if>
-            <if test="camAspectratio != null ">and c.cam_aspectratio = #{camAspectratio}</if>
-            <if test="camDepth != null ">and c.cam_depth = #{camDepth}</if>
-            <if test="camFov != null ">and c.cam_fov = #{camFov}</if>
-            <if test="camMaxVisibleDistance != null ">and c.cam_max_visible_distance = #{camMaxVisibleDistance}</if>
-            <if test="camAlarmGuideEnable != null ">and c.cam_alarm_guide_enable = #{camAlarmGuideEnable}</if>
-            <if test="loginId != null ">and c.login_id = #{loginId}</if>
-        </where>
-    </select>
-
-    <select id="selectArdCamerasById" parameterType="String" resultMap="ArdCamerasResult">
-        <include refid="selectArdCamerasVo"/>
-        where id = #{id}
-    </select>
-
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ArdEquipExternalMapper.xml b/src/main/resources/mapper/ArdEquipExternalMapper.xml
deleted file mode 100644
index 0cd93bf..0000000
--- a/src/main/resources/mapper/ArdEquipExternalMapper.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?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.ard.alarm.external.mapper.ArdEquipExternalMapper">
-
-    <resultMap type="ArdEquipExternal" id="ArdEquipExternalResult">
-        <result property="id" column="id"/>
-        <result property="name" column="name"/>
-        <result property="type" column="type"/>
-        <result property="factory" column="factory"/>
-        <result property="ip" column="ip"/>
-        <result property="port" column="port"/>
-        <result property="username" column="username"/>
-        <result property="password" column="password"/>
-        <result property="longitude" column="longitude"/>
-        <result property="latitude" column="latitude"/>
-        <result property="altitude" column="altitude"/>
-        <result property="deptId" column="dept_id"/>
-        <result property="userId" column="user_id"/>
-        <result property="updateTime" column="update_time"/>
-    </resultMap>
-
-    <sql id="selectArdEquipExternalVo">
-        select c.id,
-               c.name,
-               c.type,
-               c.factory,
-               c.ip,
-               c.port,
-               c.username,
-               c.password,
-               c.longitude,
-               c.latitude,
-               c.altitude,
-               c.update_time
-        from ard_equip_external c
-    </sql>
-    <select id="selectArdEquipExternal" parameterType="ArdEquipExternal" resultMap="ArdEquipExternalResult">
-        <include refid="selectArdEquipExternalVo"/>
-        <where>
-            <if test="name != null  and name != ''">and c.name like '%'||#{name}||'%'</if>
-            <if test="type != null  and type != ''">and c.type = #{type}</if>
-            <if test="factory != null  and factory != ''">and c.factory = #{factory}</if>
-            <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
-                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
-            </if>
-            <if test="userId != null  and userId != ''">and c.user_id = #{userId}</if>
-            <if test="ip != null  and ip != ''">and c.ip = #{ip}</if>
-            <if test="port != null  and port != ''">and c.port = #{port}</if>
-        </where>
-    </select>
-    <select id="selectArdEquipExternalList" parameterType="ArdEquipExternal" resultMap="ArdEquipExternalResult">
-        <include refid="selectArdEquipExternalVo"/>
-        <where>
-            <if test="name != null  and name != ''">and c.name like '%'||#{name}||'%'</if>
-            <if test="type != null  and type != ''">and c.type = #{type}</if>
-            <if test="factory != null  and factory != ''">and c.factory = #{factory}</if>
-            <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
-                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
-            </if>
-            <if test="userId != null  and userId != ''">and c.user_id = #{userId}</if>
-        </where>
-    </select>
-
-    <select id="selectArdEquipExternalById" parameterType="String" resultMap="ArdEquipExternalResult">
-        <include refid="selectArdEquipExternalVo"/>
-        where id = #{id}
-    </select>
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ArdEquipRadarMapper.xml b/src/main/resources/mapper/ArdEquipRadarMapper.xml
deleted file mode 100644
index d675849..0000000
--- a/src/main/resources/mapper/ArdEquipRadarMapper.xml
+++ /dev/null
@@ -1,180 +0,0 @@
-<?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.ard.alarm.radar.mapper.ArdEquipRadarMapper">
-    
-    <resultMap type="ArdEquipRadar" id="ArdEquipRadarResult">
-        <result property="id"    column="id"    />
-        <result property="name"    column="name"    />
-        <result property="port"    column="port"    />
-        <result property="operate"    column="operate"    />
-        <result property="delFlag"    column="del_flag"    />
-        <result property="userId"    column="user_id"    />
-        <result property="longitude"    column="longitude"    />
-        <result property="latitude"    column="latitude"    />
-        <result property="altitude"    column="altitude"    />
-        <result property="radarDate"    column="radar_date"    />
-        <result property="deptId"    column="dept_id"    />
-        <result property="pitch"    column="pitch"    />
-        <result property="towerId"    column="tower_id"    />
-        <result property="imageWidth"    column="image_width"    />
-        <result property="imageHeight"    column="image_height"    />
-        <result property="type"    column="type"    />
-        <result property="ip"    column="ip"    />
-        <result property="towerName"    column="name"    />
-    </resultMap>
-
-    <sql id="selectArdEquipRadarVo">
-        select c.id,
-               c.name,
-               c.create_by,
-               c.port,
-               c.operate,
-               c.create_time,
-               c.update_by,
-               c.update_time,
-               c.del_flag,
-               c.user_id,
-               c.longitude,
-               c.latitude,
-               c.altitude,
-               c.radar_date,
-               c.dept_id,
-               c.pitch,
-               c.tower_id,
-               c.image_width,
-               c.image_height,
-               c.type,
-               c.ip
-        from ard_equip_radar c
-    </sql>
-
-    <select id="selectArdEquipRadarList" parameterType="ArdEquipRadar" resultMap="ArdEquipRadarResult">
-        select c.id,c.name,
-        c.create_by,
-        c.port,
-        c.operate,
-        c.create_time,
-        c.update_by,
-        c.update_time,
-        c.del_flag,
-        c.user_id,
-        c.longitude,
-        c.latitude,
-        c.altitude,
-        c.radar_date,
-        c.dept_id,
-        c.pitch,
-        c.tower_id,
-        c.image_width,
-        c.image_height,
-        c.type,
-        c.ip,
-        t.name
-        from ard_equip_radar c
-        left join sys_dept d on d.dept_id = c.dept_id
-        left join sys_user u on u.user_id = c.user_id
-        left join ard_towers t on t.id = c.tower_id
-        <where>
-            <if test="towerId != null  and towerId != ''"> and c.tower_id = #{towerId}</if>
-            <if test="userId != null  and userId != ''">and c.user_id = #{userId}</if>
-            <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
-                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
-            </if>
-        </where>
-    </select>
-    
-    <select id="selectArdEquipRadarById" parameterType="String" resultMap="ArdEquipRadarResult">
-        <include refid="selectArdEquipRadarVo"/>
-        where id = #{id}
-    </select>
-        
-    <insert id="insertArdEquipRadar" parameterType="ArdEquipRadar">
-        insert into ard_equip_radar
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
-            <if test="name != null">name,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="port != null">port,</if>
-            <if test="operate != null">operate,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="delFlag != null">del_flag,</if>
-            <if test="userId != null">user_id,</if>
-            <if test="longitude != null">longitude,</if>
-            <if test="latitude != null">latitude,</if>
-            <if test="altitude != null">altitude,</if>
-            <if test="radarDate != null">radar_date,</if>
-            <if test="deptId != null">dept_id,</if>
-            <if test="pitch != null">pitch,</if>
-            <if test="towerId != null">tower_id,</if>
-            <if test="imageWidth != null">image_width,</if>
-            <if test="imageHeight != null">image_height,</if>
-            <if test="type != null">type,</if>
-            <if test="ip != null">ip,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
-            <if test="name != null">#{name},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="port != null">#{port},</if>
-            <if test="operate != null">#{operate},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="delFlag != null">#{delFlag},</if>
-            <if test="userId != null">#{userId},</if>
-            <if test="longitude != null">#{longitude},</if>
-            <if test="latitude != null">#{latitude},</if>
-            <if test="altitude != null">#{altitude},</if>
-            <if test="radarDate != null">#{radarDate},</if>
-            <if test="deptId != null">#{deptId},</if>
-            <if test="pitch != null">#{pitch},</if>
-            <if test="towerId != null">#{towerId},</if>
-            <if test="imageWidth != null">#{imageWidth},</if>
-            <if test="imageHeight != null">#{imageHeight},</if>
-            <if test="type != null">#{type},</if>
-            <if test="ip != null">#{ip},</if>
-         </trim>
-    </insert>
-
-    <update id="updateArdEquipRadar" parameterType="ArdEquipRadar">
-        update ard_equip_radar
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="name != null">name = #{name},</if>
-            <if test="createBy != null">create_by = #{createBy},</if>
-            <if test="port != null">port = #{port},</if>
-            <if test="operate != null">operate = #{operate},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="updateBy != null">update_by = #{updateBy},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="delFlag != null">del_flag = #{delFlag},</if>
-            <if test="userId != null">user_id = #{userId},</if>
-            <if test="longitude != null">longitude = #{longitude},</if>
-            <if test="latitude != null">latitude = #{latitude},</if>
-            <if test="altitude != null">altitude = #{altitude},</if>
-            <if test="radarDate != null">radar_date = #{radarDate},</if>
-            <if test="deptId != null">dept_id = #{deptId},</if>
-            <if test="pitch != null">pitch = #{pitch},</if>
-            <if test="towerId != null">tower_id = #{towerId},</if>
-            <if test="imageWidth != null">image_width = #{imageWidth},</if>
-            <if test="imageHeight != null">image_height = #{imageHeight},</if>
-            <if test="type != null">type = #{type},</if>
-            <if test="ip != null">ip = #{ip},</if>
-        </trim>
-        where id = #{id}
-    </update>
-
-    <delete id="deleteArdEquipRadarById" parameterType="String">
-        delete from ard_equip_radar where id = #{id}
-    </delete>
-
-    <delete id="deleteArdEquipRadarByIds" parameterType="String">
-        delete from ard_equip_radar where id in 
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/DataBridgeMapper.xml b/src/main/resources/mapper/DataBridgeMapper.xml
deleted file mode 100644
index 31b642f..0000000
--- a/src/main/resources/mapper/DataBridgeMapper.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?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.ard.alarm.digitization.mapper.DataBridgeMapper">
-  <resultMap id="BaseResultMap" type="com.ard.alarm.digitization.model.DataBridge">
-    <id column="DB_GUID" jdbcType="NVARCHAR" property="id" />
-    <result column="DB_XMMC" jdbcType="VARCHAR" property="xmmc" />
-    <result column="DB_FKEY" jdbcType="VARCHAR" property="fKey" />
-    <result column="DB_FNAME" jdbcType="VARCHAR" property="fName" />
-    <result column="DB_VALUE" jdbcType="VARCHAR" property="value" />
-    <result column="DB_DATETIME" jdbcType="DATE" property="dateTime" />
-    <result column="DB_BZ" jdbcType="VARCHAR" property="DB_BZ" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    DB_GUID, DB_XMMC, DB_FKEY, DB_FNAME, DB_VALUE, DB_DATETIME, DB_BZ
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
-    select 
-    <include refid="Base_Column_List" />
-    from DATABRIDGE
-    where DB_GUID = #{id,jdbcType=NVARCHAR}
-  </select>
-  <select id="selectDatabridgeList" parameterType="com.ard.alarm.digitization.model.DataBridge" resultMap="BaseResultMap">
-    select
-    <include refid="Base_Column_List" />
-    from (select * from DATABRIDGE  order by DB_DATETIME desc )
-    <where>
-      <if test="dateTime != null "> and DB_DATETIME > cast(#{dateTime,jdbcType=DATE} as date)</if>
-      <if test="rowNum != null  ">and rownum &lt; #{rowNum}</if>
-    </where>
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
-    delete from DATABRIDGE
-    where DB_GUID = #{id,jdbcType=NVARCHAR}
-  </delete>
-  <insert id="insert" parameterType="com.ard.alarm.digitization.model.DataBridge">
-    insert into DATABRIDGE (DB_GUID, DB_XMMC, DB_FKEY, 
-      DB_FNAME, DB_VALUE, DB_DATETIME, 
-      DB_BZ)
-    values (#{id,jdbcType=NVARCHAR}, #{xmmc,jdbcType=VARCHAR}, #{fKey,jdbcType=VARCHAR}, 
-      #{fName,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, #{dateTime,jdbcType=TIMESTAMP}, 
-      #{DB_BZ,jdbcType=VARCHAR})
-  </insert>
-  <insert id="insertSelective" parameterType="com.ard.alarm.digitization.model.DataBridge">
-    insert into DATABRIDGE
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        DB_GUID,
-      </if>
-      <if test="xmmc != null">
-        DB_XMMC,
-      </if>
-      <if test="fKey != null">
-        DB_FKEY,
-      </if>
-      <if test="fName != null">
-        DB_FNAME,
-      </if>
-      <if test="value != null">
-        DB_VALUE,
-      </if>
-      <if test="dateTime != null">
-        DB_DATETIME,
-      </if>
-      <if test="DB_BZ != null">
-        DB_BZ,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=NVARCHAR},
-      </if>
-      <if test="xmmc != null">
-        #{xmmc,jdbcType=VARCHAR},
-      </if>
-      <if test="fKey != null">
-        #{fKey,jdbcType=VARCHAR},
-      </if>
-      <if test="fName != null">
-        #{fName,jdbcType=VARCHAR},
-      </if>
-      <if test="value != null">
-        #{value,jdbcType=VARCHAR},
-      </if>
-      <if test="dateTime != null">
-        #{dateTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="DB_BZ != null">
-        #{DB_BZ,jdbcType=VARCHAR},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.ard.alarm.digitization.model.DataBridge">
-    update DATABRIDGE
-    <set>
-      <if test="xmmc != null">
-        DB_XMMC = #{xmmc,jdbcType=VARCHAR},
-      </if>
-      <if test="fKey != null">
-        DB_FKEY = #{fKey,jdbcType=VARCHAR},
-      </if>
-      <if test="fName != null">
-        DB_FNAME = #{fName,jdbcType=VARCHAR},
-      </if>
-      <if test="value != null">
-        DB_VALUE = #{value,jdbcType=VARCHAR},
-      </if>
-      <if test="dateTime != null">
-        DB_DATETIME = #{dateTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="DB_BZ != null">
-        DB_BZ = #{DB_BZ,jdbcType=VARCHAR},
-      </if>
-    </set>
-    where DB_GUID = #{id,jdbcType=NVARCHAR}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.ard.alarm.digitization.model.DataBridge">
-    update DATABRIDGE
-    set DB_XMMC = #{xmmc,jdbcType=VARCHAR},
-      DB_FKEY = #{fKey,jdbcType=VARCHAR},
-      DB_FNAME = #{fName,jdbcType=VARCHAR},
-      DB_VALUE = #{value,jdbcType=VARCHAR},
-      DB_DATETIME = #{dateTime,jdbcType=TIMESTAMP},
-      DB_BZ = #{DB_BZ,jdbcType=VARCHAR}
-    where DB_GUID = #{id,jdbcType=NVARCHAR}
-  </update>
-</mapper>
\ No newline at end of file

--
Gitblit v1.9.3