1
0

2 Commits 10305ebe6d ... 446a0fcedc

Autor SHA1 Mensagem Data
  liweimin 446a0fcedc 1、调试宝设备表tsb_device增加部门dept_id há 2 semanas atrás
  liweimin 0f5f74808e 1、调试宝设备表tsb_device增加部门dept_id há 2 semanas atrás

+ 37 - 9
ruoyi-device/src/main/java/com/ruoyi/device/domain/entity/TsbDevice.java

@@ -8,7 +8,6 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.annotation.Excel.ColumnType;
-import com.ruoyi.common.annotation.Excel.Type;
 import com.ruoyi.common.core.domain.BaseEntity;
 
 import java.util.Date;
@@ -23,42 +22,49 @@ public class TsbDevice extends BaseEntity
     private static final long serialVersionUID = 1L;
 
     /** 设备ID */
-    @Excel(name = "设备序号", cellType = ColumnType.NUMERIC)
+    @Excel(name = "设备序号", sort = 1, cellType = ColumnType.NUMERIC)
     private Long deviceId;
 
     /** 设备IMEI (唯一)*/
-    @Excel(name = "设备IMEI")
+    @Excel(name = "设备IMEI", sort = 2)
     private String imei;
 
     /** 设备类型 */
-    @Excel(name = "设备类型", readConverterExp = "9102=调试宝V3.0")
+    @Excel(name = "设备类型", sort = 3, readConverterExp = "9102=调试宝V3.0")
     private String deviceType;
 
     /** 设备SN码(在未删除记录范围内唯一) */
-    @Excel(name = "设备SN码", cellType = ColumnType.NUMERIC)
+    @Excel(name = "设备SN码", sort = 4, cellType = ColumnType.NUMERIC)
     private Long deviceSn;
 
+    /** 部门名称(列表展示,非表字段) */
+    @Excel(name = "归属部门", sort = 5)
+    private String deptName;
+
     /** 设备生产日期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "设备生产日期", width = 20, dateFormat = "yyyy-MM-dd")
+    @Excel(name = "生产日期", sort = 6, width = 20, dateFormat = "yyyy-MM-dd")
     private Date deviceProduceDate;
 
     /** 软件版本号 */
-    @Excel(name = "软件版本")
+    @Excel(name = "软件版本", sort = 7)
     private String softwareVersion;
 
     /** 状态(0正常 1停用) */
-    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
+    @Excel(name = "状态", sort = 8, readConverterExp = "0=正常,1=停用")
     private String status;
 
     /** 最后在线时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "最后在线时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
+    @Excel(name = "最后在线时间", sort = 9, width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
     private Date lastRunTime;
 
     /** 删除标志(0代表存在 2代表删除) */
     private String delFlag;
 
+    /** 所属部门ID */
+    private Long deptId;
+
     public TsbDevice()
     {
 
@@ -165,6 +171,27 @@ public class TsbDevice extends BaseEntity
         this.delFlag = delFlag;
     }
 
+    @NotNull(message = "归属部门不能为空")
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    public String getDeptName()
+    {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName)
+    {
+        this.deptName = deptName;
+    }
+
     @Override
     public String toString()
     {
@@ -178,6 +205,7 @@ public class TsbDevice extends BaseEntity
             .append("status", getStatus())
             .append("lastRunTime", getLastRunTime())
             .append("delFlag", getDelFlag())
+            .append("deptId", getDeptId())
             .append("createBy", getCreateBy())
             .append("createTime", getCreateTime())
             .append("updateBy", getUpdateBy())

+ 23 - 11
ruoyi-device/src/main/resources/mapper/device/TsbDeviceMapper.xml

@@ -14,6 +14,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="status"             column="status" />
         <result property="lastRunTime"        column="last_run_time" />
         <result property="delFlag"            column="del_flag" />
+        <result property="deptId"             column="dept_id" />
+        <result property="deptName"           column="dept_name" />
         <result property="createBy"           column="create_by" />
         <result property="createTime"         column="create_time" />
         <result property="updateBy"           column="update_by" />
@@ -22,38 +24,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectTsbDeviceVo">
-        select device_id, imei, device_type, device_sn, device_produce_date, software_version,
+        select device_id, imei, device_type, device_sn, dept_id, device_produce_date, software_version,
                status, last_run_time, del_flag, create_by, create_time, update_by, update_time, remark
         from tsb_device
     </sql>
 
     <select id="selectTsbDeviceList" parameterType="TsbDevice" resultMap="TsbDeviceResult">
-        <include refid="selectTsbDeviceVo"/>
+        select d.device_id, d.imei, d.device_type, d.device_sn, d.dept_id, sd.dept_name,
+               d.device_produce_date, d.software_version, d.status, d.last_run_time, d.del_flag,
+               d.create_by, d.create_time, d.update_by, d.update_time, d.remark
+        from tsb_device d
+        left join sys_dept sd on sd.dept_id = d.dept_id and sd.del_flag = '0'
         <where>
-            and del_flag = '0'
+            and d.del_flag = '0'
             <if test="deviceId != null and deviceId != 0">
-                AND device_id = #{deviceId}
+                AND d.device_id = #{deviceId}
             </if>
             <if test="imei != null and imei != ''">
-                AND imei like concat('%', #{imei}, '%')
+                AND d.imei like concat('%', #{imei}, '%')
             </if>
             <if test="deviceType != null and deviceType != ''">
-                AND device_type = #{deviceType}
+                AND d.device_type = #{deviceType}
             </if>
             <if test="deviceSn != null">
-                AND device_sn = #{deviceSn}
+                AND d.device_sn = #{deviceSn}
+            </if>
+            <if test="deptId != null">
+                AND d.dept_id = #{deptId}
             </if>
             <if test="status != null and status != ''">
-                AND status = #{status}
+                AND d.status = #{status}
             </if>
             <if test="params.beginProduceDate != null and params.beginProduceDate != ''">
-                AND date_format(device_produce_date,'%Y%m%d') &gt;= date_format(#{params.beginProduceDate},'%Y%m%d')
+                AND date_format(d.device_produce_date,'%Y%m%d') &gt;= date_format(#{params.beginProduceDate},'%Y%m%d')
             </if>
             <if test="params.endProduceDate != null and params.endProduceDate != ''">
-                AND date_format(device_produce_date,'%Y%m%d') &lt;= date_format(#{params.endProduceDate},'%Y%m%d')
+                AND date_format(d.device_produce_date,'%Y%m%d') &lt;= date_format(#{params.endProduceDate},'%Y%m%d')
             </if>
         </where>
-        order by device_id desc
+        order by d.device_id desc
     </select>
 
     <select id="selectTsbDeviceById" parameterType="Long" resultMap="TsbDeviceResult">
@@ -87,6 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="imei != null and imei != ''">imei,</if>
             <if test="deviceType != null and deviceType != ''">device_type,</if>
             <if test="deviceSn != null">device_sn,</if>
+            <if test="deptId != null">dept_id,</if>
             <if test="deviceProduceDate != null">device_produce_date,</if>
             <if test="softwareVersion != null and softwareVersion != ''">software_version,</if>
             <if test="status != null and status != ''">status,</if>
@@ -99,6 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="imei != null and imei != ''">#{imei},</if>
             <if test="deviceType != null and deviceType != ''">#{deviceType},</if>
             <if test="deviceSn != null">#{deviceSn},</if>
+            <if test="deptId != null">#{deptId},</if>
             <if test="deviceProduceDate != null">#{deviceProduceDate},</if>
             <if test="softwareVersion != null and softwareVersion != ''">#{softwareVersion},</if>
             <if test="status != null and status != ''">#{status},</if>
@@ -115,6 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="imei != null and imei != ''">imei = #{imei},</if>
             <if test="deviceType != null and deviceType != ''">device_type = #{deviceType},</if>
             <if test="deviceSn != null">device_sn = #{deviceSn},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
             <if test="deviceProduceDate != null">device_produce_date = #{deviceProduceDate},</if>
             <if test="softwareVersion != null and softwareVersion != ''">software_version = #{softwareVersion},</if>
             <if test="status != null and status != ''">status = #{status},</if>

+ 35 - 5
ruoyi-ui/src/views/tsb/device/index.vue

@@ -67,10 +67,11 @@
 
     <el-table v-loading="deviceLoading" :data="deviceList" @selection-change="handleDeviceSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="设备ID" align="center" prop="deviceId" width="80" />
-      <el-table-column label="IMEI" align="center" prop="imei" width="150" show-overflow-tooltip />
-      <el-table-column label="型号" align="center" prop="deviceType" show-overflow-tooltip />
-      <el-table-column label="SN" align="center" prop="deviceSn" />
+      <el-table-column label="设备序号" align="center" prop="deviceId" width="80" />
+      <el-table-column label="设备IMEI" align="center" prop="imei" width="150" show-overflow-tooltip />
+      <el-table-column label="设备类型" align="center" prop="deviceType" show-overflow-tooltip />
+      <el-table-column label="设备SN码" align="center" prop="deviceSn" />
+      <el-table-column label="归属部门" align="center" prop="deptName" show-overflow-tooltip />
       <el-table-column label="生产日期" align="center" prop="deviceProduceDate" width="120">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.deviceProduceDate, '{y}-{m}-{d}') }}</span>
@@ -121,6 +122,9 @@
         <el-form-item label="设备SN" prop="deviceSn">
           <el-input-number v-model="deviceForm.deviceSn" :controls="false" placeholder="SN" style="width:100%" />
         </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="deviceForm.deptId" :options="enabledDeptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
         <el-form-item label="生产日期" prop="deviceProduceDate">
           <el-date-picker
             v-model="deviceForm.deviceProduceDate"
@@ -210,10 +214,14 @@ import {
   bindTsbUserDevice,
   unbindTsbUserDevice
 } from '@/api/tsb/device'
+import { deptTreeSelect } from '@/api/system/user'
+import Treeselect from '@riophae/vue-treeselect'
+import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 
 export default {
   name: 'TsbDevice',
   dicts: ['sys_normal_disable'],
+  components: { Treeselect },
   data() {
     return {
       showSearch: true,
@@ -235,8 +243,11 @@ export default {
       deviceOpen: false,
       deviceTitle: '',
       deviceForm: {},
+      deptOptions: undefined,
+      enabledDeptOptions: undefined,
       deviceRules: {
-        imei: [{ required: true, message: 'IMEI不能为空', trigger: 'blur' }]
+        imei: [{ required: true, message: 'IMEI不能为空', trigger: 'blur' }],
+        deptId: [{ required: true, message: '归属部门不能为空', trigger: 'change' }]
       },
       deviceBindOpen: false,
       bindScopeDevice: null,
@@ -247,8 +258,26 @@ export default {
   },
   created() {
     this.getDeviceList()
+    this.getDeptTree()
   },
   methods: {
+    getDeptTree() {
+      deptTreeSelect().then(response => {
+        this.deptOptions = response.data
+        this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
+      })
+    },
+    filterDisabledDept(deptList) {
+      return deptList.filter(dept => {
+        if (dept.disabled) {
+          return false
+        }
+        if (dept.children && dept.children.length) {
+          dept.children = this.filterDisabledDept(dept.children)
+        }
+        return true
+      })
+    },
     getDeviceList() {
       this.deviceLoading = true
       listTsbDevice(this.addDateRange(this.queryParams, this.produceDateRange, 'ProduceDate')).then(response => {
@@ -392,6 +421,7 @@ export default {
         imei: undefined,
         deviceType: undefined,
         deviceSn: undefined,
+        deptId: undefined,
         deviceProduceDate: undefined,
         softwareVersion: undefined,
         status: '0',

+ 25 - 24
sql/tsb_3.0.sql

@@ -9,6 +9,7 @@ CREATE TABLE tsb_device (
   imei                 varchar(32)     NOT NULL                   COMMENT '设备IMEI(唯一)',
   device_type          varchar(32)     NULL                       COMMENT '设备型号',
   device_sn            bigint          NULL                       COMMENT '设备SN码',
+  dept_id              bigint(20)      NULL                       COMMENT '所属部门ID',
   device_produce_date  datetime        NULL                       COMMENT '设备生产日期',
   software_version     varchar(32)     NULL                       COMMENT '软件版本号',
   status               char(1)         NULL                       COMMENT '状态(0正常 1停用)',
@@ -78,44 +79,44 @@ INSERT INTO sys_role_menu VALUES ('2', '3206');
 -- ========== 第一层:目录(对应 tab_names,menu_id 3300/3400/3500/3600) ==========
 
 -- 常用功能
-INSERT INTO sys_menu VALUES ('3300', '常用功能', '0', '6', 'app-common', NULL, '', '', 1, 0, 'M', '0', '0', '', 'dashboard', 'admin', sysdate(), '', NULL, '终端-常用功能目录');
+INSERT INTO sys_menu VALUES ('3300', '常用功能', '0', '6', 'app-common', NULL, '', '', 1, 0, 'M', '1', '0', '', 'dashboard', 'admin', sysdate(), '', NULL, '终端-常用功能目录');
 -- 目标设备监测
-INSERT INTO sys_menu VALUES ('3400', '目标设备监测', '0', '7', 'app-monitor', NULL, '', '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', sysdate(), '', NULL, '终端-目标设备监测目录');
+INSERT INTO sys_menu VALUES ('3400', '目标设备监测', '0', '7', 'app-monitor', NULL, '', '', 1, 0, 'M', '1', '0', '', 'monitor', 'admin', sysdate(), '', NULL, '终端-目标设备监测目录');
 -- 目标设备管理
-INSERT INTO sys_menu VALUES ('3500', '目标设备管理', '0', '8', 'app-manage', NULL, '', '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', sysdate(), '', NULL, '终端-目标设备管理目录');
+INSERT INTO sys_menu VALUES ('3500', '目标设备管理', '0', '8', 'app-manage', NULL, '', '', 1, 0, 'M', '1', '0', '', 'tool', 'admin', sysdate(), '', NULL, '终端-目标设备管理目录');
 -- 本机设备管理
-INSERT INTO sys_menu VALUES ('3600', '本机设备管理', '0', '9', 'app-local', NULL, '', '', 1, 0, 'M', '0', '0', '', 'phone', 'admin', sysdate(), '', NULL, '终端-本机设备管理目录');
+INSERT INTO sys_menu VALUES ('3600', '本机设备管理', '0', '9', 'app-local', NULL, '', '', 1, 0, 'M', '1', '0', '', 'phone', 'admin', sysdate(), '', NULL, '终端-本机设备管理目录');
 
 
 -- ========== 第二层:菜单(对应 demos_by_tab) ==========
 
 -- ---------- 常用功能(3301-3399 预留) ----------
-INSERT INTO sys_menu VALUES ('3301', '报税口',     '3300', '1', 'tax', 'app-common/tax/index', '', '', 1, 0, 'C', '0', '0', 'common:tax',      'money',         'admin', sysdate(), '', NULL, '报税口 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3302', '液位仪',     '3300', '2', 'opw', 'app-common/opw/index', '', '', 1, 0, 'C', '0', '0', 'common:opw',      'slider',        'admin', sysdate(), '', NULL, '液位仪 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3303', '提枪信号',   '3300', '3', 'raise', 'app-common/raise/index', '', '', 1, 0, 'C', '0', '0', 'common:raise',       'radio',         'admin', sysdate(), '', NULL, '提枪信号 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3304', '编码器',     '3300', '4', 'coder', 'app-common/coder/index', '', '', 1, 0, 'C', '0', '0', 'common:coder',      'code',          'admin', sysdate(), '', NULL, '编码器 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3305', '简易示波器', '3300', '5', 'oscilloscope', 'app-common/oscilloscope/index', '', '', 1, 0, 'C', '0', '0', 'common:oscilloscope', 'chart',         'admin', sysdate(), '', NULL, '简易示波器 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3306', '帮助',       '3300', '6', 'help', 'app-common/help/index', '', '', 1, 0, 'C', '0', '0', 'common:help',     'question',      'admin', sysdate(), '', NULL, '帮助 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3301', '报税口',     '3300', '1', 'tax', 'app-common/tax/index', '', '', 1, 0, 'C', '1', '0', 'common:tax',      'money',         'admin', sysdate(), '', NULL, '报税口 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3302', '液位仪',     '3300', '2', 'opw', 'app-common/opw/index', '', '', 1, 0, 'C', '1', '0', 'common:opw',      'slider',        'admin', sysdate(), '', NULL, '液位仪 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3303', '提枪信号',   '3300', '3', 'raise', 'app-common/raise/index', '', '', 1, 0, 'C', '1', '0', 'common:raise',       'radio',         'admin', sysdate(), '', NULL, '提枪信号 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3304', '编码器',     '3300', '4', 'coder', 'app-common/coder/index', '', '', 1, 0, 'C', '1', '0', 'common:coder',      'code',          'admin', sysdate(), '', NULL, '编码器 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3305', '简易示波器', '3300', '5', 'oscilloscope', 'app-common/oscilloscope/index', '', '', 1, 0, 'C', '1', '0', 'common:oscilloscope', 'chart',         'admin', sysdate(), '', NULL, '简易示波器 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3306', '帮助',       '3300', '6', 'help', 'app-common/help/index', '', '', 1, 0, 'C', '1', '0', 'common:help',     'question',      'admin', sysdate(), '', NULL, '帮助 Web 镜像页');
 
 -- ---------- 目标设备监测(3401-3499 预留) ----------
-INSERT INTO sys_menu VALUES ('3401', '日志监测',       '3400', '1', 'devlog', 'app-monitor/devlog/index', '', '', 1, 0, 'C', '0', '0', 'monitor:devlog', 'log',         'admin', sysdate(), '', NULL, '日志监测 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3402', '485监测',        '3400', '2', '485', 'app-monitor/485/index', '', '', 1, 0, 'C', '0', '0', 'monitor:485',    'component',   'admin', sysdate(), '', NULL, '485监测 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3403', '232监测',        '3400', '3', '232', 'app-monitor/232/index', '', '', 1, 0, 'C', '0', '0', 'monitor:232',    'link',        'admin', sysdate(), '', NULL, '232监测 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3404', '射频局域网监测', '3400', '4', 'lora', 'app-monitor/lora/index', '', '', 1, 0, 'C', '0', '0', 'monitor:lora',   'online',      'admin', sysdate(), '', NULL, '射频局域网监测 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3401', '日志监测',       '3400', '1', 'devlog', 'app-monitor/devlog/index', '', '', 1, 0, 'C', '1', '0', 'monitor:devlog', 'log',         'admin', sysdate(), '', NULL, '日志监测 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3402', '485监测',        '3400', '2', '485', 'app-monitor/485/index', '', '', 1, 0, 'C', '1', '0', 'monitor:485',    'component',   'admin', sysdate(), '', NULL, '485监测 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3403', '232监测',        '3400', '3', '232', 'app-monitor/232/index', '', '', 1, 0, 'C', '1', '0', 'monitor:232',    'link',        'admin', sysdate(), '', NULL, '232监测 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3404', '射频局域网监测', '3400', '4', 'lora', 'app-monitor/lora/index', '', '', 1, 0, 'C', '1', '0', 'monitor:lora',   'online',      'admin', sysdate(), '', NULL, '射频局域网监测 Web 镜像页');
 
 -- ---------- 目标设备管理(3501-3599 预留) ----------
-INSERT INTO sys_menu VALUES ('3501', '固件包下载', '3500', '1', 'firm', 'app-manage/firm/index', '', '', 1, 0, 'C', '0', '0', 'manage:firm',    'download',      'admin', sysdate(), '', NULL, '固件包下载 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3502', '升级',       '3500', '2', 'upgrade', 'app-manage/upgrade/index', '', '', 1, 0, 'C', '0', '0', 'manage:upgrade', 'upload',        'admin', sysdate(), '', NULL, '升级 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3503', '刷机',       '3500', '3', 'reflash', 'app-manage/reflash/index', '', '', 1, 0, 'C', '0', '0', 'manage:reflash', 'build',         'admin', sysdate(), '', NULL, '刷机 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3504', 'MQTT配置',   '3500', '4', 'mqtt', 'app-manage/mqtt/index', '', '', 1, 0, 'C', '0', '0', 'manage:mqtt',    'server',        'admin', sysdate(), '', NULL, 'MQTT配置 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3505', '信道切换',   '3500', '5', 'channel', 'app-manage/channel/index', '', '', 1, 0, 'C', '0', '0', 'manage:channel', 'switch',        'admin', sysdate(), '', NULL, '信道切换 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3501', '固件包下载', '3500', '1', 'firm', 'app-manage/firm/index', '', '', 1, 0, 'C', '1', '0', 'manage:firm',    'download',      'admin', sysdate(), '', NULL, '固件包下载 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3502', '升级',       '3500', '2', 'upgrade', 'app-manage/upgrade/index', '', '', 1, 0, 'C', '1', '0', 'manage:upgrade', 'upload',        'admin', sysdate(), '', NULL, '升级 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3503', '刷机',       '3500', '3', 'reflash', 'app-manage/reflash/index', '', '', 1, 0, 'C', '1', '0', 'manage:reflash', 'build',         'admin', sysdate(), '', NULL, '刷机 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3504', 'MQTT配置',   '3500', '4', 'mqtt', 'app-manage/mqtt/index', '', '', 1, 0, 'C', '1', '0', 'manage:mqtt',    'server',        'admin', sysdate(), '', NULL, 'MQTT配置 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3505', '信道切换',   '3500', '5', 'channel', 'app-manage/channel/index', '', '', 1, 0, 'C', '1', '0', 'manage:channel', 'switch',        'admin', sysdate(), '', NULL, '信道切换 Web 镜像页');
 
 -- ---------- 本机设备管理(3601-3699 预留) ----------
-INSERT INTO sys_menu VALUES ('3601', '本机信息', '3600', '1', 'info', 'app-local/info/index', '', '', 1, 0, 'C', '0', '0', 'local:info', 'documentation', 'admin', sysdate(), '', NULL, '本机信息 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3602', '本机升级', '3600', '2', 'upgrade', 'app-local/upgrade/index', '', '', 1, 0, 'C', '0', '0', 'local:upgrade',  'more-up',       'admin', sysdate(), '', NULL, '本机升级 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3603', '本机日志', '3600', '3', 'log', 'app-local/log/index', '', '', 1, 0, 'C', '0', '0', 'local:log',     'logininfor',    'admin', sysdate(), '', NULL, '本机日志 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3604', '亮度管理', '3600', '4', 'light', 'app-local/light/index', '', '', 1, 0, 'C', '0', '0', 'local:light',   'theme',         'admin', sysdate(), '', NULL, '亮度管理 Web 镜像页');
-INSERT INTO sys_menu VALUES ('3605', '网络设置', '3600', '5', 'wlan', 'app-local/wlan/index', '', '', 1, 0, 'C', '0', '0', 'local:wlan',    'international', 'admin', sysdate(), '', NULL, '网络设置 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3601', '本机信息', '3600', '1', 'info', 'app-local/info/index', '', '', 1, 0, 'C', '1', '0', 'local:info', 'documentation', 'admin', sysdate(), '', NULL, '本机信息 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3602', '本机升级', '3600', '2', 'upgrade', 'app-local/upgrade/index', '', '', 1, 0, 'C', '1', '0', 'local:upgrade',  'more-up',       'admin', sysdate(), '', NULL, '本机升级 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3603', '本机日志', '3600', '3', 'log', 'app-local/log/index', '', '', 1, 0, 'C', '1', '0', 'local:log',     'logininfor',    'admin', sysdate(), '', NULL, '本机日志 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3604', '亮度管理', '3600', '4', 'light', 'app-local/light/index', '', '', 1, 0, 'C', '1', '0', 'local:light',   'theme',         'admin', sysdate(), '', NULL, '亮度管理 Web 镜像页');
+INSERT INTO sys_menu VALUES ('3605', '网络设置', '3600', '5', 'wlan', 'app-local/wlan/index', '', '', 1, 0, 'C', '1', '0', 'local:wlan',    'international', 'admin', sysdate(), '', NULL, '网络设置 Web 镜像页');
 
 
 -- ----------------------------