From b93f4d2f7c14b6833c26678b57d76bb2baff79ff Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期日, 04 一月 2026 16:02:03 +0800
Subject: [PATCH] 增加流媒体配置

---
 fzzy-igdss-view/src/main/java/com/fzzy/igds/CameraMedia.view.xml            |  621 ++++++++++++++++++++++++++++++++++++
 fzzy-igdss-view/src/main/java/com/fzzy/igds/CameraMediaPR.java              |   66 +++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CameraMediaService.java |   91 +++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/CameraMediaMapper.java   |   15 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/ConfByDept.view.xml             |   16 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/CameraMedia.java         |  186 ++++++++++
 6 files changed, 994 insertions(+), 1 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/CameraMedia.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/CameraMedia.java
new file mode 100644
index 0000000..cb11f87
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/CameraMedia.java
@@ -0,0 +1,186 @@
+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 2026/01/04 14:48
+ */
+@Data
+@Entity
+@Table(name = "d_camera_media")
+@TableName("d_camera_media")
+@EqualsAndHashCode(callSuper = false)
+public class CameraMedia extends BizBaseEntity implements Serializable {
+
+    @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 = "yd_id", columnDefinition = "varchar(40) COMMENT '鏈嶅姟IP'")
+    @TableField("yd_id")
+    private String ydIp;
+
+    @Column(name = "yd_port", columnDefinition = "int COMMENT '鏈嶅姟绔彛'")
+    @TableField("yd_port")
+    private Integer ydPort;
+
+    @Column(name = "yd_login", columnDefinition = "varchar(40) COMMENT '鐧诲綍鐢ㄦ埛'")
+    @TableField("yd_login")
+    private String ydLogin;
+
+    @Column(name = "yd_pwd", columnDefinition = "varchar(40) COMMENT '鐧诲綍瀵嗙爜'")
+    @TableField("yd_pwd")
+    private String ydPwd;
+
+    @Column(name = "yd_app_key", columnDefinition = "varchar(40) COMMENT 'APPID'")
+    @TableField("yd_app_key")
+    private String ydAppKey;
+
+    @Column(name = "yd_app_secret", columnDefinition = "varchar(100) COMMENT '绉橀挜'")
+    @TableField("yd_app_secret")
+    private String ydAppSecret;
+
+    @Column(name = "yd_rsa", columnDefinition = "varchar(1000) COMMENT '鍔犲瘑瀵嗛挜'")
+    @TableField("yd_rsa")
+    private String ydRsa;
+
+    @Column(name = "yd_store_id", columnDefinition = "varchar(40) COMMENT '鑺傜偣缂栫爜'")
+    @TableField("yd_store_id")
+    private String ydStoreId;
+
+    //------------GB28181娴佸獟浣撻厤缃俊鎭�------------
+    @Column(name = "gb_ip", columnDefinition = "varchar(40) COMMENT '鏈嶅姟IP'")
+    @TableField("gb_ip")
+    private String gbIp;
+
+    @Column(name = "gb_port", columnDefinition = "int COMMENT '鏈嶅姟绔彛'")
+    @TableField("gb_port")
+    private Integer gbPort;
+
+    @Column(name = "gb_login", columnDefinition = "varchar(40) COMMENT '鐧诲綍鐢ㄦ埛'")
+    @TableField("gb_login")
+    private String gbLogin;
+
+    @Column(name = "gb_pwd", columnDefinition = "varchar(40) COMMENT '鐧诲綍瀵嗙爜'")
+    @TableField("gb_pwd")
+    private String gbPwd;
+
+    @Column(name = "gb_app_key", columnDefinition = "varchar(40) COMMENT 'APPID'")
+    @TableField("gb_app_key")
+    private String gbAppKey;
+
+    @Column(name = "gb_app_secret", columnDefinition = "varchar(100) COMMENT '瀵嗛挜'")
+    @TableField("gb_app_secret")
+    private String gbAppSecret;
+
+    //------------娴峰悍娴佸獟浣撻厤缃俊鎭�------------
+    @Column(name = "hik_ip", columnDefinition = "varchar(40) COMMENT '鏈嶅姟IP'")
+    @TableField("hik_ip")
+    private String hikIp;
+
+    @Column(name = "hik_port", columnDefinition = "int COMMENT '鏈嶅姟绔彛'")
+    @TableField("hik_port")
+    private Integer hikPort;
+
+    @Column(name = "hik_login", columnDefinition = "varchar(40) COMMENT '鐧诲綍鐢ㄦ埛'")
+    @TableField("hik_login")
+    private String hikLogin;
+
+    @Column(name = "hik_pwd", columnDefinition = "varchar(40) COMMENT '鐧诲綍瀵嗙爜'")
+    @TableField("hik_pwd")
+    private String hikPwd;
+
+    @Column(name = "hik_app_key", columnDefinition = "varchar(40) COMMENT 'APPID'")
+    @TableField("hik_app_key")
+    private String hikAppKey;
+
+    @Column(name = "hik_app_secret", columnDefinition = "varchar(100) COMMENT '瀵嗛挜'")
+    @TableField("hik_app_secret")
+    private String hikAppSecret;
+
+    @Column(name = "hik_path", columnDefinition = "varchar(100) COMMENT '璺緞閰嶇疆'")
+    @TableField("hik_path")
+    private String hikPath;
+
+    @Column(name = "hik_wan_ip", columnDefinition = "varchar(40) COMMENT '鏄犲皠IP'")
+    @TableField("hik_wan_ip")
+    private String hikWanIp;
+
+    @Column(name = "hik_wan_port", columnDefinition = "int COMMENT '鏄犲皠绔彛'")
+    @TableField("hik_wan_port")
+    private Integer hikWanPort;
+
+
+    //------------澶у崕娴佸獟浣撻厤缃俊鎭�------------
+    @Column(name = "dh_ip", columnDefinition = "varchar(40) COMMENT '鏈嶅姟IP'")
+    @TableField("dh_ip")
+    private String dhIp;
+
+    @Column(name = "dh_port", columnDefinition = "int COMMENT '鏈嶅姟绔彛'")
+    @TableField("dh_port")
+    private Integer dhPort;
+
+    @Column(name = "dh_login", columnDefinition = "varchar(40) COMMENT '鐧诲綍鐢ㄦ埛'")
+    @TableField("dh_login")
+    private String dhLogin;
+
+    @Column(name = "dh_pwd", columnDefinition = "varchar(40) COMMENT '鐧诲綍瀵嗙爜'")
+    @TableField("dh_pwd")
+    private String dhPwd;
+
+    @Column(name = "dh_app_key", columnDefinition = "varchar(40) COMMENT 'APPID'")
+    @TableField("dh_app_key")
+    private String dhAppKey;
+
+    @Column(name = "dh_app_secret", columnDefinition = "varchar(100) COMMENT '瀵嗛挜'")
+    @TableField("dh_app_secret")
+    private String dhAppSecret;
+
+    @Column(name = "dh_wan_ip", columnDefinition = "varchar(40) COMMENT '鏄犲皠IP'")
+    @TableField("dh_wan_ip")
+    private String dhWanIp;
+
+    @Column(name = "dh_wan_port", columnDefinition = "int COMMENT '鏄犲皠绔彛'")
+    @TableField("dh_wan_port")
+    private Integer dhWanPort;
+
+
+    //------------鏈湴WEBRTC閰嶇疆------------
+    @Column(name = "rtc_ip", columnDefinition = "varchar(40) COMMENT '鏈嶅姟IP'")
+    @TableField("rtc_ip")
+    private String rtcIp;
+
+    @Column(name = "rtc_port", columnDefinition = "int COMMENT '鏈嶅姟绔彛'")
+    @TableField("rtc_port")
+    private Integer rtcPort;
+
+    @Column(name = "rtc_login", columnDefinition = "varchar(40) COMMENT '鐧诲綍鐢ㄦ埛'")
+    @TableField("rtc_login")
+    private String rtcLogin;
+
+    @Column(name = "rtc_pwd", columnDefinition = "varchar(40) COMMENT '鐧诲綍瀵嗙爜'")
+    @TableField("rtc_pwd")
+    private String rtcPwd;
+
+
+    //------------鍏朵粬閰嶇疆淇℃伅------------
+    @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/CameraMediaMapper.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/CameraMediaMapper.java
new file mode 100644
index 0000000..eeeecf4
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/CameraMediaMapper.java
@@ -0,0 +1,15 @@
+package com.fzzy.igds.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fzzy.igds.domain.CameraMedia;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2026/01/04 15:17
+ */
+@Mapper
+public interface CameraMediaMapper extends BaseMapper<CameraMedia> {
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CameraMediaService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CameraMediaService.java
new file mode 100644
index 0000000..f511abb
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CameraMediaService.java
@@ -0,0 +1,91 @@
+package com.fzzy.igds.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.domain.CameraMedia;
+import com.fzzy.igds.mapper.CameraMediaMapper;
+import com.fzzy.igds.utils.ContextUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2026/01/04 15:17
+ */
+@Slf4j
+@Service
+public class CameraMediaService {
+
+
+    @Resource
+    private CameraMediaMapper mapper;
+
+
+    /**
+     * 鍒楄〃鏌ヨ
+     * @return
+     */
+    public List<CameraMedia> listAll() {
+
+        QueryWrapper<CameraMedia> queryWrapper = new QueryWrapper<>();
+
+        queryWrapper.eq("company_id", ContextUtil.getCompanyId());
+
+        return mapper.selectList(queryWrapper);
+    }
+
+
+    /**
+     * 鏍规嵁鍒嗗簱ID鑾峰彇褰撳墠閰嶇疆淇℃伅
+     * @param deptId
+     * @return
+     */
+    public CameraMedia getByDeptId(String deptId, String companyId) {
+
+        if (null == companyId) companyId = ContextUtil.getCompanyId();
+
+        if (null == deptId) return null;
+        QueryWrapper<CameraMedia> queryWrapper = new QueryWrapper<>();
+
+        queryWrapper.eq("company_id_", companyId);
+
+        queryWrapper.eq("dept_id_", deptId);
+
+        return mapper.selectOne(queryWrapper);
+    }
+
+    /**
+     * 鏁版嵁鏇存柊鎴栨柊澧�
+     * @param data
+     */
+    public void saveData(CameraMedia data) {
+
+        data.setUpdateBy(ContextUtil.getLoginUserName());
+        data.setUpdateTime(new Date());
+
+        if (StringUtils.isEmpty(data.getId())) {
+            data.setId(ContextUtil.generateId());
+            data.setCompanyId(ContextUtil.getCompanyId());
+
+            data.setCreateBy(ContextUtil.getLoginUserName());
+            data.setCreateTime(new Date());
+            mapper.insert(data);
+        } else {
+            mapper.updateById(data);
+        }
+    }
+
+    /**
+     * 鏁版嵁鍒犻櫎
+     * @param data
+     * @return
+     */
+    public String delData(CameraMedia data) {
+        if (StringUtils.isEmpty(data.getId())) return null;
+        return mapper.deleteById(data.getId()) > 0 ? null : "鍒犻櫎澶辫触";
+    }
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/CameraMedia.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/CameraMedia.view.xml
new file mode 100644
index 0000000..6769638
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/CameraMedia.view.xml
@@ -0,0 +1,621 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.igds.domain.CameraMedia</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">ID</Property>
+      </PropertyDef>
+      <PropertyDef name="companyId">
+        <Property></Property>
+        <Property name="label">缁勭粐缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">kqmc</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="ydIp">
+        <Property></Property>
+        <Property name="label">鏈嶅姟IP</Property>
+      </PropertyDef>
+      <PropertyDef name="ydPort">
+        <Property name="dataType">Integer</Property>
+        <Property name="label">鏈嶅姟绔彛</Property>
+      </PropertyDef>
+      <PropertyDef name="ydLogin">
+        <Property></Property>
+        <Property name="label">鐧诲綍璐﹀彿</Property>
+      </PropertyDef>
+      <PropertyDef name="ydPwd">
+        <Property></Property>
+        <Property name="label">鐧诲綍瀵嗙爜</Property>
+      </PropertyDef>
+      <PropertyDef name="ydAppKey">
+        <Property></Property>
+        <Property name="label">APPID</Property>
+      </PropertyDef>
+      <PropertyDef name="ydAppSecret">
+        <Property></Property>
+        <Property name="label">APP绉橀挜</Property>
+      </PropertyDef>
+      <PropertyDef name="ydRsa">
+        <Property></Property>
+        <Property name="label">鍔犲瘑瀵嗛挜</Property>
+      </PropertyDef>
+      <PropertyDef name="ydStoreId">
+        <Property></Property>
+        <Property name="label">鑺傜偣缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="gbIp">
+        <Property></Property>
+        <Property name="label">鏈嶅姟IP</Property>
+      </PropertyDef>
+      <PropertyDef name="gbPort">
+        <Property name="dataType">Integer</Property>
+        <Property name="label">鏈嶅姟绔彛</Property>
+      </PropertyDef>
+      <PropertyDef name="gbLogin">
+        <Property></Property>
+        <Property name="label">鐧诲綍鐢ㄦ埛</Property>
+      </PropertyDef>
+      <PropertyDef name="gbPwd">
+        <Property></Property>
+        <Property name="label">鐧诲綍瀵嗙爜</Property>
+      </PropertyDef>
+      <PropertyDef name="gbAppKey">
+        <Property></Property>
+        <Property name="label">APPID</Property>
+      </PropertyDef>
+      <PropertyDef name="gbAppSecret">
+        <Property></Property>
+        <Property name="label">APP瀵嗛挜</Property>
+      </PropertyDef>
+      <PropertyDef name="hikIp">
+        <Property></Property>
+        <Property name="label">鏈嶅姟IP</Property>
+      </PropertyDef>
+      <PropertyDef name="hikPort">
+        <Property name="dataType">Integer</Property>
+        <Property name="label">鏈嶅姟绔彛</Property>
+      </PropertyDef>
+      <PropertyDef name="hikLogin">
+        <Property></Property>
+        <Property name="label">鐧诲綍鐢ㄦ埛</Property>
+      </PropertyDef>
+      <PropertyDef name="hikPwd">
+        <Property></Property>
+        <Property name="label">鐧诲綍瀵嗙爜</Property>
+      </PropertyDef>
+      <PropertyDef name="hikAppKey">
+        <Property></Property>
+        <Property name="label">APPID</Property>
+      </PropertyDef>
+      <PropertyDef name="hikAppSecret">
+        <Property></Property>
+        <Property name="label">APP瀵嗛挜</Property>
+      </PropertyDef>
+      <PropertyDef name="dhIp">
+        <Property></Property>
+        <Property name="label">鏈嶅姟IP</Property>
+      </PropertyDef>
+      <PropertyDef name="dhPort">
+        <Property name="dataType">Integer</Property>
+        <Property name="label">鏈嶅姟绔彛</Property>
+      </PropertyDef>
+      <PropertyDef name="dhLogin">
+        <Property></Property>
+        <Property name="label">鐧诲綍鐢ㄦ埛</Property>
+      </PropertyDef>
+      <PropertyDef name="dhPwd">
+        <Property></Property>
+        <Property name="label">鐧诲綍瀵嗙爜</Property>
+      </PropertyDef>
+      <PropertyDef name="dhAppKey">
+        <Property></Property>
+        <Property name="label">APPID</Property>
+      </PropertyDef>
+      <PropertyDef name="dhAppSecret">
+        <Property></Property>
+        <Property name="label">APP瀵嗛挜</Property>
+      </PropertyDef>
+      <PropertyDef name="rtcIp">
+        <Property></Property>
+        <Property name="label">鏈嶅姟IP</Property>
+      </PropertyDef>
+      <PropertyDef name="rtcPort">
+        <Property name="dataType">Integer</Property>
+        <Property name="label">鏈嶅姟绔彛</Property>
+      </PropertyDef>
+      <PropertyDef name="rtcLogin">
+        <Property></Property>
+        <Property name="label">鐧诲綍鐢ㄦ埛</Property>
+      </PropertyDef>
+      <PropertyDef name="rtcPwd">
+        <Property></Property>
+        <Property name="label">鐧诲綍瀵嗙爜</Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞淇℃伅</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鍒涘缓鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="createBy">
+        <Property></Property>
+        <Property name="label">鍒涘缓浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateBy">
+        <Property></Property>
+        <Property name="label">鏇存柊浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="padding:10">
+    <Property name="packages">font-awesome,css-common</Property>
+    <Property name="cache">
+      <Property name="mode">clientSide</Property>
+    </Property>
+    <DataSet id="dsMain">
+      <Property name="parameter"></Property>
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="dataProvider">cameraMediaPR#listAll</Property>
+    </DataSet>
+    <Container>
+      <Property name="exClassName">c-data2</Property>
+      <Property name="contentOverflow">hidden</Property>
+      <ToolBar>
+        <ToolBarLabel>
+          <Property name="text">鑿滃崟鏍忥細</Property>
+          <Property name="exClassName">menu-bar-caption</Property>
+        </ToolBarLabel>
+        <ToolBarButton>
+          <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).insert();&#xD;
+view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+          <Property name="caption">鏂板</Property>
+          <Property name="exClassName">btn1</Property>
+          <Property name="iconClass">fa fa-plus-circle</Property>
+          <Property name="width">80</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">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>
+          <Property name="width">80</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">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(result){&#xD;
+		if (result) {&#xD;
+			$alert(result);&#xD;
+			return;&#xD;
+		}&#xD;
+		else {&#xD;
+			select.remove();&#xD;
+		}&#xD;
+	});&#xD;
+}else{&#xD;
+    $notify(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁鈥︹��&quot;);&#xD;
+}</ClientEvent>
+          <Property name="caption">鍒犻櫎</Property>
+          <Property name="exClassName">btn3</Property>
+          <Property name="iconClass">fa fa-minus-circle</Property>
+          <Property name="width">80</Property>
+        </ToolBarButton>
+        <Separator/>
+      </ToolBar>
+      <DataGrid id="dataGridMain" layoutConstraint="padding:8">
+        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridMain&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="readOnly">true</Property>
+        <Property name="selectionMode">singleRow</Property>
+        <RowSelectorColumn/>
+        <RowNumColumn/>
+        <DataColumn>
+          <Property name="property">deptId</Property>
+          <Property name="name">deptId</Property>
+          <Property name="width">320</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+        <ColumnGroup>
+          <Property name="caption">绉诲姩鍗冮噷鐪�</Property>
+          <DataColumn name="ydStoreId">
+            <Property name="property">ydStoreId</Property>
+            <Property name="width">250</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="ydAppKey">
+            <Property name="property">ydAppKey</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="ydAppSecret">
+            <Property name="property">ydAppSecret</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+        </ColumnGroup>
+        <ColumnGroup>
+          <Property name="caption">WebRtc閰嶇疆</Property>
+          <DataColumn name="rtcIp">
+            <Property name="property">rtcIp</Property>
+            <Property name="width">120</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="rtcPort">
+            <Property name="property">rtcPort</Property>
+            <Property name="width">100</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+        </ColumnGroup>
+        <DataColumn name="remark">
+          <Property name="property">remark</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+        <DataColumn name="updateTime">
+          <Property name="property">updateTime</Property>
+          <Property name="width">160</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+      </DataGrid>
+    </Container>
+    <Dialog id="dialogMain" layout="regionPadding:10">
+      <Property name="width">900</Property>
+      <Property name="caption">娴佸獟浣撲俊鎭厤缃�</Property>
+      <Property name="closeable">false</Property>
+      <Property name="height">600</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">view.get(&quot;#updateMain&quot;).execute(function(){&#xD;
+	view.get(&quot;#dialogMain&quot;).close();&#xD;
+});</ClientEvent>
+          <Property name="caption">纭畾</Property>
+          <Property name="iconClass">fa fa-check</Property>
+          <Property name="exClassName">btn1</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>
+          <Property name="exClassName">btn3</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <TabControl>
+          <ControlTab>
+            <Property name="caption">绉诲姩鍗冮噷鐪�</Property>
+            <Property name="iconClass">fa fa-film</Property>
+            <Property name="width">150</Property>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <Property name="labelWidth">100</Property>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">deptId</Property>
+                <Property name="property">deptId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ydIp</Property>
+                <Property name="property">ydIp</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ydPort</Property>
+                <Property name="property">ydPort</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ydLogin</Property>
+                <Property name="property">ydLogin</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ydPwd</Property>
+                <Property name="property">ydPwd</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ydAppKey</Property>
+                <Property name="property">ydAppKey</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ydAppSecret</Property>
+                <Property name="property">ydAppSecret</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ydStoreId</Property>
+                <Property name="property">ydStoreId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">updateTime</Property>
+                <Property name="property">updateTime</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:3">
+                <Property name="name">ydRsa</Property>
+                <Property name="property">ydRsa</Property>
+                <Property name="editorType">TextArea</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">remark</Property>
+                <Property name="property">remark</Property>
+                <Property name="editorType">TextArea</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </ControlTab>
+          <ControlTab>
+            <Property name="caption">鍐呯綉WEBRTC閰嶇疆</Property>
+            <Property name="iconClass">fa fa-film</Property>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <Property name="labelWidth">100</Property>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">deptId</Property>
+                <Property name="property">deptId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">rtcIp</Property>
+                <Property name="property">rtcIp</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">rtcPort</Property>
+                <Property name="property">rtcPort</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">rtcLogin</Property>
+                <Property name="property">rtcLogin</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">rtcPwd</Property>
+                <Property name="property">rtcPwd</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">remark</Property>
+                <Property name="property">remark</Property>
+                <Property name="editorType">TextArea</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">updateTime</Property>
+                <Property name="property">updateTime</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </ControlTab>
+          <ControlTab>
+            <Property name="caption">GB28181娴佸獟浣�</Property>
+            <Property name="iconClass">fa fa-film</Property>
+            <Property name="width">150</Property>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <Property name="labelWidth">100</Property>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">deptId</Property>
+                <Property name="property">deptId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">gbIp</Property>
+                <Property name="property">gbIp</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">gbPort</Property>
+                <Property name="property">gbPort</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">gbLogin</Property>
+                <Property name="property">gbLogin</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">gbPwd</Property>
+                <Property name="property">gbPwd</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">gbAppKey</Property>
+                <Property name="property">gbAppKey</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">gbAppSecret</Property>
+                <Property name="property">gbAppSecret</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">remark</Property>
+                <Property name="property">remark</Property>
+                <Property name="editorType">TextArea</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">updateTime</Property>
+                <Property name="property">updateTime</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </ControlTab>
+          <ControlTab>
+            <Property name="caption">娴峰悍娴佸獟浣�</Property>
+            <Property name="iconClass">fa fa-film</Property>
+            <Property name="width">150</Property>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <Property name="labelWidth">100</Property>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">deptId</Property>
+                <Property name="property">deptId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">hikIp</Property>
+                <Property name="property">hikIp</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">hikPort</Property>
+                <Property name="property">hikPort</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">hikLogin</Property>
+                <Property name="property">hikLogin</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">hikPwd</Property>
+                <Property name="property">hikPwd</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">hikAppKey</Property>
+                <Property name="property">hikAppKey</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">hikAppSecret</Property>
+                <Property name="property">hikAppSecret</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">remark</Property>
+                <Property name="property">remark</Property>
+                <Property name="editorType">TextArea</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">updateTime</Property>
+                <Property name="property">updateTime</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </ControlTab>
+          <ControlTab>
+            <Property name="caption">澶у崕娴佸獟浣�</Property>
+            <Property name="iconClass">fa fa-film</Property>
+            <Property name="width">150</Property>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <Property name="labelWidth">100</Property>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">deptId</Property>
+                <Property name="property">deptId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">dhIp</Property>
+                <Property name="property">dhIp</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">dhPort</Property>
+                <Property name="property">dhPort</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">dhLogin</Property>
+                <Property name="property">dhLogin</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">dhPwd</Property>
+                <Property name="property">dhPwd</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">dhAppKey</Property>
+                <Property name="property">dhAppKey</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">dhAppSecret</Property>
+                <Property name="property">dhAppSecret</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">remark</Property>
+                <Property name="property">remark</Property>
+                <Property name="editorType">TextArea</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">updateTime</Property>
+                <Property name="property">updateTime</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </ControlTab>
+        </TabControl>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <AjaxAction id="ajaxDel">
+      <Property name="service">cameraMediaPR#delData</Property>
+      <Property name="confirmMessage">纭畾瑕佸垹闄ゅ悧锛�</Property>
+      <Property name="successMessage">鍒犻櫎鎴愬姛锛�</Property>
+    </AjaxAction>
+    <UpdateAction id="updateMain">
+      <Property name="dataResolver">cameraMediaPR#saveData</Property>
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+  </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/CameraMediaPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/CameraMediaPR.java
new file mode 100644
index 0000000..362dbf0
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/CameraMediaPR.java
@@ -0,0 +1,66 @@
+package com.fzzy.igds;
+
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.annotation.DataResolver;
+import com.bstek.dorado.annotation.Expose;
+import com.fzzy.igds.domain.CameraMedia;
+import com.fzzy.igds.service.CameraMediaService;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Description 娴佸獟浣撲俊鎭厤缃�
+ * @Author CZT
+ * @Date 2026/01/04 15:17
+ */
+@Slf4j
+@Component
+public class CameraMediaPR {
+
+    @Resource
+    private CameraMediaService service;
+
+    /**
+     * secCameraMediaPR#listAll 鏍规嵁鏉′欢鑾峰彇鎵�鏈夌殑鎽勫儚鏈洪厤缃俊鎭�
+     *
+     */
+    @DataProvider
+    public List<CameraMedia> listAll() {
+
+        return service.listAll();
+    }
+
+    /**
+     * secCameraMediaPR#saveData
+     *
+     * @param data 鏁版嵁淇℃伅
+     */
+    @DataResolver
+    public void saveData(CameraMedia data) {
+        CameraMedia newData = new CameraMedia();
+        BeanUtils.copyProperties(data, newData);
+        service.saveData(newData);
+    }
+
+    /**
+     * secCameraMediaPR#delData
+     *
+     * @param data 鏁版嵁淇℃伅
+     * @return 寮傚父淇℃伅
+     */
+    @Expose
+    public String delData(CameraMedia data) {
+
+        if (StringUtils.isEmpty(data.getId())) {
+            return null;
+        }
+        CameraMedia newData = new CameraMedia();
+        BeanUtils.copyProperties(data, newData);
+        return service.delData(newData);
+    }
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/ConfByDept.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/ConfByDept.view.xml
index d6c3de7..04ef0e6 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/ConfByDept.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/ConfByDept.view.xml
@@ -191,10 +191,24 @@
     }
 };&#xD;
 
+/**&#xD;
+* 娴佸獟浣撻厤缃�&#xD;
+*/&#xD;
+cameraMediaConf = function(){&#xD;
+    var cur = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+    if(cur){&#xD;
+        var deptId = cur.get(&quot;id&quot;);&#xD;
+        var url = &quot;/com.fzzy.igds.CameraMedia.d?deptId=&quot;+ deptId;&#xD;
+        window.$openTab(&quot;娴佸獟浣撻厤缃�&quot;, url);
+    }else{&#xD;
+        $notify(&quot;璇峰厛閫夋嫨搴撳尯鈥︹��&quot;);&#xD;
+    }
+};
+
 //鎿嶄綔&#xD;
 renderCell1 = function(arg,self){&#xD;
     var data = arg.data;&#xD;
-    var htm = &quot;&lt;a onClick='inoutConf()' class='a-btn1'>鍑哄叆搴撻厤缃�&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='snapConf()' class='a-btn2'>鎶撴媿閰嶇疆&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='patrolConf()' class='a-btn4'>宸℃閰嶇疆&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='workOrderConf()' class='a-btn2'>宸ュ崟瀹℃壒&lt;/a>&quot;;&#xD;
+    var htm = &quot;&lt;a onClick='inoutConf()' class='a-btn1'>鍑哄叆搴撻厤缃�&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='snapConf()' class='a-btn2'>鎶撴媿閰嶇疆&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='patrolConf()' class='a-btn4'>宸℃閰嶇疆&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='workOrderConf()' class='a-btn2'>宸ュ崟瀹℃壒&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='cameraMediaConf()' class='a-btn1'>娴佸獟浣撻厤缃�&lt;/a>&quot;;&#xD;
     arg.dom.innerHTML = htm;&#xD;
 };&#xD;
 &#xD;</ClientEvent>

--
Gitblit v1.9.3