From 0f2fc0872069f0a5099cc535e6ff885b13937153 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期三, 10 十二月 2025 18:12:04 +0800
Subject: [PATCH] 网关配置页面
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java | 248 +++++++++++++++++++
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java | 2
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/GatewaySer.java | 46 ++-
fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/GatewaySerMapper.java | 15 +
fzzy-igdss-view/src/main/java/com/fzzy/igds/GatewaySerPR.java | 69 +++++
fzzy-igdss-view/src/main/java/models/core.model.xml | 84 ++++++
fzzy-igdss-view/src/main/java/com/fzzy/igds/GatewaySer.view.xml | 283 +++++++++++++++++++++
fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/RedisConst.java | 5
8 files changed, 732 insertions(+), 20 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/RedisConst.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/RedisConst.java
index 2a3f955..118c265 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/RedisConst.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/RedisConst.java
@@ -85,6 +85,11 @@
public static final String KEY_DEVICE_SER_LIST = "SER_LIST";
/**
+ * 缃戝叧KEY
+ */
+ public static final String KEY_GATEWAY_SER_LIST = "GATEWAY_LIST";
+
+ /**
* 璁惧鍒楄〃
*/
public static final String KEY_DEVICE_LIST = "DEVICE_LIST";
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/GatewaySer.java
similarity index 69%
rename from fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapSer.java
rename to fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/GatewaySer.java
index ee3db62..88c6751 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/SnapSer.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/GatewaySer.java
@@ -12,16 +12,16 @@
import java.io.Serializable;
/**
- * @Description 鎶撴媿鏈嶅姟
+ * @Description 缃戝叧閰嶇疆
* @Author CZT
- * @Date 2025/11/25 19:43
+ * @Date 2025/12/10 15:25
*/
@Data
@Entity
-@Table(name = "d_snap_ser")
-@TableName("d_snap_ser")
+@Table(name = "d_gateway_ser")
+@TableName("d_gateway_ser")
@EqualsAndHashCode(callSuper = false)
-public class SnapSer extends BizBaseEntity implements Serializable {
+public class GatewaySer extends BizBaseEntity implements Serializable {
/**
*
@@ -29,7 +29,7 @@
private static final long serialVersionUID = 1L;
@Id
- @Column(name = "id", columnDefinition = "varchar(40) COMMENT '涓婚敭'")
+ @Column(name = "id", columnDefinition = "varchar(40) COMMENT '缃戝叧ID'")
@TableField("id")
private String id;
@@ -37,30 +37,38 @@
@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 '璁惧鍚嶇О'")
+ @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 = "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 = "snap_url", columnDefinition = "varchar(20) COMMENT '鎶撴媿璺緞'")
+ @TableField("snap_url")
+ private String snapUrl;
+
+ @Column(name = "ptz_url", columnDefinition = "varchar(20) COMMENT '浜戝彴璺緞'")
+ @TableField("ptz_url")
+ private String ptzUrl;
+
+ @Column(name = "order_num", columnDefinition = "int(5) COMMENT '椤哄簭鍙�'")
+ @TableField("order_num")
+ private Integer orderNum = 1;
+
@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/GatewaySerMapper.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/GatewaySerMapper.java
new file mode 100644
index 0000000..aa11190
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/GatewaySerMapper.java
@@ -0,0 +1,15 @@
+package com.fzzy.igds.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fzzy.igds.domain.GatewaySer;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/10 16:48
+ */
+@Mapper
+public interface GatewaySerMapper extends BaseMapper<GatewaySer> {
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
new file mode 100644
index 0000000..0c67c5d
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
@@ -0,0 +1,248 @@
+package com.fzzy.igds.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.constant.RedisConst;
+import com.fzzy.igds.domain.GatewaySer;
+import com.fzzy.igds.mapper.GatewaySerMapper;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysDeptService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/10 16:48
+ */
+@Slf4j
+@Service
+public class GatewaySerService {
+ @Resource
+ private GatewaySerMapper gatewaySerMapper;
+ @Resource
+ private ISysDeptService iSysDeptService;
+ @Resource
+ private RedisCache redisCache;
+
+ /**
+ * 鏍规嵁鏉′欢鏌ヨ鍒嗘満淇℃伅
+ *
+ * @param companyId
+ * @param deptId
+ * @param parentId
+ * @return
+ */
+ public List<GatewaySer> listDeviceSer(String companyId, String deptId, String parentId) {
+
+ QueryWrapper<GatewaySer> queryWrapper = new QueryWrapper<>();
+
+ if (StringUtils.isNotBlank(companyId)) {
+ queryWrapper.eq("company_id", companyId);
+ }
+ if (StringUtils.isNotBlank(deptId)) {
+ queryWrapper.eq("dept_id", deptId);
+ }
+ if (StringUtils.isNotBlank(parentId)) {
+ queryWrapper.likeRight("dept_id", parentId);
+ }
+
+ return gatewaySerMapper.selectList(queryWrapper);
+ }
+
+ /**
+ * 鏌ヨ鍒嗘満鍒楄〃
+ *
+ * @return
+ */
+ public List<GatewaySer> getAllSer() {
+ SysUser user = ContextUtil.getLoginUser();
+ SysDept userDept = iSysDeptService.selectDeptById(user.getDeptId());
+ if (Constant.DEPT_TYPE_20.equals(userDept.getType())) {
+ return this.listDeviceSer(null, user.getDeptId() + "", null);
+ } else {
+ return this.listDeviceSer(null, null, user.getDeptId() + "");
+ }
+ }
+
+ /**
+ * 鏍规嵁鏉′欢鏌ヨ鍒嗘満淇℃伅
+ *
+ * @param id
+ * @return
+ */
+ public GatewaySer getById(String id) {
+ if(StringUtils.isBlank( id)){
+ return null;
+ }
+ return gatewaySerMapper.selectById(id);
+ }
+
+ /**
+ * 鏇存柊淇濆瓨鍒嗘満
+ *
+ * @param ser
+ */
+ public void saveSer(GatewaySer ser) {
+ if (null == ser.getSn()) {
+ ser.setSn(ser.getId());
+ }
+ if(null == ser.getOrderNum()){
+ ser.setOrderNum(1);
+ }
+ if (StringUtils.isEmpty(ser.getCompanyId())) {
+ ser.setCompanyId(ContextUtil.getCompanyId());
+ }
+ if (StringUtils.isEmpty(ser.getDeptId())) {
+ ser.setDeptId(ContextUtil.subDeptId(null));
+ }
+ if (StringUtils.isBlank(ser.getUpdateBy())) {
+ ser.setCreateBy(ContextUtil.getLoginUserName());
+ ser.setCreateTime(new Date());
+ ser.setUpdateBy(ContextUtil.getLoginUserName());
+ ser.setUpdateTime(new Date());
+ gatewaySerMapper.insert(ser);
+ } else {
+ ser.setUpdateBy(ContextUtil.getLoginUserName());
+ ser.setUpdateTime(new Date());
+ gatewaySerMapper.updateById(ser);
+ }
+
+ refreshCache(ser.getCompanyId());
+ }
+
+ /**
+ * 鏇存柊淇濆瓨鍒嗘満
+ *
+ * @param ser
+ */
+ public void delSer(GatewaySer ser) {
+ gatewaySerMapper.deleteById(ser);
+
+ //鍒犻櫎缂撳瓨
+ delCache(ser);
+
+ }
+
+ /**
+ * 鏍规嵁鍒嗘満ID鑾峰彇鍒嗘満淇℃伅
+ *
+ * @param companyId
+ * @param deptId
+ * @return
+ */
+ public List<GatewaySer> getCacheSerByDeptId(String companyId, String deptId) {
+ if (StringUtils.isEmpty(deptId)) {
+ return null;
+ }
+ if (StringUtils.isEmpty(companyId)) {
+ companyId = ContextUtil.getCompanyId();
+ }
+ String patten = RedisConst.buildKey(companyId, RedisConst.KEY_DEVICE_SER_LIST, deptId) + "*";
+ Collection<String> keys = redisCache.keys(patten);
+ if (null == keys) {
+ return null;
+ }
+
+ List<GatewaySer> list = new ArrayList<>();
+ for (String key : keys) {
+ list.add((GatewaySer) redisCache.getCacheObject(key));
+ }
+
+ return list;
+ }
+
+ /**
+ * 鏍规嵁鍒嗘満ID鑾峰彇鍒嗘満淇℃伅
+ *
+ * @param companyId
+ * @param id
+ * @return
+ */
+ public GatewaySer getCacheSerById(String companyId, String id) {
+ if (StringUtils.isEmpty(id)) {
+ return null;
+ }
+ if (StringUtils.isEmpty(companyId)) {
+ companyId = ContextUtil.getCompanyId();
+ }
+ String patten = RedisConst.buildKey(companyId, RedisConst.KEY_DEVICE_SER_LIST) + "*";
+ Collection<String> keys = redisCache.keys(patten);
+ if (null == keys) {
+ return null;
+ }
+
+ List<GatewaySer> list = new ArrayList<>();
+ GatewaySer ser = null;
+ for (String key : keys) {
+ ser = (GatewaySer) redisCache.getCacheObject(key);
+ if(id.equals(ser.getId())){
+ break;
+ }
+ }
+
+ if(null == ser){
+ ser = getById(id);
+ this.setCacheSer(ser);
+ }
+
+ return ser;
+ }
+
+ /**
+ * 鍒锋柊缂撳瓨
+ *
+ * @param companyId
+ */
+ public void refreshCache(String companyId) {
+ if (StringUtils.isEmpty(companyId)) {
+ companyId = ContextUtil.getCompanyId();
+ }
+ List<GatewaySer> list = this.listDeviceSer(companyId, null, null);
+ this.setCacheSer(list);
+ }
+
+ /**
+ * 璁剧疆缂撳瓨
+ * @param data
+ */
+ public void setCacheSer(GatewaySer data) {
+ if (null == data) {
+ return;
+ }
+ String key = RedisConst.buildKey(data.getCompanyId(), RedisConst.KEY_GATEWAY_SER_LIST, data.getDeptId(), data.getId());
+ redisCache.setCacheObject(key, data);
+ }
+
+ /**
+ * 璁剧疆缂撳瓨
+ * @param data
+ */
+ public void setCacheSer(List<GatewaySer> data) {
+ if (null == data) {
+ return;
+ }
+ for (GatewaySer ser : data) {
+ this.setCacheSer( ser);
+ }
+ }
+
+ /**
+ * 鍒犻櫎缂撳瓨淇℃伅
+ * @param ser
+ */
+ public void delCache(GatewaySer ser) {
+ if (null == ser) {
+ return;
+ }
+ String key = RedisConst.buildKey(ser.getCompanyId(), RedisConst.KEY_GATEWAY_SER_LIST, ser.getDeptId(), ser.getId());
+ redisCache.deleteObject(key);
+ }
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/GatewaySer.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/GatewaySer.view.xml
new file mode 100644
index 0000000..524a9ee
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/GatewaySer.view.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+ <Arguments/>
+ <Context/>
+ <Model/>
+ <View layout="padding:10">
+ <ClientEvent name="onReady">
+addData = function(){
+ view.get("#dsGatewaySer").insert();
+ view.get("#dialog1").set("caption","缃戝叧淇℃伅");
+
+ view.get("#dialog1").show();
+};
+
+delData = function(){
+ var cur = view.get("#dsGatewaySer.data:#");
+ if(!cur) return;
+ cur.setState(dorado.Entity.STATE_DELETED);
+ $confirm("纭畾瑕佸垹闄よ鏁版嵁涔堬紵",function(){
+ view.get("#uaSave").execute(function(){
+ cur.remove();
+ });
+ });
+};
+
+btnCancel = function(){
+ view.get("#dialog1").hide();
+};
+
+onDialogHide = function(){
+ var cur = view.get("#dsGatewaySer.data:#");
+ cur.cancel();
+};</ClientEvent>
+ <Property name="packages">font-awesome,css-common</Property>
+ <Property name="cache">
+ <Property name="mode">clientSide</Property>
+ </Property>
+ <DataSet id="dsGatewaySer">
+ <Property name="parameter"></Property>
+ <Property name="dataProvider">gatewaySerPR#getAllSer</Property>
+ <Property name="dataType">[dtGatewaySer]</Property>
+ </DataSet>
+ <Container>
+ <Property name="className">c-param</Property>
+ <ToolBar>
+ <ToolBarButton>
+ <ClientEvent name="onClick">addData();</ClientEvent>
+ <Property name="caption">鏂板</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="width">100</Property>
+ <Property name="iconClass">fa fa-plus</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">
+var select = view.get("#dataGridMain").get("selection");
+if(select){
+ view.get("#dialog1").show();
+}else{
+ $notify("璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁鈥︹��");
+}</ClientEvent>
+ <Property name="caption">淇敼</Property>
+ <Property name="exClassName">btn2</Property>
+ <Property name="width">100</Property>
+ <Property name="iconClass">fa fa-pencil-square-o</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">
+var select = view.get("#dataGridMain").get("selection");
+if(select){
+ view.get("#ajaxActionDel").set("parameter",{
id: select.get("id")
+ }).execute(function(){
+ select.remove();
+ });
+}else{
+ $notify("璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁鈥︹��");
+}
</ClientEvent>
+ <Property name="caption">鍒犻櫎</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="width">100</Property>
+ <Property name="iconClass">fa fa-times</Property>
+ <Property name="action">ajaxActionDel</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">view.get("#dsGatewaySer").flushAsync();
+ </ClientEvent>
+ <Property name="caption">鍒锋柊鏁版嵁</Property>
+ <Property name="exClassName">btn2</Property>
+ <Property name="iconClass">fa fa-refresh</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <Property name="caption">鍒锋柊缂撳瓨</Property>
+ <Property name="exClassName">btn4</Property>
+ <Property name="iconClass">fa fa-refresh</Property>
+ <Property name="width">100</Property>
+ <Property name="action">ajaxRefreshCache</Property>
+ </ToolBarButton>
+ </ToolBar>
+ <DataGrid id="dataGridMain" layoutConstraint="padding:8">
+ <ClientEvent name="onDataRowClick">view.get("#dataGridMain").set("selection",arg.data);</ClientEvent>
+ <Property name="dataSet">dsGatewaySer</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="selectionMode">singleRow</Property>
+ <RowSelectorColumn/>
+ <RowNumColumn/>
+ <DataColumn name="id">
+ <Property name="property">id</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="name">
+ <Property name="property">name</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="deptId">
+ <Property name="property">deptId</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="ip">
+ <Property name="property">ip</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="port">
+ <Property name="property">port</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="status">
+ <ClientEvent name="onRenderCell">arg.dom.style.background = arg.data.get("status")== 'Y' ?"":"#FF5722";
+arg.processDefault = true;</ClientEvent>
+ <Property name="property">status</Property>
+ <Property name="align">center</Property>
+ <Property name="width">120</Property>
+ </DataColumn>
+ <DataColumn name="updateBy">
+ <Property name="property">updateBy</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="updateTime">
+ <Property name="property">updateTime</Property>
+ <Property name="align">center</Property>
+ <Property name="width">180</Property>
+ </DataColumn>
+ </DataGrid>
+ </Container>
+ <Dialog id="dialog1" layout="regionPadding:8">
+ <ClientEvent name="onHide">onDialogHide();</ClientEvent>
+ <Property name="iconClass">fa fa-tasks</Property>
+ <Property name="width">1200</Property>
+ <Property name="caption">缃戝叧淇℃伅</Property>
+ <Property name="closeable">false</Property>
+ <Buttons>
+ <Button>
+ <ClientEvent name="onClick">var cur = view.get("#dsGatewaySer.data:#");
+if(cur.validate() == 'ok'){
+ view.get("#updateAction").execute(function(){
+ view.get("#dialog1").close();
+ });
+}else{
+ $alert("鏁版嵁鏍¢獙澶辫触锛�");
+}</ClientEvent>
+ <Property name="caption">淇濆瓨</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="width">120</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">btnCancel();</ClientEvent>
+ <Property name="caption">鍙栨秷</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="iconClass">fa fa-times-circle</Property>
+ <Property name="width">120</Property>
+ </Button>
+ </Buttons>
+ <Children>
+ <FieldSet layout="padding:5">
+ <Property name="caption">鍩烘湰淇℃伅</Property>
+ <Buttons/>
+ <Children>
+ <AutoForm>
+ <Property name="dataSet">dsGatewaySer</Property>
+ <Property name="cols">*,*,*</Property>
+ <Property name="labelSeparator">锛�</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelWidth">100</Property>
+ <AutoFormElement>
+ <Property name="name">id</Property>
+ <Property name="property">id</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">name</Property>
+ <Property name="property">name</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">deptId</Property>
+ <Property name="property">deptId</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">sn</Property>
+ <Property name="property">sn</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">ip</Property>
+ <Property name="property">ip</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">port</Property>
+ <Property name="property">port</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">snapUrl</Property>
+ <Property name="property">snapUrl</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">status</Property>
+ <Property name="property">status</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">ptzUrl</Property>
+ <Property name="property">ptzUrl</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">orderNum</Property>
+ <Property name="property">orderNum</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">remark</Property>
+ <Property name="property">remark</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createBy</Property>
+ <Property name="property">createBy</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createTime</Property>
+ <Property name="property">createTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">updateBy</Property>
+ <Property name="property">updateBy</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">updateTime</Property>
+ <Property name="property">updateTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ </AutoForm>
+ </Children>
+ </FieldSet>
+ </Children>
+ <Tools/>
+ </Dialog>
+ <UpdateAction id="updateAction">
+ <Property name="dataResolver">gatewaySerPR#updateSer</Property>
+ <UpdateItem>
+ <Property name="dataSet">dsGatewaySer</Property>
+ <Property name="dataPath">[#current]</Property>
+ </UpdateItem>
+ </UpdateAction>
+ <AjaxAction id="ajaxActionDel">
+ <Property name="service">gatewaySerPR#delSerById</Property>
+ <Property name="confirmMessage">纭畾瑕佸垹闄や箞锛�</Property>
+ <Property name="executingMessage">姝e湪鍒犻櫎</Property>
+ <Property name="successMessage">鍒犻櫎鎴愬姛</Property>
+ </AjaxAction>
+ <AjaxAction id="ajaxRefreshCache">
+ <Property name="service">gatewaySerPR#refreshCache</Property>
+ <Property name="successMessage">鍒锋柊鎴愬姛锛�</Property>
+ <Property name="confirmMessage">纭畾瑕佸埛鏂扮紦瀛樹箞锛�</Property>
+ </AjaxAction>
+ </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/GatewaySerPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/GatewaySerPR.java
new file mode 100644
index 0000000..f8f035b
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/GatewaySerPR.java
@@ -0,0 +1,69 @@
+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.GatewaySer;
+import com.fzzy.igds.service.GatewaySerService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/10 16:48
+ */
+@Component
+public class GatewaySerPR {
+
+ @Resource
+ private GatewaySerService gatewaySerService;
+
+ /**
+ * gatewaySerPR#getAllSer
+ *
+ * @return
+ */
+ @DataProvider
+ public List<GatewaySer> getAllSer() {
+ return gatewaySerService.getAllSer();
+ }
+
+ /**
+ * deviceSerPR#updateSer
+ *
+ * @param data
+ */
+ @DataResolver
+ public void updateSer(GatewaySer data) {
+ GatewaySer ser = new GatewaySer();
+ BeanUtils.copyProperties(data, ser);
+ gatewaySerService.saveSer(ser);
+ }
+
+ /**
+ * 鏍规嵁鍒嗘満id鍜屽悕绉板垹闄ゅ垎鏈�
+ */
+ @Expose
+ @Transactional
+ public void delSerById(String id) {
+ GatewaySer ser = gatewaySerService.getById(id);
+ gatewaySerService.delSer(ser);
+ }
+
+ /**
+ * deviceSerPR#refreshCache
+ *
+ * @throws
+ * @Title: refreshCache
+ * @Description: 鍒锋柊缂撳瓨 void
+ */
+ @Expose
+ public void refreshCache() {
+ gatewaySerService.refreshCache(null);
+ }
+
+}
diff --git a/fzzy-igdss-view/src/main/java/models/core.model.xml b/fzzy-igdss-view/src/main/java/models/core.model.xml
index 1ebed17..acf4bd5 100644
--- a/fzzy-igdss-view/src/main/java/models/core.model.xml
+++ b/fzzy-igdss-view/src/main/java/models/core.model.xml
@@ -1325,4 +1325,88 @@
<Property name="readOnly">true</Property>
</PropertyDef>
</DataType>
+ <DataType name="dtGatewaySer">
+ <Property name="creationType">com.fzzy.igds.domain.GatewaySer</Property>
+ <PropertyDef name="id">
+ <Property></Property>
+ <Property name="label">缃戝叧ID</Property>
+ </PropertyDef>
+ <PropertyDef name="deptId">
+ <Property></Property>
+ <Property name="label">鎵�灞炲簱鍖�</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">kqmc</Property>
+ </Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="companyId">
+ <Property></Property>
+ <Property name="label">缁勭粐缂栫爜</Property>
+ </PropertyDef>
+ <PropertyDef name="sn">
+ <Property></Property>
+ <Property name="label">搴忓垪鍙�</Property>
+ </PropertyDef>
+ <PropertyDef name="name">
+ <Property></Property>
+ <Property name="label">缃戝叧鍚嶇О</Property>
+ </PropertyDef>
+ <PropertyDef name="ip">
+ <Property></Property>
+ <Property name="label">缃戝叧IP</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="port">
+ <Property name="dataType">Integer</Property>
+ <Property name="label">缃戝叧绔彛</Property>
+ <Property name="required">true</Property>
+ </PropertyDef>
+ <PropertyDef name="status">
+ <Property></Property>
+ <Property name="label">鏄惁鍦ㄧ嚎</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("sys_yes_no")}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="orderNum">
+ <Property name="dataType">Integer</Property>
+ <Property name="label">椤哄簭鍙�</Property>
+ </PropertyDef>
+ <PropertyDef name="snapUrl">
+ <Property></Property>
+ <Property name="label">鎶撴媿璺緞</Property>
+ </PropertyDef>
+ <PropertyDef name="ptzUrl">
+ <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>
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
index 6403b53..baa81b5 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
@@ -104,7 +104,7 @@
String viewUrl = prefix + "/video-webrtc";
- //WEB-RTC澶у崕鎾斁
+ //WEB-RTC鎾斁
if (CameraPlayType.PLAY_TYPE_WEB_RTC.getCode().equals(playType)) {
viewUrl = prefix + "/video-webrtc";
}
--
Gitblit v1.9.3