From 94a7d37ab2f5101233056fa530d1577f4d699bf9 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期二, 25 十一月 2025 20:00:47 +0800
Subject: [PATCH] 相关业务表提交

---
 fzzy-igdss-view/src/main/java/com/fzzy/igds/DicPR.java                        |  225 ++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutSysConf.java          |   61 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java            |   25 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/DicArea.java               |   59 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/DicAreaMapper.java         |   15 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapSer.java               |   68 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DicAreaService.java       |  124 ++
 fzzy-igdss-web/src/main/resources/templates/index-topnav.html                 |   20 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DicAreaRepository.java |   47 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java      |   80 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutProgress.java       |   47 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/SnapType.java            |   39 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java           |  246 +++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java          |   47 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java             |  124 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/BankService.java          |    1 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/AuditStatus.java         |   41 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Camera.java                |  147 +++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapConf.java              |   55 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java        |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Depot.java                 |    5 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java         |  110 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnType.java            |   39 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/DicArea.view.xml                  |  285 ++++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java        |  110 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapRecord.java            |   77 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/CheckType.java           |   54 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/PlayType.java            |   51 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DicService.java           |  309 ++++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java          |   76 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnLevel.java           |   39 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/DicAreaPR.java                    |  106 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnStatus.java          |   41 
 33 files changed, 2,763 insertions(+), 12 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/AuditStatus.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/AuditStatus.java
new file mode 100644
index 0000000..d4a0389
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/AuditStatus.java
@@ -0,0 +1,41 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 宸ュ崟鐘舵��
+ * @Author CZT
+ * @Date 2025/11/25 15:29
+ */
+public enum AuditStatus {
+	Status_10("10", "寰呭鎵�"),
+    Status_20("20", "閫氳繃"),
+    Status_30("30", "鎷掔粷"),
+    Status_40("40", "閫�鍥�");
+
+    private String code;
+    private String msg;
+
+    AuditStatus(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+	public static String getMsg(String code) {
+		if(null == code) return null;
+		
+		if(AuditStatus.Status_10.getCode().equals(code)) return AuditStatus.Status_10.getMsg();
+		if(AuditStatus.Status_20.getCode().equals(code)) return AuditStatus.Status_20.getMsg();
+		if(AuditStatus.Status_30.getCode().equals(code)) return AuditStatus.Status_30.getMsg();
+		if(AuditStatus.Status_40.getCode().equals(code)) return AuditStatus.Status_40.getMsg();
+		
+		return code;
+	}
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/CheckType.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/CheckType.java
new file mode 100644
index 0000000..27c11ec
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/CheckType.java
@@ -0,0 +1,54 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 璐ㄩ噺宸℃鏋氫妇
+ * @Author CZT
+ * @Date 2025/11/25 15:32
+ */
+public enum CheckType {
+
+    TYPE_01("01", "鍏ヤ粨楠屾敹"),
+    TYPE_02("02", "鍑轰粨妫�楠�"),
+    TYPE_03("03", "3鏈堟湯鏅"),
+    TYPE_04("04", "9鏈堟湯鏅"),
+    TYPE_05("05", "鍏ュ簱鍒濇"),
+    TYPE_06("06", "鏈堝害妫�鏌�"),
+    TYPE_07("07", "3鏈堟湯搴撳唴鏅煡"),
+    TYPE_08("08", "9鏈堟湯搴撳唴鏅煡");
+
+    private String code;
+    private String msg;
+
+    CheckType(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public static String getMsg(String code) {
+        if (null == code) return null;
+
+        if (CheckType.TYPE_01.getCode().equals(code)) return CheckType.TYPE_01.getMsg();
+
+        if (CheckType.TYPE_02.getCode().equals(code)) return CheckType.TYPE_02.getMsg();
+
+        if (CheckType.TYPE_03.getCode().equals(code)) return CheckType.TYPE_03.getMsg();
+
+        if (CheckType.TYPE_04.getCode().equals(code)) return CheckType.TYPE_04.getMsg();
+
+        if (CheckType.TYPE_05.getCode().equals(code)) return CheckType.TYPE_05.getMsg();
+        if (CheckType.TYPE_06.getCode().equals(code)) return CheckType.TYPE_06.getMsg();
+        if (CheckType.TYPE_07.getCode().equals(code)) return CheckType.TYPE_07.getMsg();
+        if (CheckType.TYPE_08.getCode().equals(code)) return CheckType.TYPE_08.getMsg();
+
+        return code;
+    }
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java
new file mode 100644
index 0000000..7f90ef4
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java
@@ -0,0 +1,25 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 绯荤粺甯搁噺閰嶇疆
+ * @Author CZT
+ * @Date 2025/11/25 14:29
+ */
+public class Constant {
+
+    //鏄紝鍚敤
+    public static final String YN_Y = "Y";
+    //鍚︼紝绂佺敤
+    public static final String YN_N = "N";
+    // 瀛楀吀-绮绛夌骇
+    public static final String TRIGGER_PARENT_FOOD_LEVEL = "FOOD_LEVEL_";
+    // 瀛楀吀-绮鍝佺
+    public static final String TRIGGER_PARENT_FOOD_VARIETY = "FOOD_VARIETY_";
+
+    // 瀛楀吀-绮绫诲瀷
+    public static final String TRIGGER_PARENT_FOOD_TYPE = "FOOD_TYPE_";
+
+    // 瀛楀吀-鍑哄叆搴撴祦绋�
+    public static final String TRIGGER_PARENT_PROCESS_STATUS = "PROCESS_STATUS_";
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutProgress.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutProgress.java
new file mode 100644
index 0000000..485d6d3
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutProgress.java
@@ -0,0 +1,47 @@
+package com.fzzy.igds.constant;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @Description 鍑哄叆搴撴祦绋嬫灇涓�
+ * @Author CZT
+ * @Date 2025/11/25 13:22
+ */
+public class InoutProgress {
+
+    /**
+     * 鐢ㄤ簬瀛樻斁绮被鍨媍ode -name
+     */
+    public static Map<String, String> mapProgressName = new HashMap<>();
+
+    /**
+     * 鏍规嵁鍚嶇О鎵剧紪鐮�
+     *
+     * @param msg
+     * @return
+     */
+    public static String getCode(String msg) {
+        Set<String> keys = mapProgressName.keySet();
+        if (null == keys || keys.isEmpty()) return msg;
+
+        for (String key : keys) {
+            if (mapProgressName.get(key).equals(msg)) {
+                return key;
+            }
+        }
+        return msg;
+    }
+
+    /**
+     * 鏍规嵁缂栫爜鎵惧悕绉�
+     * @param code
+     * @return
+     */
+    public static String getMsg(String code) {
+        if (null == code) return "鏈厤缃�";
+
+        return mapProgressName.get(code);
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java
new file mode 100644
index 0000000..828ec9e
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/NoticeType.java
@@ -0,0 +1,47 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 璀﹀憡閫氱煡绫诲瀷:鐭俊锛岃闊�
+ * @Author CZT
+ * @Date 2025/11/25 15:43
+ */
+public enum NoticeType {
+
+
+    /**
+     *
+     */
+    NONE("NONE", "涓嶉�氱煡"),
+    SMS("SMS", "鐭俊閫氱煡"),
+    EMAIL("EMAIL", "閭閫氱煡"),
+    VOICE("VOICE", "璇煶閫氱煡"),
+    WECHAT("WECHAT", "寰俊閫氱煡");
+
+    private String code;
+    private String name;
+
+    NoticeType(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public static String getName(String code) {
+        if (null == code) return null;
+
+        if (NoticeType.NONE.getCode().equals(code)) return NoticeType.NONE.getName();
+        if (NoticeType.SMS.getCode().equals(code)) return NoticeType.SMS.getName();
+        if (NoticeType.EMAIL.getCode().equals(code)) return NoticeType.EMAIL.getName();
+        if (NoticeType.VOICE.getCode().equals(code)) return NoticeType.VOICE.getName();
+        if (NoticeType.WECHAT.getCode().equals(code)) return NoticeType.WECHAT.getName();
+
+        return code;
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/PlayType.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/PlayType.java
new file mode 100644
index 0000000..75ef5e5
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/PlayType.java
@@ -0,0 +1,51 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 鎶撴媿鏂瑰紡
+ * @Author CZT
+ * @Date 2025/11/25 15:30
+ */
+public enum PlayType {
+
+    PLAY_TYPE_DEFAULT("DEFAULT", "绯荤粺榛樿"),
+    PLAY_TYPE_WEB_RTC_DH("WEB_RTC_DH", "WEB-RTC-澶у崕"),
+    PLAY_TYPE_WEB_RTC_HIK("WEB_RTC_HIK", "WEB-RTC-娴峰悍"),
+    PLAY_TYPE_HIK_WEB_WS("HIK_WEB_WS", "娴峰悍web鏃犳彃浠�"),
+    PLAY_TYPE_DH_WEB_WS("DH_WEB_WS", "澶у崕web鏃犳彃浠�"),
+    PLAY_TYPE_VLC("VLC", "VLC鎻掍欢"),
+    HTTP_CZKJ_CH("HTTP_CZKJ_CH", "鍒涘崜瑙嗛"),
+
+    PLAY_TYPE_HIK_WEB4("HIK_WEB4", "娴峰悍web鎻掍欢"),
+    PLAY_TYPE_HIK_MEDIA("MEDIA_HIK", "娴峰悍缁煎悎瀹夐槻骞冲彴");
+
+    private String code;
+    private String name;
+
+    private PlayType(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public static String getName(String code){
+        if(null == code) {
+            return null;
+        }
+        if(PlayType.PLAY_TYPE_DEFAULT.getCode().equals(code)) return PlayType.PLAY_TYPE_DEFAULT.getName();
+        if(PlayType.PLAY_TYPE_WEB_RTC_DH.getCode().equals(code)) return PlayType.PLAY_TYPE_WEB_RTC_DH.getName();
+        if(PlayType.PLAY_TYPE_WEB_RTC_HIK.getCode().equals(code)) return PlayType.PLAY_TYPE_WEB_RTC_HIK.getName();
+        if(PlayType.PLAY_TYPE_HIK_WEB_WS.getCode().equals(code)) return PlayType.PLAY_TYPE_HIK_WEB_WS.getName();
+        if(PlayType.PLAY_TYPE_DH_WEB_WS.getCode().equals(code)) return PlayType.PLAY_TYPE_DH_WEB_WS.getName();
+        if(PlayType.PLAY_TYPE_VLC.getCode().equals(code)) return PlayType.PLAY_TYPE_VLC.getName();
+        if(PlayType.PLAY_TYPE_HIK_WEB4.getCode().equals(code)) return PlayType.PLAY_TYPE_HIK_WEB4.getName();
+        if(PlayType.PLAY_TYPE_HIK_MEDIA.getCode().equals(code)) return PlayType.PLAY_TYPE_HIK_MEDIA.getName();
+        return code;
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/SnapType.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/SnapType.java
new file mode 100644
index 0000000..15049d4
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/SnapType.java
@@ -0,0 +1,39 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 鎶撴媿鏂瑰紡
+ * @Author CZT
+ * @Date 2025/11/25 15:28
+ */
+public enum SnapType {
+
+    SNAP_TYPE_FZZY_PLUGIN("FZZY-PLUGIN", "FZZY_RSTP鎻掍欢鎶撴媿"),
+    SNAP_TYPE_FZZY_PLUGIN_V2("FZZY-PLUGIN_V2", "FZZY_API鎻掍欢鎶撴媿"),
+    SNAP_TYPE_HIK_ISAPI("HIK-ISAPI", "娴峰悍ISAPI鎶撴媿"),
+    SNAP_TYPE_DAHUA_HTTP_API("DAHUA-HTTP-API", "澶у崕HTTP_API鎶撴媿");
+
+    private String code;
+    private String msg;
+
+    private SnapType(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public static String getMsg(String code) {
+        if (null == code) return null;
+        if (SnapType.SNAP_TYPE_FZZY_PLUGIN.getCode().equals(code)) return SnapType.SNAP_TYPE_FZZY_PLUGIN.getMsg();
+        if (SnapType.SNAP_TYPE_FZZY_PLUGIN_V2.getCode().equals(code)) return SnapType.SNAP_TYPE_FZZY_PLUGIN_V2.getMsg();
+        if (SnapType.SNAP_TYPE_HIK_ISAPI.getCode().equals(code)) return SnapType.SNAP_TYPE_HIK_ISAPI.getMsg();
+        if (SnapType.SNAP_TYPE_DAHUA_HTTP_API.getCode().equals(code)) return SnapType.SNAP_TYPE_DAHUA_HTTP_API.getMsg();
+        return code;
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnLevel.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnLevel.java
new file mode 100644
index 0000000..2907753
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnLevel.java
@@ -0,0 +1,39 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 璀﹀憡绛夌骇
+ * @Author CZT
+ * @Date 2025/11/25 15:35
+ */
+public enum WarnLevel {
+
+    LEVEL_01("01", "涓�绾ц鍛�"),
+    LEVEL_02("02", "浜岀骇璀﹀憡"),
+    LEVEL_03("03", "涓夌骇璀﹀憡");
+    private String code;
+    private String msg;
+
+    WarnLevel(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+    
+    public String getMsg() {
+        return msg;
+    }
+
+    public static String getMsg(String code) {
+    	if(null == code) return null;
+
+    	if(WarnLevel.LEVEL_01.getCode().equals(code)) return WarnLevel.LEVEL_01.getMsg();
+    	if(WarnLevel.LEVEL_02.getCode().equals(code)) return WarnLevel.LEVEL_02.getMsg();
+    	if(WarnLevel.LEVEL_03.getCode().equals(code)) return WarnLevel.LEVEL_03.getMsg();
+
+        return code;
+    	
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnStatus.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnStatus.java
new file mode 100644
index 0000000..6bbcb4f
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnStatus.java
@@ -0,0 +1,41 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 鎶ヨ鐘舵��
+ * @Author CZT
+ * @Date 2025/11/25 15:35
+ */
+public enum WarnStatus {
+
+    STATUS_10("10", "鏈鐞�"),
+    STATUS_20("20", "寤惰繜澶勭悊"),
+    STATUS_30("30", "宸插鐞�"),
+    STATUS_40("40", "蹇界暐");
+
+    private String code;
+    private String name;
+
+    WarnStatus(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public static String getName(String code) {
+        if (null == code) return null;
+
+        if (WarnStatus.STATUS_10.getCode().equals(code)) return WarnStatus.STATUS_10.getName();
+        if (WarnStatus.STATUS_20.getCode().equals(code)) return WarnStatus.STATUS_20.getName();
+        if (WarnStatus.STATUS_30.getCode().equals(code)) return WarnStatus.STATUS_30.getName();
+        if (WarnStatus.STATUS_40.getCode().equals(code)) return WarnStatus.STATUS_40.getName();
+
+        return code;
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnType.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnType.java
new file mode 100644
index 0000000..66ed92f
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/WarnType.java
@@ -0,0 +1,39 @@
+package com.fzzy.igds.constant;
+
+/**
+ * @Description 璀﹀憡绫诲瀷
+ * @Author CZT
+ * @Date 2025/11/25 15:35
+ */
+public enum WarnType {
+
+    TYPE_01("01", "璀﹀憡"),
+    TYPE_02("02", "棰勮"),
+    TYPE_03("03", "閫氱煡");
+    private String code;
+    private String msg;
+
+    WarnType(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+    
+    public String getMsg() {
+        return msg;
+    }
+
+    public static String getMsg(String code) {
+    	if(null == code) return null;
+
+    	if(WarnType.TYPE_01.getCode().equals(code)) return WarnType.TYPE_01.getMsg();
+    	if(WarnType.TYPE_02.getCode().equals(code)) return WarnType.TYPE_02.getMsg();
+    	if(WarnType.TYPE_03.getCode().equals(code)) return WarnType.TYPE_03.getMsg();
+
+        return code;
+    	
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Camera.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Camera.java
new file mode 100644
index 0000000..93199b3
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Camera.java
@@ -0,0 +1,147 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fzzy.igds.constant.Constant;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * @Description 瀹夐槻鐩戞帶
+ * @Author CZT
+ * @Date 2025/11/25 19:36
+ */
+@Data
+@Entity
+@Table(name = "d_camera")
+@TableName("d_camera")
+@EqualsAndHashCode(callSuper = false)
+public class Camera extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    public static String SORT_PROP = "orderNum";
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '涓婚敭'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "name", columnDefinition = "varchar(40) COMMENT '璁惧鍚嶇О'")
+    @TableField("name")
+    private String name;
+
+    @Column(name = "type", columnDefinition = "varchar(40) COMMENT '璁惧绫诲瀷(01=鏋満,02=鐞冩満,03=鍗婄悆,09=鍏朵粬)'")
+    @TableField("type")
+    private String type;
+
+    @Column(name = "brand", columnDefinition = "varchar(40) COMMENT '璁惧鍝佺墝'")
+    @TableField("brand")
+    private String brand;
+
+    @Column(name = "sn", columnDefinition = "varchar(40) COMMENT '搴忓垪鍙�'")
+    @TableField("sn")
+    private String sn;
+
+    @Column(name = "play_type", columnDefinition = "varchar(40) COMMENT '鎾斁鏂瑰紡'")
+    @TableField("play_type")
+    private String playType;
+
+    @Column(name = "login_id", columnDefinition = "varchar(40) COMMENT '甯愬彿'")
+    @TableField("login_id")
+    private String loginId;
+
+    @Column(name = "pwd", columnDefinition = "varchar(40) COMMENT '瀵嗙爜'")
+    @TableField("pwd")
+    private String pwd;
+
+    @Column(name = "ip", columnDefinition = "varchar(20) COMMENT '璁惧IP'")
+    @TableField("ip")
+    private String ip;
+
+    @Column(name = "control_port", columnDefinition = "int(5) COMMENT '鎺у埗绔彛'")
+    @TableField("control_port")
+    private Integer controlPort;
+
+    @Column(name = "web_port", columnDefinition = "int(5) COMMENT 'WEB绔彛'")
+    @TableField("web_port")
+    private Integer webPort;
+
+    @Column(name = "chan_num", columnDefinition = "int(5) COMMENT '閫氶亾鍙�'")
+    @TableField("chan_num")
+    private Integer chanNum = 1;
+
+    @Column(name = "url_in", columnDefinition = "varchar(200) COMMENT '鍐呯綉鐩存挱鍦板潃'")
+    @TableField("url_in")
+    private String urlIn;
+
+    @Column(name = "url_out", columnDefinition = "varchar(200) COMMENT '澶栫綉鐩存挱鍦板潃'")
+    @TableField("url_out")
+    private String urlOut;
+
+    @Column(name = "media_addr", columnDefinition = "varchar(200) COMMENT 'RTSP鍦板潃'")
+    @TableField("media_addr")
+    private String mediaAddr;
+
+    @Column(name = "snap_type", columnDefinition = "varchar(40) COMMENT '鎶撴媿鏂瑰紡'")
+    @TableField("snap_type")
+    private String snapType;
+
+    @Column(name = "sort", columnDefinition = "varchar(2) COMMENT '閰嶅搴忓彿'")
+    @TableField("sort")
+    private String sort = "1";
+
+    @Column(name = "spjklx", columnDefinition = "varchar(2) COMMENT '瑙嗛鐩戞帶绫诲瀷(1=浠撳唴,2=涓氬姟绫�,3=瀹夐槻绫�)'")
+    @TableField("spjklx")
+    private String spjklx;
+
+    @Column(name = "spdwlx", columnDefinition = "varchar(2) COMMENT '瑙嗛鐐逛綅绫诲瀷(1-鍑哄叆鍙�,2=鎵︽牱鏈�,3=鍖栭獙瀹�,4=缁撶畻瀹�,5=鍦扮瀹�,6=搴撳尯涓诲共閬�,7=浠撻棿鐩戞帶,8=浠撳唴,9=鑽搧鎴垮唴澶�,10=鍣ㄦ潗瀹ゅ唴澶�,11=鍒堕珮鐐�,12=娌瑰簱缃愬尯,13=鏀跺彂娌硅澶�,14=娉垫埧,15=娌瑰簱涓昏杈撻�佺閬�,16=鍛ㄧ晫)'")
+    @TableField("spdwlx")
+    private String spdwlx;
+
+    @Column(name = "pos_x", columnDefinition = "decimal(20,6) COMMENT '椤甸潰涓殑鍧愭爣'")
+    @TableField("pos_x")
+    private Double posX;
+
+    @Column(name = "pos_y", columnDefinition = "decimal(20,6) COMMENT '椤甸潰涓殑鍧愭爣'")
+    @TableField("pos_y")
+    private Double posY;
+
+    @Column(name = "screen_show", columnDefinition = "varchar(2) COMMENT '澶у睆鏄剧ず鏍囪'")
+    @TableField("screen_show")
+    private String screenShow = Constant.YN_N;
+
+    @Column(name = "phone_show_tag", columnDefinition = "varchar(2) COMMENT '鎵嬫満鏄惁鏄剧ず'")
+    @TableField("phone_show_tag")
+    private String phoneShowTag = Constant.YN_N;
+
+    @Column(name = "order_num", columnDefinition = "int(5) COMMENT '鏄剧ず椤哄簭'")
+    @TableField("order_num")
+    private Integer orderNum = 1;
+
+    @Column(name = "vld", columnDefinition = "varchar(2) COMMENT '鏄惁浣跨敤'")
+    @TableField("vld")
+    private String vld = Constant.YN_Y;
+
+    @Column(name = "remark", columnDefinition = "varchar(100) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+
+    @Transient
+    private String playAddr;//瑙嗛鎾斁鍦板潃锛屾牴鎹笉鍚岀殑鎾斁鏂瑰紡鐢熸垚涓嶅悓鐨勬挱鏀惧湴鍧�
+
+    @Transient
+    private String playIframe;//娴佸獟浣揑frame鎾斁鍦板潃
+
+    @Transient
+    private String msg;
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Depot.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Depot.java
index b5572d4..f252fe8 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Depot.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Depot.java
@@ -23,6 +23,11 @@
 @EqualsAndHashCode(callSuper = false)
 public class Depot extends BizBaseEntity implements Serializable {
 
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
     @Id
     @Column(name = "id", columnDefinition = "varchar(40) COMMENT '浠撳簱缂栫爜'")
     @TableField("id")
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/DicArea.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/DicArea.java
new file mode 100644
index 0000000..81f1455
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/DicArea.java
@@ -0,0 +1,59 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fzzy.igds.constant.Constant;
+import lombok.Data;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * @Description 鍖哄垝鐮�
+ * @Author CZT
+ * @Date 2025/11/25 14:20
+ */
+@Data
+@Entity
+@Table(name = "d_dic_area")
+@TableName("d_dic_area")
+public class DicArea implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    public static String SORT_PROP = "code";
+
+    @Id
+    @Column(name = "code", columnDefinition = "varchar(20) COMMENT '缂栧彿'")
+    @TableField("code")
+    private String code;
+
+    @Column(name = "name", columnDefinition = "varchar(50) COMMENT '鍚嶇О'")
+    @TableField("name")
+    private String name;
+
+    @Column(name = "parent_code", columnDefinition = "varchar(20) COMMENT '鐖剁紪鍙�'")
+    @TableField("parent_code")
+    private String parentCode;
+
+    @Column(name = "type", columnDefinition = "varchar(50) COMMENT '绫诲瀷(1-鐪侊紱2-甯傦紱3-鍖哄幙)'")
+    @TableField("type")
+    private String type;
+
+    @Column(name = "simple", columnDefinition = "varchar(50) COMMENT '绠�鎷�'")
+    @TableField("simple")
+    private String simple;
+
+    @Column(name = "disabled_tag", columnDefinition = "varchar(50) COMMENT '鏄惁绂佺敤'")
+    @TableField("disabled_tag")
+    private String disabledTag = Constant.YN_N;
+
+    @Column(name = "remark", columnDefinition = "varchar(100) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java
new file mode 100644
index 0000000..6e659d4
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java
@@ -0,0 +1,124 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * @Description 鍑哄叆搴撹澶囬厤缃�
+ * @Author CZT
+ * @Date 2025/11/25 17:20
+ */
+@Data
+@Entity
+@Table(name = "d_inout_conf")
+@TableName("d_inout_conf")
+@EqualsAndHashCode(callSuper = false)
+public class InoutConf extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '涓婚敭'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "sort", columnDefinition = "varchar(2) COMMENT '鍑哄叆搴撻厤濂楀簭鍙�'")
+    @TableField("sort")
+    private String sort = "1";
+
+    @Column(name = "in_order", columnDefinition = "int(2) COMMENT '璁惧椤哄簭'")
+    @TableField("in_order")
+    private int inOrder = 1;
+
+    @Column(name = "inout_progress", columnDefinition = "varchar(20) COMMENT '鎵�灞炴祦绋�'")
+    @TableField("inout_progress")
+    private String inoutProgress;
+
+    @Column(name = "name", columnDefinition = "varchar(40) COMMENT '璁惧鍚嶇О'")
+    @TableField("name")
+    private String name;
+
+    @Column(name = "sn", columnDefinition = "varchar(40) COMMENT '璁惧搴忓垪鍙�'")
+    @TableField("sn")
+    private String sn;
+
+    @Column(name = "ip", columnDefinition = "varchar(20) COMMENT '璁惧IP'")
+    @TableField("ip")
+    private String ip;
+
+    @Column(name = "port", columnDefinition = "int(5) COMMENT '璁惧绔彛'")
+    @TableField("port")
+    private Integer port;
+
+    @Column(name = "login_id", columnDefinition = "varchar(40) COMMENT '甯愬彿'")
+    @TableField("login_id")
+    private String loginId;
+
+    @Column(name = "pwd", columnDefinition = "varchar(40) COMMENT '瀵嗙爜'")
+    @TableField("pwd")
+    private String pwd;
+
+    @Column(name = "chan_num", columnDefinition = "int(5) COMMENT '閫氶亾鍙�'")
+    @TableField("chan_num")
+    private int chanNum = 1;
+
+    @Column(name = "port_ctrl", columnDefinition = "int(5) COMMENT '鎺у埗绔彛'")
+    @TableField("port_ctrl")
+    private Integer portCtrl;
+
+    @Column(name = "type", columnDefinition = "varchar(10) COMMENT '璁惧绫诲瀷'")
+    @TableField("type")
+    private String type;
+
+    @Column(name = "status", columnDefinition = "varchar(10) COMMENT '鏄惁鍦ㄧ嚎'")
+    @TableField("status")
+    private String status;
+
+    @Column(name = "protocol", columnDefinition = "varchar(40) COMMENT '鍗忚'")
+    @TableField("protocol")
+    private String protocol;
+
+    @Column(name = "play_type", columnDefinition = "varchar(40) COMMENT '鎾斁鏂瑰紡'")
+    @TableField("play_type")
+    private String playType;
+
+    @Column(name = "snap_type", columnDefinition = "varchar(40) COMMENT '鎶撴媿鏂瑰紡'")
+    @TableField("snap_type")
+    private String snapType;
+
+    @Column(name = "plate_snap_type", columnDefinition = "varchar(40) COMMENT '杞︾墝璇嗗埆鎶撴媿鏂瑰紡'")
+    @TableField("plate_snap_type")
+    private String plateSnapType;
+
+    @Column(name = "url_in", columnDefinition = "varchar(200) COMMENT '鍐呯綉鐩存挱鍦板潃'")
+    @TableField("url_in")
+    private String urlIn;
+
+    @Column(name = "url_out", columnDefinition = "varchar(200) COMMENT '澶栫綉鐩存挱鍦板潃'")
+    @TableField("url_out")
+    private String urlOut;
+
+    @Column(name = "media_addr", columnDefinition = "varchar(200) COMMENT 'RTSP鍦板潃'")
+    @TableField("media_addr")
+    private String mediaAddr;
+
+    @Column(name = "remark", columnDefinition = "varchar(100) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+
+    //寮傚父淇℃伅
+    @Transient
+    private String errorMsg;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java
new file mode 100644
index 0000000..6bff1d3
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java
@@ -0,0 +1,110 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 鍏ュ簱閫氱煡鍗�
+ * @Author CZT
+ * @Date 2025/11/25 14:20
+ */
+@Data
+@Entity
+@Table(name = "d_inout_notice_in")
+@TableName("d_inout_notice_in")
+@EqualsAndHashCode(callSuper = false)
+public class InoutNoticeIn extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    public static String SORT_PROP = "id";
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '閫氱煡鍗曞彿'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "name", columnDefinition = "varchar(40) COMMENT '閫氱煡鍗曞悕绉�'")
+    @TableField("name")
+    private String name;
+
+    @Column(name = "type", columnDefinition = "varchar(40) COMMENT '閫氱煡鍗曠被鍨�(10-搴撳尯鑷缓锛�20-閾惰鐩戠)'")
+    @TableField("type")
+    private String type;
+
+    @Column(name = "contract_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲悎鍚�'")
+    @TableField("contract_id")
+    private String contractId;
+
+    @Column(name = "depot_id", columnDefinition = "varchar(40) COMMENT '鍏ュ簱浠撳簱'")
+    @TableField("depot_id")
+    private String depotId;
+
+    @Column(name = "customer_id", columnDefinition = "varchar(40) COMMENT '鍙戣揣瀹㈡埛'")
+    @TableField("customer_id")
+    private String customerId;
+
+    @Column(name = "customer_name", columnDefinition = "varchar(40) COMMENT '鍙戣揣鍗曚綅'")
+    @TableField("customer_name")
+    private String customerName;
+
+    @Column(name = "unit_name", columnDefinition = "varchar(40) COMMENT '鏀惰揣鍗曚綅'")
+    @TableField("unit_name")
+    private String unitName;
+
+    @Column(name = "food_variety", columnDefinition = "varchar(7) COMMENT '绮鍝佺'")
+    @TableField("food_variety")
+    private String foodVariety;
+
+    @Column(name = "year", columnDefinition = "varchar(4) COMMENT '骞翠唤'")
+    @TableField("year")
+    private String year;
+
+    @Column(name = "target_number", columnDefinition = "decimal(20,6) COMMENT '鐩爣鏁伴噺(鍗曚綅锛欿G)'")
+    @TableField("target_number")
+    private Double targetNumber = 0.0;
+
+    @Column(name = "complete_number", columnDefinition = "decimal(20,6) COMMENT '瀹屾垚鏁伴噺(鍗曚綅锛欿G)'")
+    @TableField("complete_number")
+    private Double completeNumber = 0.0;
+
+    @Column(name = "audit_status", columnDefinition = "varchar(2) COMMENT '瀹℃牳鐘舵��(10=鐩戠瀹℃牳锛�20=閾惰瀹℃牳锛�30=閫氳繃)'")
+    @TableField("audit_status")
+    private String auditStatus = "10";
+
+    @Column(name = "audit_user", columnDefinition = "varchar(20) COMMENT '瀹℃牳浜�'")
+    @TableField("audit_user")
+    private String auditUser;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "audit_date", columnDefinition = "datetime COMMENT '瀹℃壒鏃堕棿'")
+    @TableField("audit_date")
+    private String auditDate;
+
+    @Column(name = "complete_status", columnDefinition = "varchar(20) COMMENT '瀹屾垚鐘舵��(NONE=鏈畬鎴愶紝COMPLETE=宸插畬鎴�)'")
+    @TableField("complete_status")
+    private String completeStatus = "NONE";
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "complete_time", columnDefinition = "datetime COMMENT '瀹屾垚鏃堕棿'")
+    @TableField("complete_time")
+    private Date completeTime;
+
+    @Column(name = "remark", columnDefinition = "varchar(100) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java
new file mode 100644
index 0000000..455c251
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java
@@ -0,0 +1,110 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 鍑哄簱閫氱煡鍗�
+ * @Author CZT
+ * @Date 2025/11/25 14:20
+ */
+@Data
+@Entity
+@Table(name = "d_inout_notice_out")
+@TableName("d_inout_notice_out")
+@EqualsAndHashCode(callSuper = false)
+public class InoutNoticeOut extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    public static String SORT_PROP = "id";
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '閫氱煡鍗曞彿'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "name", columnDefinition = "varchar(40) COMMENT '閫氱煡鍗曞悕绉�'")
+    @TableField("name")
+    private String name;
+
+    @Column(name = "type", columnDefinition = "varchar(40) COMMENT '閫氱煡鍗曠被鍨�(10-搴撳尯鑷缓锛�20-閾惰鐩戠)'")
+    @TableField("type")
+    private String type;
+
+    @Column(name = "contract_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲悎鍚�'")
+    @TableField("contract_id")
+    private String contractId;
+
+    @Column(name = "depot_id", columnDefinition = "varchar(40) COMMENT '鍑哄簱浠撳簱'")
+    @TableField("depot_id")
+    private String depotId;
+
+    @Column(name = "customer_id", columnDefinition = "varchar(40) COMMENT '鍙戣揣瀹㈡埛'")
+    @TableField("customer_id")
+    private String customerId;
+
+    @Column(name = "customer_name", columnDefinition = "varchar(40) COMMENT '鍙戣揣鍗曚綅'")
+    @TableField("customer_name")
+    private String customerName;
+
+    @Column(name = "unit_name", columnDefinition = "varchar(40) COMMENT '鏀惰揣鍗曚綅'")
+    @TableField("unit_name")
+    private String unitName;
+
+    @Column(name = "food_variety", columnDefinition = "varchar(7) COMMENT '绮鍝佺'")
+    @TableField("food_variety")
+    private String foodVariety;
+
+    @Column(name = "year", columnDefinition = "varchar(4) COMMENT '骞翠唤'")
+    @TableField("year")
+    private String year;
+
+    @Column(name = "target_number", columnDefinition = "decimal(20,6) COMMENT '鐩爣鏁伴噺(鍗曚綅锛欿G)'")
+    @TableField("target_number")
+    private Double targetNumber = 0.0;
+
+    @Column(name = "complete_number", columnDefinition = "decimal(20,6) COMMENT '瀹屾垚鏁伴噺(鍗曚綅锛欿G)'")
+    @TableField("complete_number")
+    private Double completeNumber = 0.0;
+
+    @Column(name = "audit_status", columnDefinition = "varchar(2) COMMENT '瀹℃牳鐘舵��(10=鐩戠瀹℃牳锛�20=閾惰瀹℃牳锛�30=閫氳繃)'")
+    @TableField("audit_status")
+    private String auditStatus = "10";
+
+    @Column(name = "audit_user", columnDefinition = "varchar(20) COMMENT '瀹℃牳浜�'")
+    @TableField("audit_user")
+    private String auditUser;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "audit_date", columnDefinition = "datetime COMMENT '瀹℃壒鏃堕棿'")
+    @TableField("audit_date")
+    private String auditDate;
+
+    @Column(name = "complete_status", columnDefinition = "varchar(20) COMMENT '瀹屾垚鐘舵��(NONE=鏈畬鎴愶紝COMPLETE=宸插畬鎴�)'")
+    @TableField("complete_status")
+    private String completeStatus = "NONE";
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "complete_time", columnDefinition = "datetime COMMENT '瀹屾垚鏃堕棿'")
+    @TableField("complete_time")
+    private Date completeTime;
+
+    @Column(name = "remark", columnDefinition = "varchar(100) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java
new file mode 100644
index 0000000..8ea7bb7
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java
@@ -0,0 +1,246 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fzzy.igds.constant.Constant;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 鍑哄叆搴撴祦姘磋〃
+ * @Author CZT
+ * @Date 2025/11/25 19:14
+ */
+@Data
+@Entity
+@Table(name = "d_inout_record")
+@TableName("d_inout_record")
+@EqualsAndHashCode(callSuper = false)
+public class InoutRecord extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    public static String SORT_PROP = "id";
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(14) COMMENT '娴佹按鍙�'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "notice_id", columnDefinition = "varchar(40) COMMENT '閫氱煡鍗曞彿'")
+    @TableField("notice_id")
+    private String noticeId;
+
+    @Column(name = "depot_id", columnDefinition = "varchar(40) COMMENT '瑁呭嵏浠撳簱'")
+    @TableField("depot_id")
+    private String depotId;
+
+    @Column(name = "type", columnDefinition = "varchar(40) COMMENT '鍑哄叆搴撶被鍨�(IN=鍏ュ簱锛孫UT=鍑哄簱)'")
+    @TableField("type")
+    private String type;
+
+    @Column(name = "progress", columnDefinition = "varchar(40) COMMENT '娴佺▼杩涘害(REGISTER=鐧昏,CHECK=鍏ュ簱璐ㄦ,HANDLE=鍊间粨,WEIGHT_TAG=绉伴噸,WEIGHT_FULL=婊¤溅绉伴噸,WEIGHT_EMPTY=绌鸿溅绉伴噸,PAY=缁撶畻,CARD_BACK=鍗$墖鍥炴敹,RECORD=澶囨)'")
+    @TableField("progress")
+    private String progress = "REGISTER";
+
+    @Column(name = "record_status", columnDefinition = "varchar(40) COMMENT '鏁版嵁鐘舵��'")
+    @TableField("record_status")
+    private String recordStatus = "NORMAL";
+
+    @Column(name = "customer_name", columnDefinition = "varchar(40) COMMENT '寰�鏉ュ崟浣�'")
+    @TableField("customer_name")
+    private String customerName;
+
+
+    /*** ------------------------鐧昏-------------------------------------**/
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "register_time", columnDefinition = "datetime COMMENT '鐧昏鏃堕棿'")
+    @TableField("register_time")
+    private Date registerTime;
+
+    @Column(name = "register_user", columnDefinition = "varchar(40) COMMENT '鐧昏浜�'")
+    @TableField("register_user")
+    private String registerUser;
+
+    @Column(name = "user_name", columnDefinition = "varchar(40) COMMENT '鎵胯繍浜�'")
+    @TableField("user_name")
+    private String userName;
+
+    @Column(name = "user_contact", columnDefinition = "varchar(11) COMMENT '鑱旂郴鏂瑰紡'")
+    @TableField("user_contact")
+    private String userContact;
+
+    @Column(name = "user_id", columnDefinition = "varchar(18) COMMENT '韬唤璇佸彿'")
+    @TableField("user_id")
+    private String userId;
+
+    @Column(name = "user_address", columnDefinition = "varchar(100) COMMENT '鎵胯繍浜哄湴鍧�'")
+    @TableField("user_address")
+    private String userAddress;
+
+    @Column(name = "plate_num", columnDefinition = "varchar(40) COMMENT '杞﹁埞鍙�'")
+    @TableField("plate_num")
+    private String plateNum;
+
+    /*** ------------------------绮鍩虹淇℃伅-------------------------------------**/
+    @Column(name = "food_variety", columnDefinition = "varchar(7) COMMENT '绮鍝佺'")
+    @TableField("food_variety")
+    private String foodVariety;
+
+    @Column(name = "food_locationId", columnDefinition = "varchar(40) COMMENT '绮浜у湴'")
+    @TableField("food_locationId")
+    private String foodLocationId;
+
+    @Column(name = "food_location", columnDefinition = "varchar(40) COMMENT '绮浜у湴'")
+    @TableField("food_location")
+    private String foodLocation;
+
+    @Column(name = "food_year", columnDefinition = "varchar(4) COMMENT '绮骞翠唤'")
+    @TableField("food_year")
+    private String foodYear;
+
+    /*** ------------------------鎵︽牱璐ㄦ淇℃伅-------------------------------------**/
+    @Column(name = "food_level", columnDefinition = "varchar(2) COMMENT '绮绛夌骇'")
+    @TableField("food_level")
+    private String foodLevel;
+
+    @Column(name = "check_status", columnDefinition = "varchar(10) COMMENT '璐ㄦ缁撴灉'")
+    @TableField("check_status")
+    private String checkStatus = "NONE";
+
+    @Column(name = "check_user", columnDefinition = "varchar(40) COMMENT '璐ㄦ浜�'")
+    @TableField("check_user")
+    private String checkUser;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "check_time", columnDefinition = "datetime COMMENT '璐ㄦ鏃堕棿'")
+    @TableField("check_time")
+    private Date checkTime;
+
+    @Column(name = "per_wet", columnDefinition = "decimal(20,2) COMMENT '姘村垎'")
+    @TableField("per_wet")
+    private Double perWet;
+
+    @Column(name = "per_impurity", columnDefinition = "decimal(20,2) COMMENT '鏉傝川'")
+    @TableField("per_impurity")
+    private Double perImpurity;
+
+
+    /*** ------------------------绉伴噸鐜妭-------------------------------------**/
+
+    @Column(name = "full_weight", columnDefinition = "decimal(20,2) COMMENT '婊¤溅绉伴噸(鍗曚綅KG)'")
+    @TableField("full_weight")
+    private Double fullWeight = 0.0;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "full_weight_time", columnDefinition = "datetime COMMENT '婊¤溅绉伴噸鏃堕棿'")
+    @TableField("full_weight_time")
+    private Date fullWeightTime;
+
+    @Column(name = "full_weight_user", columnDefinition = "varchar(40) COMMENT '婊¤溅绉伴噸浜�'")
+    @TableField("full_weight_user")
+    private String fullWeightUser;
+
+    @Column(name = "empty_weight", columnDefinition = "decimal(20,2) COMMENT '绌鸿溅绉伴噸(鍗曚綅KG)'")
+    @TableField("empty_weight")
+    private Double emptyWeight = 0.0;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "empty_weight_time", columnDefinition = "datetime COMMENT '绌鸿溅绉伴噸鏃堕棿'")
+    @TableField("empty_weight_time")
+    private Date emptyWeightTime;
+
+    @Column(name = "empty_weight_user", columnDefinition = "varchar(40) COMMENT '绌鸿溅绉伴噸浜�'")
+    @TableField("empty_weight_user")
+    private String emptyWeightUser;
+
+    @Column(name = "net_weight", columnDefinition = "decimal(20,2) COMMENT '鍑�閲�(鍗曚綅KG)'")
+    @TableField("net_weight")
+    private Double netWeight = 0.0;
+
+    @Column(name = "de_other", columnDefinition = "decimal(20,2) COMMENT '鎵i噸(鍗曚綅KG)'")
+    @TableField("de_other")
+    private Double deOther = 0.0;
+
+    @Column(name = "settle_weight", columnDefinition = "decimal(20,2) COMMENT '缁撶畻閲嶉噺(鍗曚綅KG)'")
+    @TableField("settle_weight")
+    private Double settleWeight = 0.0;
+
+    @Column(name = "record_weight", columnDefinition = "decimal(20,2) COMMENT '鍏ュ簱閲嶉噺(鍗曚綅KG)'")
+    @TableField("record_weight")
+    private Double recordWeight = 0.0;
+
+
+    /**
+     * -----------缁撶畻淇℃伅-----------------------
+     **/
+    @Column(name = "price", columnDefinition = "decimal(20,2) COMMENT '鍗曚环(鍗曚綅锛氬厓/鍏枻)'")
+    @TableField("price")
+    private Double price = 0.0;
+
+    @Column(name = "settle_money", columnDefinition = "decimal(20,2) COMMENT '缁撶畻閲戦(鍗曚綅锛氬厓)'")
+    @TableField("settle_money")
+    private Double settleMoney = 0.00;
+
+    @Column(name = "settle_id", columnDefinition = "varchar(40) COMMENT '缁撶畻鍗曞彿'")
+    @TableField("settle_id")
+    private String settleId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "settle_time", columnDefinition = "datetime COMMENT '缁撶畻鏃堕棿'")
+    @TableField("settle_time")
+    private Date settleTime;
+
+    @Column(name = "settle_tag", columnDefinition = "varchar(2) COMMENT '缁撶畻鐘舵��'")
+    @TableField("settle_tag")
+    private String settleTag = Constant.YN_N;
+
+    /**
+     * ----------- 鍊间粨淇℃伅-----------------------
+     **/
+    @Column(name = "handle_user", columnDefinition = "varchar(40) COMMENT '鍊间粨浜�'")
+    @TableField("handle_user")
+    private String handleUser;
+
+    // 鍑哄簱
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "complete_time", columnDefinition = "datetime COMMENT '瀹屾垚鏃堕棿'")
+    @TableField("complete_time")
+    private Date completeTime;
+
+    @Column(name = "complete_user", columnDefinition = "varchar(40) COMMENT '瀹屾垚纭浜�'")
+    @TableField("complete_user")
+    private String completeUser;
+
+    @Column(name = "remarks", columnDefinition = "varchar(100) COMMENT '澶囨敞璇存槑'")
+    @TableField("remarks")
+    private String remarks;
+
+    /**
+     * ----------- 鍊间粨鏃堕棿锛屾墜鏈虹浣跨敤-----------------------
+     **/
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "handle_start", columnDefinition = "datetime COMMENT '鍊间粨寮�濮嬫椂闂�'")
+    @TableField("handle_start")
+    private Date handleStart;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "handle_end", columnDefinition = "datetime COMMENT '鍊间粨缁撴潫鏃堕棿'")
+    @TableField("handle_end")
+    private Date handleEnd;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java
new file mode 100644
index 0000000..3de5c99
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java
@@ -0,0 +1,80 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 鍊掍粨鍔熻兘
+ * @Author CZT
+ * @Date 2025/11/25 19:19
+ */
+@Data
+@Entity
+@Table(name = "d_inout_stock_change")
+@TableName("d_inout_stock_change")
+@EqualsAndHashCode(callSuper = false)
+public class InoutStockChange extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    public static String SORT_PROP = "updateTime";
+    /**
+     * 鍊掍粨鍗曞彿
+     */
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(14) COMMENT '鍊掍粨鍗曞彿(鐢卞�掍粨鏃ユ湡(yyyyMMdd)+4浣嶉『搴忓彿缁勬垚)'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "type", columnDefinition = "varchar(2) COMMENT '鍊掍粨绫诲瀷(0锛氬�掍粨 1锛氱Щ搴�)'")
+    @TableField("type")
+    private String type;
+
+    @Column(name = "food_variety", columnDefinition = "varchar(7) COMMENT '绮鍝佺'")
+    @TableField("food_variety")
+    private String foodVariety;
+
+    @Column(name = "depot_id_in", columnDefinition = "varchar(40) COMMENT '鍊掑叆浠撳簱'")
+    @TableField("depot_id_in")
+    private String depotIdIn;
+
+    @Column(name = "depot_id_out", columnDefinition = "varchar(40) COMMENT '鍊掑嚭浠撳簱'")
+    @TableField("depot_id_out")
+    private String depotIdOut;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @Column(name = "change_date", columnDefinition = "datetime COMMENT '鍊掍粨鏃ユ湡'")
+    @TableField("change_date")
+    private Date changeDate;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "change_start_date", columnDefinition = "datetime COMMENT '鍊掍粨寮�濮嬫棩鏈�'")
+    @TableField("change_start_date")
+    private Date changeStartDate;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "change_end_date", columnDefinition = "datetime COMMENT '鍊掍粨缁撴潫鏃ユ湡'")
+    @TableField("change_end_date")
+    private Date changeEndDate;
+
+    @Column(name = "number", columnDefinition = "decimal(20,2) COMMENT '鍊掍粨鏁伴噺(鍗曚綅锛欿G)'")
+    @TableField("number")
+    private Double number = 0.0;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutSysConf.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutSysConf.java
new file mode 100644
index 0000000..cbecb48
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutSysConf.java
@@ -0,0 +1,61 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fzzy.igds.constant.Constant;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * @Description 鍑哄叆搴撴祦绋嬮厤缃�
+ * @Author CZT
+ * @Date 2025/11/25 17:20
+ */
+@Data
+@Entity
+@Table(name = "d_inout_sys_conf")
+@TableName("d_inout_sys_conf")
+@EqualsAndHashCode(callSuper = false)
+public class InoutSysConf extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+
+    //鍏ュ簱娴佺▼
+    @Column(name = "progress_in", columnDefinition = "varchar(100) COMMENT '鍏ュ簱娴佺▼閰嶇疆'")
+    @TableField("progress_in")
+    private String progressIn;
+
+    //鍑哄簱娴佺▼
+    @Column(name = "progress_out", columnDefinition = "varchar(100) COMMENT '鍑哄簱娴佺▼閰嶇疆'")
+    @TableField("progress_out")
+    private String progressOut;
+
+
+    @Column(name = "notice_wx", columnDefinition = "varchar(100) COMMENT '鏄惁鍚敤寰俊閫氱煡'")
+    @TableField("notice_wx")
+    private String noticeWx = Constant.YN_N;
+
+    @Column(name = "weight_edit_tag", columnDefinition = "varchar(100) COMMENT '鍦扮鏄惁鍙紪杈�'")
+    @TableField("weight_edit_tag")
+    private String weightEditTag = Constant.YN_N;
+
+    @Column(name = "remark", columnDefinition = "varchar(100) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java
new file mode 100644
index 0000000..eac9ada
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java
@@ -0,0 +1,76 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 鐢靛瓙宸¢��
+ * @Author CZT
+ * @Date 2025/11/25 19:38
+ */
+@Data
+@Entity
+@Table(name = "d_patrol_record")
+@TableName("d_patrol_record")
+@EqualsAndHashCode(callSuper = false)
+public class PatrolRecord extends BizBaseEntity implements Serializable {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public static String SORT_PROP = "createTime";
+
+	@Id
+	@Column(name = "id", columnDefinition = "varchar(40) COMMENT '涓婚敭'")
+	@TableField("id")
+	private String id;
+
+	@Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+	@TableField("dept_id")
+	private String deptId;
+
+	@Column(name = "user_name", columnDefinition = "varchar(40) COMMENT '宸¢�讳汉'")
+	@TableField("user_name")
+	private String userName;
+
+	@Column(name = "point_name", columnDefinition = "varchar(40) COMMENT '宸¢�荤偣'")
+	@TableField("point_name")
+	private String pointName;
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	@Column(name = "create_time", columnDefinition = "datetime COMMENT '宸¢�绘椂闂�'")
+	@TableField("create_time")
+	private Date createTime;
+
+	@Column(name = "longitude", columnDefinition = "decimal(20,6) COMMENT '缁忓害'")
+	@TableField("longitude")
+	private String longitude;
+
+	@Column(name = "latitude", columnDefinition = "decimal(20,6) COMMENT '绾害'")
+	@TableField("latitude")
+	private String latitude;
+
+	/**
+	 * --------楦熺灠鍥句俊鎭�--------
+	 **/
+	@Column(name = "img_id", columnDefinition = "varchar(50) COMMENT '宸℃洿鐓х墖'")
+	@TableField("img_id")
+	private String imgId;
+
+	@Column(name = "file_name", columnDefinition = "varchar(50) COMMENT '宸℃洿鐓х墖'")
+	@TableField("file_name")
+	private String imgName;
+
+	//宸℃洿鐓х墖鍏ㄨ矾寰�
+	@Transient
+	private String imgPath;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java
index 22a882a..ae6f7e7 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java
@@ -65,7 +65,7 @@
     @TableField("name")
     private String name;
 
-    @Column(name = "status", columnDefinition = "varchar(2) COMMENT '璐ㄦ娂鐘舵��")
+    @Column(name = "status", columnDefinition = "varchar(2) COMMENT '璐ㄦ娂鐘舵��'")
     @TableField("status")
     private String status;
 
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapConf.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapConf.java
new file mode 100644
index 0000000..c2733d6
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapConf.java
@@ -0,0 +1,55 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * @Description 鎶撴媿閰嶇疆
+ * @Author CZT
+ * @Date 2025/11/25 19:50
+ */
+@Data
+@Entity
+@Table(name = "d_snap_conf")
+@TableName("d_snap_conf")
+@EqualsAndHashCode(callSuper = false)
+public class SnapConf extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '涓婚敭'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "camera_id", columnDefinition = "varchar(40) COMMENT '鎶撴媿鐩戞帶'")
+    @TableField("camera_id")
+    private String cameraId;
+
+    @Column(name = "act_hour1", columnDefinition = "int(10) COMMENT '鎵ц鏃堕棿1'")
+    @TableField("act_hour1")
+    private int actHour1;
+
+    @Column(name = "act_hour2", columnDefinition = "int(10) COMMENT '鎵ц鏃堕棿2'")
+    @TableField("act_hour2")
+    private int actHour2;
+
+    @Column(name = "act_hour3", columnDefinition = "int(10) COMMENT '鎵ц鏃堕棿3'")
+    @TableField("act_hour3")
+    private int actHour3;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapRecord.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapRecord.java
new file mode 100644
index 0000000..cfaa21b
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapRecord.java
@@ -0,0 +1,77 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 鎶撴媿璁板綍
+ * @Author CZT
+ * @Date 2025/11/25 19:55
+ */
+@Data
+@Entity
+@Table(name = "d_snap_record")
+@TableName("d_snap_record")
+@EqualsAndHashCode(callSuper = false)
+public class SnapRecord  extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    public static String SORT_PROP = "updateTime";
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '涓婚敭'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "camera_id", columnDefinition = "varchar(40) COMMENT '鎶撴媿鐩戞帶'")
+    @TableField("camera_id")
+    private String cameraId;
+
+    @Column(name = "result", columnDefinition = "varchar(40) COMMENT '鎶撴媿缁撴灉'")
+    @TableField("result")
+    private String result = "SUCCESS";
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "snap_time", columnDefinition = "datetime COMMENT '鎶撴媿鏃堕棿'")
+    @TableField("snap_time")
+    private Date snapTime;
+
+    /**
+     * --------鎶撴媿鐓х墖--------
+     **/
+    @Column(name = "img_id", columnDefinition = "varchar(50) COMMENT '鎶撴媿鐓х墖'")
+    @TableField("img_id")
+    private String imgId;
+
+    @Column(name = "file_name", columnDefinition = "varchar(50) COMMENT '鎶撴媿鐓х墖'")
+    @TableField("file_name")
+    private String imgName;
+
+    //宸℃洿鐓х墖鍏ㄨ矾寰�
+    @Transient
+    private String imgPath;
+    public SnapRecord() {
+    }
+
+    public SnapRecord(String tag) {
+        if ("TEST".equals(tag)) {
+            this.id = "TEST";
+            this.imgPath = "/img/web/security/img-fail.jpg";
+            this.snapTime = new Date();
+        }
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapSer.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapSer.java
new file mode 100644
index 0000000..ee3db62
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapSer.java
@@ -0,0 +1,68 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fzzy.igds.constant.Constant;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * @Description 鎶撴媿鏈嶅姟
+ * @Author CZT
+ * @Date 2025/11/25 19:43
+ */
+@Data
+@Entity
+@Table(name = "d_snap_ser")
+@TableName("d_snap_ser")
+@EqualsAndHashCode(callSuper = false)
+public class SnapSer extends BizBaseEntity implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '涓婚敭'")
+    @TableField("id")
+    private String id;
+
+    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+    @TableField("dept_id")
+    private String deptId;
+
+    @Column(name = "sort", columnDefinition = "varchar(2) COMMENT '閰嶅搴忓彿'")
+    @TableField("sort")
+    private String sort = "1";
+
+    @Column(name = "sn", columnDefinition = "varchar(40) COMMENT '搴忓垪鍙�'")
+    @TableField("sn")
+    private String sn;
+
+    @Column(name = "name", columnDefinition = "varchar(40) COMMENT '璁惧鍚嶇О'")
+    @TableField("name")
+    private String name;
+
+    @Column(name = "ip", columnDefinition = "varchar(20) COMMENT '璁惧IP'")
+    @TableField("ip")
+    private String ip;
+
+    @Column(name = "port", columnDefinition = "int(5) COMMENT '绔彛'")
+    @TableField("port")
+    private Integer port;
+
+    @Column(name = "status", columnDefinition = "varchar(2) COMMENT '鏄惁鍦ㄧ嚎'")
+    @TableField("status")
+    private String status = Constant.YN_N;
+
+    @Column(name = "remark", columnDefinition = "varchar(100) COMMENT '澶囨敞璇存槑'")
+    @TableField("remark")
+    private String remark;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/DicAreaMapper.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/DicAreaMapper.java
new file mode 100644
index 0000000..741043b
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/DicAreaMapper.java
@@ -0,0 +1,15 @@
+package com.fzzy.igds.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fzzy.igds.domain.DicArea;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/11/25 16:24
+ */
+@Mapper
+public interface DicAreaMapper extends BaseMapper<DicArea> {
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DicAreaRepository.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DicAreaRepository.java
new file mode 100644
index 0000000..bd01a83
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DicAreaRepository.java
@@ -0,0 +1,47 @@
+package com.fzzy.igds.repository;
+
+import com.fzzy.igds.domain.DicArea;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/11/25 16:23
+ */
+@Service
+public interface DicAreaRepository extends JpaRepository<DicArea, String>, JpaSpecificationExecutor<DicArea> {
+
+    /**
+     * 鏍规嵁鐖剁紪鐮佹煡璇㈠尯鍩熶俊鎭�
+     *
+     * @param parentCode
+     * @return
+     */
+    @Query("from DicArea where parentCode =:parentCode order by code")
+    List<DicArea> getDicAreaByParentCode(@Param("parentCode") String parentCode);
+
+    /**
+     * 鏍规嵁鍚嶇О鑾峰彇鍖哄煙淇℃伅
+     *
+     * @param name
+     * @return
+     */
+    @Query("from DicArea where name =:name order by code")
+    DicArea listDicAreaByName(@Param("name") String name);
+
+    /**
+     * 鏍规嵁code鑾峰彇鍖哄煙淇℃伅
+     *
+     * @param code
+     * @return
+     */
+    @Query("from DicArea where code =:code order by code")
+    DicArea listDicAreaByCode(@Param("code") String code);
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/BankService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/BankService.java
index 8f0ca6a..de363cc 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/BankService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/BankService.java
@@ -14,7 +14,6 @@
 import java.util.List;
 
 /**
- *
  * 閾惰淇℃伅绠$悊
  */
 @Service
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DicAreaService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DicAreaService.java
new file mode 100644
index 0000000..897a806
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DicAreaService.java
@@ -0,0 +1,124 @@
+package com.fzzy.igds.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.domain.DicArea;
+import com.fzzy.igds.mapper.DicAreaMapper;
+import com.fzzy.igds.repository.DicAreaRepository;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/11/25 16:23
+ */
+@Service("sys.dicAreaService")
+public class DicAreaService {
+
+    @Resource
+    private DicAreaRepository dicAreaRepository;
+    @Resource
+    private DicAreaMapper dicAreaMapper;
+
+    /**
+     * JPA鍒嗛〉鏌ヨ鏁版嵁
+     *
+     * @param pageable
+     */
+    public Page<DicArea> findAll(Pageable pageable) {
+        return dicAreaRepository.findAll(pageable);
+    }
+
+    /**
+     * JPA鍒嗛〉鏌ヨ鏁版嵁
+     *
+     * @param specification
+     * @param pageable
+     * @return
+     */
+    public Page<DicArea> findAll(Specification<DicArea> specification, Pageable pageable) {
+        return dicAreaRepository.findAll(specification, pageable);
+    }
+
+    /**
+     * JPA鏍规嵁鐖剁紪鐮佹煡璇㈠尯鍩熶俊鎭�
+     *
+     * @param parentCode
+     * @return
+     */
+    public List<DicArea> getDicAreaByParentCode(String parentCode) {
+        if(StringUtils.isEmpty(parentCode)){
+            return dicAreaRepository.findAll();
+        }
+        return dicAreaRepository.getDicAreaByParentCode(parentCode);
+    }
+
+    /**
+     * JPA淇濆瓨鏁版嵁
+     *
+     * @param data
+     * @return
+     */
+    public String saveDicArea(DicArea data) {
+        dicAreaRepository.save(data);
+        return null;
+    }
+
+
+    /**
+     * JPA鍒犻櫎鏁版嵁
+     *
+     * @param data
+     * @return
+     */
+    public String delDicArea(DicArea data) {
+        dicAreaRepository.delete(data);
+        return null;
+    }
+
+    /**
+     * 鏍规嵁鍚嶇О鑾峰彇鍖哄煙缂栫爜
+     *
+     * @param name
+     * @return
+     */
+    public DicArea listDicAreaByName(String name) {
+        return dicAreaRepository.listDicAreaByName(name);
+    }
+
+    /**
+     * 鏍规嵁鍖哄煙缂栫爜鑾峰彇鍚嶇О
+     *
+     * @param code
+     * @return
+     */
+    public DicArea listDicAreaByCode(String code) {
+        return dicAreaRepository.listDicAreaByCode(code);
+    }
+
+
+    /**
+     * 妯$硦鏌ヨ
+     *
+     * @param key
+     * @return
+     */
+    public List<DicArea> listDicArea(String key) {
+        if(null == key){
+            return dicAreaMapper.selectList(null);
+        }
+
+
+        QueryWrapper<DicArea> queryWrapper = new QueryWrapper<>();
+        if(StringUtils.isNotEmpty(key)){
+            queryWrapper.like("name", key);
+            queryWrapper.like("code", key);
+        }
+        return dicAreaMapper.selectList(queryWrapper);
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DicService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DicService.java
new file mode 100644
index 0000000..9662564
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DicService.java
@@ -0,0 +1,309 @@
+package com.fzzy.igds.service;
+
+import com.fzzy.igds.constant.*;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.utils.DictUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.mapper.SysDictDataMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 瀛楀吀service灞�
+ * @Author CZT
+ * @Date 2025/11/25 15:15
+ */
+@Service
+public class DicService {
+
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
+
+    /**
+     * 鍒濆鍖栧父鐢ㄥ搧绉嶃�佹�ц川銆佸嚭鍏ュ簱娴佺▼鍒板唴瀛�
+     *
+     * @param companyId
+     */
+    public void initDicMap(String companyId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+        //鍒濆鍖栫伯椋熷搧绉嶅瓧鍏�
+        List<SysDictData> dicList = DictUtils.getDictCache(Constant.TRIGGER_PARENT_FOOD_VARIETY, companyId);
+        if (null != dicList) {
+            for (SysDictData sysDictData : dicList) {
+                FoodVariety.mapFoodVariety.put(sysDictData.getDictValue(), sysDictData.getDictLabel());
+            }
+        }
+        //鍒濆鍖栫伯椋熸�ц川瀛楀吀
+        dicList = DictUtils.getDictCache(Constant.TRIGGER_PARENT_FOOD_TYPE, companyId);
+        if (null != dicList) {
+            for (SysDictData sysDictData : dicList) {
+                FoodType.mapFoodType.put(sysDictData.getDictValue(), sysDictData.getDictLabel());
+            }
+        }
+        //鍒濆鍖栧嚭鍏ュ簱娴佺▼瀛楀吀
+        dicList = DictUtils.getDictCache(Constant.TRIGGER_PARENT_PROCESS_STATUS, companyId);
+        if (null != dicList) {
+            for (SysDictData sysDictData : dicList) {
+                InoutProgress.mapProgressName.put(sysDictData.getDictValue(), sysDictData.getDictLabel());
+            }
+        }
+    }
+
+    /**
+     * 鏍规嵁type鍜岀粍缁囩紪鐮佽幏鍙栧瓧鍏�,鍏堜粠缂撳瓨鑾峰彇锛岀紦瀛樻病鏈夊垯鏌ヨ鏁版嵁搴�
+     *
+     * @param dictType
+     * @param companyId
+     * @return
+     */
+    public List<SysDictData> getDictDataByType(String dictType, String companyId) {
+
+        if (StringUtils.isEmpty(dictType)) {
+            return null;
+        }
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+        List<SysDictData> list = DictUtils.getDictCache(dictType, companyId);
+        if (null == list || list.isEmpty()) {
+            list = dictDataMapper.selectDictDataByType(dictType, companyId);
+            DictUtils.setDictCache(dictType, list, companyId);
+        }
+        return list;
+    }
+
+    /**
+     * 浠撴埧绫诲瀷-闈炲浗鏍囧畾涔�
+     *
+     * @return
+     */
+    public List<SysDictData> triggerDepotType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (DepotType w : DepotType.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+        return list;
+    }
+
+    /**
+     * 浠撴埧鐘舵��
+     *
+     * @return
+     */
+    public List<SysDictData> triggerDepotStatus() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (DepotStatus w : DepotStatus.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+        return list;
+    }
+
+    /**
+     * 绮绛夌骇
+     *
+     * @return
+     */
+    public List<SysDictData> triggerFoodLevel() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (FoodLevel w : FoodLevel.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+        return list;
+    }
+
+    /**
+     * 鍌ㄧ伯鏂瑰紡
+     *
+     * @return
+     */
+    public List<SysDictData> triggerStoreType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        list.add(new SysDictData("鏁h鍌ㄧ伯", "1"));
+        list.add(new SysDictData("鍖呰鍌ㄧ伯", "2"));
+        list.add(new SysDictData("鍥村寘瀛�", "3"));
+        list.add(new SysDictData("鍏朵粬", "9"));
+        return list;
+    }
+
+    /**
+     * 绠$悊鏂瑰紡
+     *
+     * @return
+     */
+    public List<SysDictData> triggerManagerType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        list.add(new SysDictData("鐩村偍", "01"));
+        list.add(new SysDictData("浠e偍", "02"));
+        list.add(new SysDictData("绉熶粨", "03"));
+        list.add(new SysDictData("濮旀墭", "04"));
+        return list;
+    }
+
+    /**
+     * 鏄惁
+     *
+     * @return
+     */
+    public List<SysDictData> triggerYN() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        list.add(new SysDictData("鏄�", Constant.YN_Y));
+        list.add(new SysDictData("鍚�", Constant.YN_N));
+        return list;
+    }
+
+    /**
+     * 閫氳鐘舵��
+     *
+     * @return
+     * @throws Exception
+     */
+    public List<SysDictData> conStatus() {
+        List<SysDictData> list = new ArrayList<>();
+        list.add(new SysDictData("姝e父", Constant.YN_Y));
+        list.add(new SysDictData("鏂紑", Constant.YN_N));
+        return list;
+    }
+
+    /**
+     * 鎾斁鏂瑰紡
+     *
+     * @return
+     */
+    public List<SysDictData> triggerPlayType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (PlayType w : PlayType.values()) {
+            list.add(new SysDictData(w.getName(), w.getCode()));
+        }
+        return list;
+    }
+
+    /**
+     * 鎶撴媿鏂瑰紡
+     *
+     * @return
+     */
+    public List<SysDictData> triggerSnapType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (SnapType w : SnapType.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+        return list;
+    }
+
+    /**
+     * 妫�楠岀被鍒�
+     *
+     * @return
+     */
+    public List<SysDictData> triggerCheckType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (CheckType w : CheckType.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+        return list;
+    }
+
+    /**
+     * 鎸囨爣绫诲埆
+     *
+     * @return
+     */
+    public List<SysDictData> triggerStandard() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+
+        list.add(new SysDictData("鍥芥爣", "1"));
+        list.add(new SysDictData("鍏朵粬", "0"));
+
+        return list;
+    }
+
+    /**
+     * 妫�楠屼緷鎹�
+     *
+     * @return
+     */
+    public List<SysDictData> triggerMetrics() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+
+        list.add(new SysDictData("璐ㄩ噺鎸囨爣妫�楠�", "1"));
+        list.add(new SysDictData("鍌ㄥ瓨鍝佽川妫�楠�", "2"));
+        list.add(new SysDictData("椋熷搧瀹夊叏妫�楠�", "3"));
+
+        return list;
+    }
+
+    /**
+     * 瀹℃牳鐘舵��
+     *
+     * @return
+     */
+    public List<SysDictData> triggerStatusType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (AuditStatus w : AuditStatus.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+
+        return list;
+    }
+
+    /**
+     * 璀﹀憡绫诲瀷
+     *
+     * @return
+     */
+    public List<SysDictData> triggerWarnType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (WarnType w : WarnType.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+        return list;
+    }
+
+    /**
+     * 璀﹀憡绛夌骇
+     *
+     * @return
+     */
+    public List<SysDictData> triggerWarnLevel() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (WarnLevel w : WarnLevel.values()) {
+            list.add(new SysDictData(w.getMsg(), w.getCode()));
+        }
+
+        return list;
+    }
+
+    /**
+     * 璀﹀憡鐘舵��
+     *
+     * @return
+     */
+    public List<SysDictData> triggerWarnStatus() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (WarnStatus w : WarnStatus.values()) {
+            list.add(new SysDictData(w.getName(), w.getCode()));
+        }
+
+        return list;
+    }
+
+    /**
+     * 璀﹀憡閫氱煡鏂瑰紡
+     *
+     * @return
+     */
+    public List<SysDictData> triggerNoticeType() {
+        List<SysDictData> list = new ArrayList<SysDictData>();
+        for (NoticeType w : NoticeType.values()) {
+            list.add(new SysDictData(w.getName(), w.getCode()));
+        }
+
+        return list;
+    }
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicArea.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicArea.view.xml
new file mode 100644
index 0000000..44c3020
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicArea.view.xml
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.igds.domain.DicArea</Property>
+      <PropertyDef name="code">
+        <Property></Property>
+        <Property name="label">鍖哄煙缂栫爜</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">鍚嶇О</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="parentCode">
+        <Property></Property>
+        <Property name="label">鎵�灞炲尯鍩�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicAreaPR#getDicAreaByParentCode&quot;).getResult()}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="parentName">
+        <Property></Property>
+        <Property name="label">涓婄骇鍖哄煙</Property>
+        <Property name="required">false</Property>
+      </PropertyDef>
+      <PropertyDef name="type">
+        <Property></Property>
+        <Property name="label">绫诲瀷</Property>
+        <Property name="required">true</Property>
+        <Property name="mapping">
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鐪�</Property>
+                <Property name="value">1</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">甯�</Property>
+                <Property name="value">2</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">鍖哄幙</Property>
+                <Property name="value">3</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="simple">
+        <Property></Property>
+        <Property name="label">绠�鎷�</Property>
+        <Property name="required">false</Property>
+      </PropertyDef>
+      <PropertyDef name="disabledTag">
+        <Property></Property>
+        <Property name="label">鏄惁绂佺敤</Property>
+        <Property name="required">false</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">绂佺敤</Property>
+                <Property name="value">Y</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">鍚敤</Property>
+                <Property name="value">N</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞</Property>
+        <Property name="required">false</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="padding:5;regionPadding:5">
+    <ClientEvent name="onReady">//鏌ヨ&#xD;
+query = function(){&#xD;
+    view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+};&#xD;
+      &#xD;
+query();</ClientEvent>
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="dataProvider">dicAreaPR#pageList</Property>
+      <Property name="loadMode">manual</Property>
+      <Property name="pageSize">20</Property>
+    </DataSet>
+    <Container layout="regionPadding:10" layoutConstraint="top">
+      <Property name="exClassName">bg-color</Property>
+      <Property name="contentOverflow">hidden</Property>
+      <Property name="height">55</Property>
+      <Label layoutConstraint="left">
+        <Property name="text">鑿滃崟鏍忥細</Property>
+      </Label>
+      <Button layoutConstraint="left">
+        <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).insert();&#xD;
+          view.get(&quot;#dialogMain&quot;).show();&#xD;
+        </ClientEvent>
+        <Property name="caption">鏂板</Property>
+        <Property name="exClassName">btn1</Property>
+        <Property name="iconClass">fa fa-plus</Property>
+      </Button>
+      <Button layoutConstraint="left">
+        <ClientEvent name="onClick">&#xD;
+		  &#xD;
+var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+if(select){&#xD;
+    view.get(&quot;#dialogMain&quot;).show();;&#xD;
+}else{&#xD;
+    $notify(&quot;璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁鈥︹��&quot;);&#xD;
+}	</ClientEvent>
+        <Property name="caption">缂栬緫</Property>
+        <Property name="exClassName">btn2</Property>
+        <Property name="iconClass">fa fa-pencil</Property>
+      </Button>
+      <Button layoutConstraint="left">
+        <ClientEvent name="onClick">   &#xD;
+var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+if(select){&#xD;
+    view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,select).execute(function(){&#xD;
+		select.remove();&#xD;
+	});&#xD;
+}else{&#xD;
+    $notify(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁鈥︹��&quot;);&#xD;
+}</ClientEvent>
+        <Property name="caption">鍒犻櫎</Property>
+        <Property name="exClassName">btn3</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+      </Button>
+    </Container>
+    <Container layoutConstraint="center">
+      <Property name="exClassName">bg-color</Property>
+      <DataGrid id="dataGridMain" layoutConstraint="center">
+        <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+          if(data){&#xD;
+          view.get(&quot;#dialogMain&quot;).show();&#xD;
+          }</ClientEvent>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="readOnly">true</Property>
+        <Property name="selectionMode">singleRow</Property>
+        <RowSelectorColumn/>
+        <RowNumColumn/>
+        <DataColumn>
+          <Property name="property">code</Property>
+          <Property name="align">center</Property>
+          <Property name="name">code</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">name</Property>
+          <Property name="align">center</Property>
+          <Property name="name">name</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">simple</Property>
+          <Property name="align">center</Property>
+          <Property name="name">simple</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">parentCode</Property>
+          <Property name="align">center</Property>
+          <Property name="name">parentCode</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">type</Property>
+          <Property name="align">center</Property>
+          <Property name="name">type</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">disabledTag</Property>
+          <Property name="align">center</Property>
+          <Property name="name">disabledTag</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">remark</Property>
+          <Property name="align">center</Property>
+          <Property name="name">remark</Property>
+        </DataColumn>
+      </DataGrid>
+    </Container>
+    <Container layoutConstraint="bottom">
+      <Property name="exClassName">bg-color</Property>
+      <DataPilot layoutConstraint="right">
+        <Property name="dataSet">dsMain</Property>
+        <Property name="itemCodes">pageSize,pages</Property>
+      </DataPilot>
+    </Container>
+    <Dialog id="dialogMain">
+      <Property name="closeable">false</Property>
+      <Property name="caption">閰嶇疆淇℃伅</Property>
+      <Property name="width">60%</Property>
+      <Property name="iconClass">fa fa-tasks</Property>
+      <Buttons>
+        <Button id="btnOk">
+          <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+            &#xD;
+            if(data.validate() != 'ok'){&#xD;
+            $notify(&quot;鏁版嵁鏍¢獙澶辫触锛侊紒&quot;);&#xD;
+            return;&#xD;
+            }&#xD;
+            &#xD;
+            view.get(&quot;#uaAction&quot;).set(&quot;parameter&quot;,data).execute(function(){&#xD;
+            &#xD;
+            $notify(&quot;鏁版嵁鎵ц瀹屾垚锛侊紒&quot;);&#xD;
+            self.get(&quot;parent&quot;).hide();&#xD;
+            });</ClientEvent>
+          <Property name="caption">纭畾</Property>
+          <Property name="iconClass">fa fa-check</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">view.get(&quot;#dsMain.data:#&quot;).cancel();&#xD;
+            self.get(&quot;parent&quot;).hide();</ClientEvent>
+          <Property name="caption">鍙栨秷</Property>
+          <Property name="iconClass">fa fa-times</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <AutoForm>
+          <Property name="dataSet">dsMain</Property>
+          <Property name="cols">*,*</Property>
+          <Property name="labelAlign">right</Property>
+          <Property name="labelSeparator">锛�</Property>
+          <Property name="labelWidth">120</Property>
+          <AutoFormElement>
+            <Property name="name">code</Property>
+            <Property name="property">code</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">name</Property>
+            <Property name="property">name</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">simple</Property>
+            <Property name="property">simple</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">type</Property>
+            <Property name="property">type</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">disabledTag</Property>
+            <Property name="property">disabledTag</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement layoutConstraint="colSpan:2">
+            <Property name="name">remark</Property>
+            <Property name="property">remark</Property>
+            <Editor/>
+          </AutoFormElement>
+        </AutoForm>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="uaAction">
+      <Property name="dataResolver">dicAreaPR#saveDicArea</Property>
+      <UpdateItem>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="dataPath">[#current]</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="service">dicAreaPR#delDicArea</Property>
+      <Property name="confirmMessage">纭畾瑕佹墽琛屽垹闄や箞锛�</Property>
+    </AjaxAction>
+  </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicAreaPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicAreaPR.java
new file mode 100644
index 0000000..834a3b8
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicAreaPR.java
@@ -0,0 +1,106 @@
+package com.fzzy.igds;
+
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.annotation.DataResolver;
+import com.bstek.dorado.annotation.Expose;
+import com.bstek.dorado.data.provider.Page;
+import com.fzzy.igds.domain.DicArea;
+import com.fzzy.igds.service.DicAreaService;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/11/25 16:21
+ */
+@Component
+public class DicAreaPR {
+
+    @Resource
+    private DicAreaService dicAreaService;
+
+    /**
+     * dicAreaPR#pageList
+     *
+     * @param page
+     */
+    @DataProvider
+    public void pageList(Page<DicArea> page, String key) {
+        //澶氬弬鏁板垎椤垫煡璇�
+        Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.ASC, DicArea.SORT_PROP);
+
+        if (StringUtils.isEmpty(key)) {
+            org.springframework.data.domain.Page<DicArea> japPage = dicAreaService.findAll(pageable);
+            page.setEntityCount((int) japPage.getTotalElements());
+            page.setEntities(japPage.getContent());
+
+            return;
+        }
+        Specification<DicArea> specification = new Specification<DicArea>() {
+            private static final long serialVersionUID = 1L;
+
+            public Predicate toPredicate(Root<DicArea> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+                List<Predicate> predicates = new ArrayList<Predicate>(); //鎵�鏈夌殑鏂█
+
+                Predicate predicate1 = cb.like(root.get("name"), "%" + key + "%");
+                predicates.add(predicate1);
+
+                return cb.and(predicates.toArray(new Predicate[0]));
+            }
+        };
+        org.springframework.data.domain.Page<DicArea> japPage = dicAreaService.findAll(specification, pageable);
+        page.setEntityCount((int) japPage.getTotalElements());
+        page.setEntities(japPage.getContent());
+    }
+
+    /**
+     * dicAreaPR#getDicAreaByParentCode
+     */
+    @DataProvider
+    public List<DicArea> getDicAreaByParentCode(String parentCode) {
+        return dicAreaService.getDicAreaByParentCode(parentCode);
+    }
+
+    /**
+     * dicAreaPR#saveDicArea
+     *
+     * @param data
+     * @return
+     */
+    @DataResolver
+    public String saveDicArea(DicArea data) {
+
+        DicArea dicArea = new DicArea();
+        BeanUtils.copyProperties(data, dicArea);
+        return dicAreaService.saveDicArea(dicArea);
+    }
+
+    /**
+     * dicAreaPR#delDicArea
+     *
+     * @param data
+     * @return
+     */
+    @Expose
+    public String delDicArea(DicArea data) {
+
+        DicArea dicArea = new DicArea();
+        BeanUtils.copyProperties(data, dicArea);
+        return dicAreaService.delDicArea(dicArea);
+    }
+
+}
\ No newline at end of file
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicPR.java
new file mode 100644
index 0000000..b88ad10
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DicPR.java
@@ -0,0 +1,225 @@
+package com.fzzy.igds;
+
+import com.bstek.dorado.annotation.DataProvider;
+import com.fzzy.igds.service.DicService;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Description 瀛楀吀鏁版嵁PR灞�
+ * @Author CZT
+ * @Date 2025/11/25 15:46
+ */
+@Component
+public class DicPR {
+
+    @Resource
+    private DicService dicService;
+
+    /**
+     * 涓嬫媺妗嗕娇鐢�
+     * ${dorado.getDataProvider("dicPR#sysDictData").getResult("CATEGORY_ARCHIVES")}
+     *
+     * @param dictType
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> sysDictData(String dictType) {
+        return dicService.getDictDataByType(dictType, null);
+    }
+
+
+    /**
+     * 浠撴埧绫诲瀷-闈炲浗鏍囧畾涔�
+     * ${dorado.getDataProvider("dicPR#triggerDepotType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerDepotType() {
+        return dicService.triggerDepotType();
+    }
+
+    /**
+     * 浠撴埧鐘舵��
+     * ${dorado.getDataProvider("dicPR#triggerDepotStatus").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerDepotStatus() {
+        return dicService.triggerDepotStatus();
+    }
+
+    /**
+     * 绮绛夌骇
+     * ${dorado.getDataProvider("dicPR#triggerFoodLevel").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerFoodLevel() {
+        return dicService.triggerFoodLevel();
+    }
+
+    /**
+     * 鍌ㄧ伯鏂瑰紡
+     * ${dorado.getDataProvider("dicPR#triggerStoreType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerStoreType() {
+        return dicService.triggerStoreType();
+    }
+
+    /**
+     * 绠$悊鏂瑰紡
+     * ${dorado.getDataProvider("dicPR#triggerManagerType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerManagerType() {
+        return dicService.triggerManagerType();
+    }
+
+    /**
+     * ${dorado.getDataProvider("dicTriggerPR#triggerYN").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerYN() {
+        return dicService.triggerYN();
+    }
+
+
+    /**
+     * 閫氳鐘舵��
+     * ${dorado.getDataProvider("dicPR#conStatus").getResult()}
+     *
+     * @return
+     * @throws Exception
+     */
+    @DataProvider
+    public List<SysDictData> conStatus() {
+        return dicService.conStatus();
+    }
+
+    /**
+     * 鎾斁鏂瑰紡
+     * ${dorado.getDataProvider("dicPR#triggerPlayType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerPlayType() {
+        return dicService.triggerPlayType();
+    }
+
+    /**
+     * 鎶撴媿鏂瑰紡
+     * ${dorado.getDataProvider("dicPR#triggerSnapType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerSnapType() {
+        return dicService.triggerSnapType();
+    }
+
+    /**
+     * 妫�楠岀被鍒�
+     * <p>
+     * ${dorado.getDataProvider("dicPR#triggerCheckType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerCheckType() {
+        return dicService.triggerCheckType();
+    }
+
+    /**
+     * 鎸囨爣绫诲埆
+     * <p>
+     * ${dorado.getDataProvider("dicPR#triggerStandard").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerStandard() {
+        return dicService.triggerStandard();
+    }
+
+    /**
+     * 妫�楠屼緷鎹�
+     * <p>
+     * ${dorado.getDataProvider("dicPR#triggerMetrics").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerMetrics() {
+        return dicService.triggerMetrics();
+    }
+
+    /**
+     * 瀹℃牳鐘舵��
+     * ${dorado.getDataProvider("dicPR#triggerStatusType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerStatusType() {
+        return dicService.triggerStatusType();
+    }
+
+    /**
+     * 璀﹀憡绫诲瀷
+     * ${dorado.getDataProvider("dicPR#triggerWarnType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerWarnType() {
+        return dicService.triggerWarnType();
+    }
+
+    /**
+     * 璀﹀憡绛夌骇
+     * ${dorado.getDataProvider("dicPR#triggerWarnLevel").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerWarnLevel() {
+        return dicService.triggerWarnLevel();
+    }
+
+    /**
+     * 璀﹀憡鐘舵��
+     * ${dorado.getDataProvider("dicPR#triggerWarnStatus").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerWarnStatus() {
+        return dicService.triggerWarnStatus();
+    }
+
+    /**
+     * 璀﹀憡閫氱煡鏂瑰紡
+     * ${dorado.getDataProvider("dicPR#triggerNoticeType").getResult()}
+     *
+     * @return
+     */
+    @DataProvider
+    public List<SysDictData> triggerNoticeType() {
+        return dicService.triggerNoticeType();
+    }
+
+}
diff --git a/fzzy-igdss-web/src/main/resources/templates/index-topnav.html b/fzzy-igdss-web/src/main/resources/templates/index-topnav.html
index 2332bcf..b89e00d 100644
--- a/fzzy-igdss-web/src/main/resources/templates/index-topnav.html
+++ b/fzzy-igdss-web/src/main/resources/templates/index-topnav.html
@@ -231,17 +231,17 @@
                     </li>
 	                </th:block>
 	                
-	                <li role="presentation" id="tab_index">
-                      <a data-toggle="tab" href="#index">
-                        <i class="fa fa-area-chart"></i> <span>缁熻鎶ヨ〃</span>
-                      </a>
-                    </li>
+<!--	                <li role="presentation" id="tab_index">-->
+<!--                      <a data-toggle="tab" href="#index">-->
+<!--                        <i class="fa fa-area-chart"></i> <span>缁熻鎶ヨ〃</span>-->
+<!--                      </a>-->
+<!--                    </li>-->
                     
-                    <li role="presentation" id="tab_demo" th:if="${demoEnabled}">
-                      <a data-toggle="tab" href="#demo">
-                        <i class="fa fa-desktop"></i> <span>瀹炰緥婕旂ず</span>
-                      </a>
-                    </li>
+<!--                    <li role="presentation" id="tab_demo" th:if="${demoEnabled}">-->
+<!--                      <a data-toggle="tab" href="#demo">-->
+<!--                        <i class="fa fa-desktop"></i> <span>瀹炰緥婕旂ず</span>-->
+<!--                      </a>-->
+<!--                    </li>-->
 				  </ul>
 				</div>
                 <!-- 鍙充晶鏍� -->

--
Gitblit v1.9.3