From d6b144421f86bcaaef5f21ddda193ab6f58b0d57 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 12 十月 2026 11:53:20 +0800
Subject: [PATCH] feat(mes): 新增独立能耗管理功能

---
 scripts/permission-audit-report.json                                                                                      | 5246 +++++++
 scripts/permission-audit-summary.json                                                                                     | 1276 +
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java                       |   54 
 yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordServiceTest.java                    |  160 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordRespVO.java             |   22 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyAnalysisReqVO.java            |   31 
 sql/mysql/menu_page_query_role_grants_pending.sql                                                                         |    3 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyAnalysisRespVO.java           |   29 
 scripts/audit-menu-permissions.cjs                                                                                        |   39 
 sql/mysql/mes_dv_metering_remind_config_patch.sql                                                                         |   14 
 sql/mysql/menu_permission_consistency_patch.sql                                                                           |  126 
 scripts/permission-fix-plan.json                                                                                          |  565 
 yudao-server/src/main/resources/application-local.yaml                                                                    |    2 
 yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/controller/admin/energy/EnergyRecordControllerContextTest.java |   33 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/EnergyRecordController.java            |   68 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordSaveReqVO.java          |   42 
 sql/mysql/energy_management_init.sql                                                                                      |   61 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordService.java                        |  114 
 sql/mysql/mdm_unit_import_export_permission_patch.sql                                                                     |   10 
 sql/mysql/mes_wm_material_stock_import_menu.sql                                                                           |   12 
 scripts/audit-active-api-permissions.cjs                                                                                  |   39 
 scripts/permission-menu-snapshot.json                                                                                     |    1 
 scripts/permission-endpoints.json                                                                                         | 16743 ++++++++++++++++++++++++
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/energy/EnergyRecordDO.java                      |   29 
 scripts/clear_unit_permission_cache.py                                                                                    |   52 
 scripts/permission-api-audit.json                                                                                         | 15617 +++++++++++++++++++++++
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordPageReqVO.java          |   27 
 27 files changed, 40,414 insertions(+), 1 deletions(-)

diff --git a/scripts/audit-active-api-permissions.cjs b/scripts/audit-active-api-permissions.cjs
new file mode 100644
index 0000000..be97f1b
--- /dev/null
+++ b/scripts/audit-active-api-permissions.cjs
@@ -0,0 +1,39 @@
+const fs = require('node:fs');
+const path = require('node:path');
+const menus = require('./permission-menu-snapshot.json');
+const endpoints = require('./permission-endpoints.json');
+const report = require('./permission-audit-report.json');
+function walk(p) {
+  if (!fs.existsSync(p)) return [];
+  if (fs.statSync(p).isFile()) return [p];
+  return fs.readdirSync(p, { withFileTypes: true }).flatMap((e) => e.isDirectory() ? walk(path.join(p, e.name)) : [path.join(p, e.name)]);
+}
+const checks = [];
+for (const menu of menus.filter((v) => v.type === 2 && !v.deleted && !v.status && v.component)) {
+  const dir = 'mom-pro2-before/src/views/' + menu.component.replace(/\/index(?:\.vue)?$/, '').replace(/\.vue$/, '');
+  for (const file of walk(dir).filter((f) => /\.(vue|ts)$/.test(f))) {
+    const s = fs.readFileSync(file, 'utf8');
+    for (const imp of s.matchAll(/import\s+(?!type\b)\{([^]*?)\}\s+from\s+['"](#\/api\/[^'"]+)['"]/g)) {
+      let api = imp[2].replace('#/', 'mom-pro2-before/src/');
+      api = fs.existsSync(api + '.ts') ? api + '.ts' : api + '/index.ts';
+      if (!fs.existsSync(api)) continue;
+      const blocks = [...fs.readFileSync(api, 'utf8').matchAll(/export\s+(?:async\s+)?function\s+(\w+)\b([^]*?)(?=\nexport|$)/g)];
+      for (const name of imp[1].split(',').map((x) => x.trim().split(/\s+as\s+/)[0]).filter((x) => /^\w+$/.test(x))) {
+        const block = blocks.find((x) => x[1] === name);
+        if (!block) continue;
+        const route = block[2].match(/requestClient\.(get|post|put|delete|patch|download|upload)[^]*?(['"`])(\/[^'"`]+)\2/);
+        if (!route) continue;
+        const method = route[1] === 'download' ? 'GET' : route[1] === 'upload' ? 'POST' : route[1].toUpperCase();
+        const url = route[3].split('?')[0];
+        const endpoint = endpoints.find((e) => e.method === method && e.url === url);
+        checks.push({ menu: menu.id, page: menu.name, source: file, api, function: name, method, url, permissions: endpoint?.permissions ?? null });
+      }
+    }
+  }
+}
+const unique = [...new Map(checks.map((c) => [c.menu + ':' + c.function + ':' + c.url, c])).values()];
+fs.writeFileSync('scripts/permission-api-audit.json', JSON.stringify(unique, null, 2));
+const missing = unique.filter((c) => c.permissions?.some((p) => report.backendWithoutMenu.some((x) => x.key === p)));
+console.log('Active API calls:', unique.length);
+console.log('Missing menu permissions:', [...new Set(missing.flatMap((c) => c.permissions))]);
+console.log('Unmatched endpoints:', unique.filter((c) => c.permissions === null).map((c) => ({ page: c.page, function: c.function, url: c.url })));
diff --git a/scripts/audit-menu-permissions.cjs b/scripts/audit-menu-permissions.cjs
new file mode 100644
index 0000000..5c8e411
--- /dev/null
+++ b/scripts/audit-menu-permissions.cjs
@@ -0,0 +1,39 @@
+const fs = require('node:fs');
+const path = require('node:path');
+const root = path.resolve(__dirname, '..');
+function walk(dir) {
+  if (!fs.existsSync(dir)) return [];
+  return fs.readdirSync(dir, { withFileTypes: true }).flatMap((entry) => entry.isDirectory() ? walk(path.join(dir, entry.name)) : [path.join(dir, entry.name)]);
+}
+const permissionPattern = /['"]((?:system|infra|bpm|crm|erp|hrm|mdm|mes|srm|im|ai|bi|aftersales|member|report|wms)(?::[a-z][a-z0-9-]*){1,5})['"]/g;
+const backend = new Map();
+const frontend = new Map();
+function add(map, permission, file) {
+  if (!map.has(permission)) map.set(permission, []);
+  map.get(permission).push(path.relative(root, file).replaceAll('\\', '/'));
+}
+for (const module of fs.readdirSync(root).filter((name) => name.startsWith('yudao-module-'))) {
+  for (const file of walk(path.join(root, module, 'src/main/java')).filter((name) => name.endsWith('Controller.java'))) {
+    const source = fs.readFileSync(file, 'utf8').replace(/\/\*[\s\S]*?\*\//g, '').replace(/^\s*\/\/.*$/gm, '');
+    for (const annotation of source.matchAll(/@PreAuthorize\(\s*"([^"]+)"\s*\)/g)) {
+      for (const match of annotation[1].matchAll(permissionPattern)) add(backend, match[1], file);
+    }
+  }
+}
+for (const file of walk(path.join(root, 'mom-pro2-before/src/views')).filter((name) => /\.(vue|ts)$/.test(name))) {
+  const source = fs.readFileSync(file, 'utf8').replace(/<!--[^]*?-->/g, '').replace(/\/\*[^]*?\*\//g, '');
+  for (const match of source.matchAll(permissionPattern)) add(frontend, match[1], file);
+}
+const menus = JSON.parse(fs.readFileSync(path.join(__dirname, 'permission-menu-snapshot.json'), 'utf8'));
+const active = menus.filter((row) => !row.deleted && row.status === 0);
+const db = new Set(active.map((row) => row.permission).filter(Boolean));
+const report = {
+  counts: { backend: backend.size, frontend: frontend.size, database: db.size },
+  frontendWithoutBackend: [...frontend].filter(([key]) => !backend.has(key)).map(([key, files]) => ({ key, files, menus: active.filter((m) => m.permission === key).map((m) => ({ id: m.id, name: m.name, parent_id: m.parent_id })) })),
+  frontendWithoutMenu: [...frontend].filter(([key]) => !db.has(key)).map(([key, files]) => ({ key, files })),
+  backendWithoutMenu: [...backend].filter(([key]) => !db.has(key)).map(([key, files]) => ({ key, files: [...new Set(files)], usedInFrontend: frontend.has(key) })),
+  menuWithoutBackend: active.filter((m) => m.permission && !backend.has(m.permission)),
+  duplicatePermissions: [...db].map((key) => ({ key, menus: active.filter((m) => m.permission === key).map((m) => m.id) })).filter((m) => m.menus.length > 1),
+};
+fs.writeFileSync(path.join(__dirname, 'permission-audit-report.json'), JSON.stringify(report, null, 2));
+console.log(JSON.stringify({ counts: report.counts, frontendWithoutBackend: report.frontendWithoutBackend.map((x) => x.key), frontendWithoutMenu: report.frontendWithoutMenu.map((x) => x.key), backendWithoutMenuUsedInFrontend: report.backendWithoutMenu.filter((x) => x.usedInFrontend).map((x) => x.key), menuWithoutBackend: report.menuWithoutBackend.map((x) => ({ id: x.id, permission: x.permission, parent: x.parent_id })), duplicatePermissions: report.duplicatePermissions }, null, 2));
diff --git a/scripts/clear_unit_permission_cache.py b/scripts/clear_unit_permission_cache.py
new file mode 100644
index 0000000..615405d
--- /dev/null
+++ b/scripts/clear_unit_permission_cache.py
@@ -0,0 +1,52 @@
+import socket
+import re
+import json
+from pathlib import Path
+
+source = Path('yudao-server/src/main/resources/application-local.yaml').read_text(encoding='utf-8')
+block = re.search(r'(?m)^    redis:\s*\n((?:      [^\n]*\n)+)', source).group(1)
+redis = {key: value.split(' #')[0].strip().strip('\"\'') for key, value in re.findall(r'(?m)^      (host|port|database|password):\s*([^\n]*)', block)}
+connection = socket.create_connection((redis['host'], int(redis.get('port', 6379))), timeout=10)
+stream = connection.makefile('rb')
+
+def read():
+    kind = stream.read(1)
+    value = stream.readline().rstrip(b'\r\n')
+    if kind == b'-':
+        raise RuntimeError(value.decode())
+    if kind == b':':
+        return int(value)
+    if kind == b'$':
+        size = int(value)
+        if size < 0:
+            return None
+        result = stream.read(size)
+        stream.read(2)
+        return result
+    if kind == b'*':
+        return [read() for _ in range(int(value))]
+    return value
+
+def command(*parts):
+    values = [str(p).encode() if not isinstance(p, bytes) else p for p in parts]
+    connection.sendall(b'*' + str(len(values)).encode() + b'\r\n' + b''.join(b'$' + str(len(v)).encode() + b'\r\n' + v + b'\r\n' for v in values))
+    return read()
+
+if redis.get('password'):
+    command('AUTH', redis['password'])
+command('SELECT', redis.get('database', 0))
+plan = json.loads(Path('scripts/permission-fix-plan.json').read_text(encoding='utf-8'))
+suffixes = tuple(':' + key for key in set(plan['allKeys'] + [pair[0] for pair in plan['aliases']]))
+keys = []
+cursor = b'0'
+while True:
+    cursor, batch = command('SCAN', cursor, 'MATCH', '*permission_menu_ids*', 'COUNT', 100)
+    keys.extend(key for key in batch if key.decode().endswith(suffixes))
+    if cursor == b'0':
+        break
+print('Target permission cache keys:', [key.decode() for key in keys])
+if keys:
+    print('Deleted permission cache entries:', command('DEL', *keys))
+else:
+    print('No stale affected permission cache entries')
+connection.close()
diff --git a/scripts/permission-api-audit.json b/scripts/permission-api-audit.json
new file mode 100644
index 0000000..8ab0501
--- /dev/null
+++ b/scripts/permission-api-audit.json
@@ -0,0 +1,15617 @@
+[
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\index.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getUserPage",
+    "method": "GET",
+    "url": "/system/user/page",
+    "permissions": [
+      "system:user:query"
+    ]
+  },
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\data.ts",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "getSimplePostList",
+    "method": "GET",
+    "url": "/system/post/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\data.ts",
+    "api": "mom-pro2-before/src/api/system/role/index.ts",
+    "function": "getSimpleRoleList",
+    "method": "GET",
+    "url": "/system/role/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\index.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "exportUser",
+    "method": "GET",
+    "url": "/system/user/export-excel",
+    "permissions": [
+      "system:user:export"
+    ]
+  },
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\index.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "updateUserStatus",
+    "method": "PUT",
+    "url": "/system/user/update-status",
+    "permissions": [
+      "system:user:update"
+    ]
+  },
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\modules\\assign-role-form.vue",
+    "api": "mom-pro2-before/src/api/system/permission/index.ts",
+    "function": "getUserRoleList",
+    "method": "GET",
+    "url": "/system/permission/list-user-roles",
+    "permissions": [
+      "system:permission:assign-user-role"
+    ]
+  },
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getUser",
+    "method": "GET",
+    "url": "/system/user/get",
+    "permissions": [
+      "system:user:query"
+    ]
+  },
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "updateUser",
+    "method": "PUT",
+    "url": "/system/user/update",
+    "permissions": [
+      "system:user:update"
+    ]
+  },
+  {
+    "menu": 100,
+    "page": "鐢ㄦ埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\user\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "importUserTemplate",
+    "method": "GET",
+    "url": "/system/user/get-import-template",
+    "permissions": []
+  },
+  {
+    "menu": 101,
+    "page": "瑙掕壊绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\role\\index.vue",
+    "api": "mom-pro2-before/src/api/system/role/index.ts",
+    "function": "exportRole",
+    "method": "GET",
+    "url": "/system/role/export-excel",
+    "permissions": [
+      "system:role:export"
+    ]
+  },
+  {
+    "menu": 101,
+    "page": "瑙掕壊绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\role\\index.vue",
+    "api": "mom-pro2-before/src/api/system/role/index.ts",
+    "function": "getRolePage",
+    "method": "GET",
+    "url": "/system/role/page",
+    "permissions": [
+      "system:role:query"
+    ]
+  },
+  {
+    "menu": 101,
+    "page": "瑙掕壊绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\role\\modules\\assign-data-permission-form.vue",
+    "api": "mom-pro2-before/src/api/system/permission/index.ts",
+    "function": "assignRoleDataScope",
+    "method": "POST",
+    "url": "/system/permission/assign-role-data-scope",
+    "permissions": [
+      "system:permission:assign-role-data-scope"
+    ]
+  },
+  {
+    "menu": 101,
+    "page": "瑙掕壊绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\role\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/role/index.ts",
+    "function": "getRole",
+    "method": "GET",
+    "url": "/system/role/get",
+    "permissions": [
+      "system:role:query"
+    ]
+  },
+  {
+    "menu": 101,
+    "page": "瑙掕壊绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\role\\modules\\assign-menu-form.vue",
+    "api": "mom-pro2-before/src/api/system/permission/index.ts",
+    "function": "assignRoleMenu",
+    "method": "POST",
+    "url": "/system/permission/assign-role-menu",
+    "permissions": [
+      "system:permission:assign-role-menu"
+    ]
+  },
+  {
+    "menu": 101,
+    "page": "瑙掕壊绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\role\\modules\\assign-menu-form.vue",
+    "api": "mom-pro2-before/src/api/system/permission/index.ts",
+    "function": "getRoleMenuList",
+    "method": "GET",
+    "url": "/system/permission/list-role-menus",
+    "permissions": [
+      "system:permission:assign-role-menu"
+    ]
+  },
+  {
+    "menu": 101,
+    "page": "瑙掕壊绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\role\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/role/index.ts",
+    "function": "updateRole",
+    "method": "PUT",
+    "url": "/system/role/update",
+    "permissions": [
+      "system:role:update"
+    ]
+  },
+  {
+    "menu": 102,
+    "page": "鑿滃崟绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\menu\\index.vue",
+    "api": "mom-pro2-before/src/api/system/menu/index.ts",
+    "function": "getMenuList",
+    "method": "GET",
+    "url": "/system/menu/list",
+    "permissions": [
+      "system:menu:query"
+    ]
+  },
+  {
+    "menu": 102,
+    "page": "鑿滃崟绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\menu\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/menu/index.ts",
+    "function": "getMenu",
+    "method": "GET",
+    "url": "/system/menu/get",
+    "permissions": [
+      "system:menu:query"
+    ]
+  },
+  {
+    "menu": 102,
+    "page": "鑿滃崟绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\menu\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/menu/index.ts",
+    "function": "updateMenu",
+    "method": "PUT",
+    "url": "/system/menu/update",
+    "permissions": [
+      "system:menu:update"
+    ]
+  },
+  {
+    "menu": 103,
+    "page": "閮ㄩ棬绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dept\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 103,
+    "page": "閮ㄩ棬绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dept\\index.vue",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getDeptList",
+    "method": "GET",
+    "url": "/system/dept/list",
+    "permissions": [
+      "system:dept:query"
+    ]
+  },
+  {
+    "menu": 103,
+    "page": "閮ㄩ棬绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dept\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getDept",
+    "method": "GET",
+    "url": "/system/dept/get",
+    "permissions": [
+      "system:dept:query"
+    ]
+  },
+  {
+    "menu": 103,
+    "page": "閮ㄩ棬绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dept\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "updateDept",
+    "method": "PUT",
+    "url": "/system/dept/update",
+    "permissions": [
+      "system:dept:update"
+    ]
+  },
+  {
+    "menu": 103,
+    "page": "閮ㄩ棬绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dept\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "importDeptTemplate",
+    "method": "GET",
+    "url": "/system/dept/get-import-template",
+    "permissions": []
+  },
+  {
+    "menu": 104,
+    "page": "宀椾綅绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\post\\index.vue",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "exportPost",
+    "method": "GET",
+    "url": "/system/post/export-excel",
+    "permissions": [
+      "system:post:export"
+    ]
+  },
+  {
+    "menu": 104,
+    "page": "宀椾綅绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\post\\index.vue",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "getPostPage",
+    "method": "GET",
+    "url": "/system/post/page",
+    "permissions": [
+      "system:post:query"
+    ]
+  },
+  {
+    "menu": 104,
+    "page": "宀椾綅绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\post\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "getPost",
+    "method": "GET",
+    "url": "/system/post/get",
+    "permissions": [
+      "system:post:query"
+    ]
+  },
+  {
+    "menu": 104,
+    "page": "宀椾綅绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\post\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "updatePost",
+    "method": "PUT",
+    "url": "/system/post/update",
+    "permissions": [
+      "system:post:update"
+    ]
+  },
+  {
+    "menu": 104,
+    "page": "宀椾綅绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\post\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "importPostTemplate",
+    "method": "GET",
+    "url": "/system/post/get-import-template",
+    "permissions": []
+  },
+  {
+    "menu": 105,
+    "page": "瀛楀吀绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dict\\modules\\data-form.vue",
+    "api": "mom-pro2-before/src/api/system/dict/data/index.ts",
+    "function": "getDictData",
+    "method": "GET",
+    "url": "/system/dict-data/get",
+    "permissions": [
+      "system:dict:query"
+    ]
+  },
+  {
+    "menu": 105,
+    "page": "瀛楀吀绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dict\\modules\\data-form.vue",
+    "api": "mom-pro2-before/src/api/system/dict/data/index.ts",
+    "function": "updateDictData",
+    "method": "PUT",
+    "url": "/system/dict-data/update",
+    "permissions": [
+      "system:dict:update"
+    ]
+  },
+  {
+    "menu": 105,
+    "page": "瀛楀吀绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dict\\modules\\data-grid.vue",
+    "api": "mom-pro2-before/src/api/system/dict/data/index.ts",
+    "function": "exportDictData",
+    "method": "GET",
+    "url": "/system/dict-data/export-excel",
+    "permissions": [
+      "system:dict:export"
+    ]
+  },
+  {
+    "menu": 105,
+    "page": "瀛楀吀绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dict\\modules\\data-grid.vue",
+    "api": "mom-pro2-before/src/api/system/dict/data/index.ts",
+    "function": "getDictDataPage",
+    "method": "GET",
+    "url": "/system/dict-data/page",
+    "permissions": [
+      "system:dict:query"
+    ]
+  },
+  {
+    "menu": 105,
+    "page": "瀛楀吀绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dict\\modules\\type-form.vue",
+    "api": "mom-pro2-before/src/api/system/dict/type/index.ts",
+    "function": "getDictType",
+    "method": "GET",
+    "url": "/system/dict-type/get",
+    "permissions": [
+      "system:dict:query"
+    ]
+  },
+  {
+    "menu": 105,
+    "page": "瀛楀吀绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dict\\modules\\type-form.vue",
+    "api": "mom-pro2-before/src/api/system/dict/type/index.ts",
+    "function": "updateDictType",
+    "method": "PUT",
+    "url": "/system/dict-type/update",
+    "permissions": [
+      "system:dict:update"
+    ]
+  },
+  {
+    "menu": 105,
+    "page": "瀛楀吀绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dict\\modules\\type-grid.vue",
+    "api": "mom-pro2-before/src/api/system/dict/type/index.ts",
+    "function": "exportDictType",
+    "method": "GET",
+    "url": "/system/dict-type/export-excel",
+    "permissions": [
+      "system:dict:query"
+    ]
+  },
+  {
+    "menu": 105,
+    "page": "瀛楀吀绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\dict\\modules\\type-grid.vue",
+    "api": "mom-pro2-before/src/api/system/dict/type/index.ts",
+    "function": "getDictTypePage",
+    "method": "GET",
+    "url": "/system/dict-type/page",
+    "permissions": [
+      "system:dict:query"
+    ]
+  },
+  {
+    "menu": 106,
+    "page": "閰嶇疆绠$悊",
+    "source": "mom-pro2-before\\src\\views\\infra\\config\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/config/index.ts",
+    "function": "exportConfig",
+    "method": "GET",
+    "url": "/infra/config/export-excel",
+    "permissions": [
+      "infra:config:export"
+    ]
+  },
+  {
+    "menu": 106,
+    "page": "閰嶇疆绠$悊",
+    "source": "mom-pro2-before\\src\\views\\infra\\config\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/config/index.ts",
+    "function": "getConfigPage",
+    "method": "GET",
+    "url": "/infra/config/page",
+    "permissions": [
+      "infra:config:query"
+    ]
+  },
+  {
+    "menu": 106,
+    "page": "閰嶇疆绠$悊",
+    "source": "mom-pro2-before\\src\\views\\infra\\config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/config/index.ts",
+    "function": "getConfig",
+    "method": "GET",
+    "url": "/infra/config/get",
+    "permissions": [
+      "infra:config:query"
+    ]
+  },
+  {
+    "menu": 106,
+    "page": "閰嶇疆绠$悊",
+    "source": "mom-pro2-before\\src\\views\\infra\\config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/config/index.ts",
+    "function": "updateConfig",
+    "method": "PUT",
+    "url": "/infra/config/update",
+    "permissions": [
+      "infra:config:update"
+    ]
+  },
+  {
+    "menu": 107,
+    "page": "閫氱煡鍏憡",
+    "source": "mom-pro2-before\\src\\views\\system\\notice\\index.vue",
+    "api": "mom-pro2-before/src/api/system/notice/index.ts",
+    "function": "getNoticePage",
+    "method": "GET",
+    "url": "/system/notice/page",
+    "permissions": [
+      "system:notice:query"
+    ]
+  },
+  {
+    "menu": 107,
+    "page": "閫氱煡鍏憡",
+    "source": "mom-pro2-before\\src\\views\\system\\notice\\index.vue",
+    "api": "mom-pro2-before/src/api/system/notice/index.ts",
+    "function": "pushNotice",
+    "method": "POST",
+    "url": "/system/notice/push",
+    "permissions": [
+      "system:notice:update"
+    ]
+  },
+  {
+    "menu": 107,
+    "page": "閫氱煡鍏憡",
+    "source": "mom-pro2-before\\src\\views\\system\\notice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/notice/index.ts",
+    "function": "getNotice",
+    "method": "GET",
+    "url": "/system/notice/get",
+    "permissions": [
+      "system:notice:query"
+    ]
+  },
+  {
+    "menu": 107,
+    "page": "閫氱煡鍏憡",
+    "source": "mom-pro2-before\\src\\views\\system\\notice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/notice/index.ts",
+    "function": "updateNotice",
+    "method": "PUT",
+    "url": "/system/notice/update",
+    "permissions": [
+      "system:notice:update"
+    ]
+  },
+  {
+    "menu": 109,
+    "page": "浠ょ墝绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\oauth2\\token\\index.vue",
+    "api": "mom-pro2-before/src/api/system/oauth2/token/index.ts",
+    "function": "getOAuth2TokenPage",
+    "method": "GET",
+    "url": "/system/oauth2-token/page",
+    "permissions": [
+      "system:oauth2-token:page"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/job/index.ts",
+    "function": "exportJob",
+    "method": "GET",
+    "url": "/infra/job/export-excel",
+    "permissions": [
+      "infra:job:export"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/job/index.ts",
+    "function": "getJobPage",
+    "method": "GET",
+    "url": "/infra/job/page",
+    "permissions": [
+      "infra:job:query"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/job/index.ts",
+    "function": "runJob",
+    "method": "PUT",
+    "url": "/infra/job/trigger",
+    "permissions": [
+      "infra:job:trigger"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/job/index.ts",
+    "function": "syncJob",
+    "method": "POST",
+    "url": "/infra/job/sync",
+    "permissions": [
+      "infra:job:create"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/job/index.ts",
+    "function": "updateJobStatus",
+    "method": "PUT",
+    "url": "/infra/job/update-status",
+    "permissions": [
+      "infra:job:update"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\logger\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/job-log/index.ts",
+    "function": "getJobLogPage",
+    "method": "GET",
+    "url": "/infra/job-log/page",
+    "permissions": [
+      "infra:job:query"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\modules\\detail.vue",
+    "api": "mom-pro2-before/src/api/infra/job/index.ts",
+    "function": "getJobNextTimes",
+    "method": "GET",
+    "url": "/infra/job/get_next_times",
+    "permissions": [
+      "infra:job:query"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/job/index.ts",
+    "function": "getJob",
+    "method": "GET",
+    "url": "/infra/job/get",
+    "permissions": [
+      "infra:job:query"
+    ]
+  },
+  {
+    "menu": 110,
+    "page": "瀹氭椂浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\infra\\job\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/job/index.ts",
+    "function": "updateJob",
+    "method": "PUT",
+    "url": "/infra/job/update",
+    "permissions": [
+      "infra:job:update"
+    ]
+  },
+  {
+    "menu": 115,
+    "page": "浠g爜鐢熸垚",
+    "source": "mom-pro2-before\\src\\views\\infra\\codegen\\data.ts",
+    "api": "mom-pro2-before/src/api/system/menu/index.ts",
+    "function": "getMenuList",
+    "method": "GET",
+    "url": "/system/menu/list",
+    "permissions": [
+      "system:menu:query"
+    ]
+  },
+  {
+    "menu": 115,
+    "page": "浠g爜鐢熸垚",
+    "source": "mom-pro2-before\\src\\views\\infra\\codegen\\edit\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/codegen/index.ts",
+    "function": "updateCodegenTable",
+    "method": "PUT",
+    "url": "/infra/codegen/update",
+    "permissions": [
+      "infra:codegen:update"
+    ]
+  },
+  {
+    "menu": 115,
+    "page": "浠g爜鐢熸垚",
+    "source": "mom-pro2-before\\src\\views\\infra\\codegen\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/codegen/index.ts",
+    "function": "downloadCodegen",
+    "method": "GET",
+    "url": "/infra/codegen/download",
+    "permissions": [
+      "infra:codegen:download"
+    ]
+  },
+  {
+    "menu": 115,
+    "page": "浠g爜鐢熸垚",
+    "source": "mom-pro2-before\\src\\views\\infra\\codegen\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/codegen/index.ts",
+    "function": "getCodegenTablePage",
+    "method": "GET",
+    "url": "/infra/codegen/table/page",
+    "permissions": [
+      "infra:codegen:query"
+    ]
+  },
+  {
+    "menu": 115,
+    "page": "浠g爜鐢熸垚",
+    "source": "mom-pro2-before\\src\\views\\infra\\codegen\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/codegen/index.ts",
+    "function": "syncCodegenFromDB",
+    "method": "PUT",
+    "url": "/infra/codegen/sync-from-db",
+    "permissions": [
+      "infra:codegen:update"
+    ]
+  },
+  {
+    "menu": 115,
+    "page": "浠g爜鐢熸垚",
+    "source": "mom-pro2-before\\src\\views\\infra\\codegen\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/data-source-config/index.ts",
+    "function": "getDataSourceConfigList",
+    "method": "GET",
+    "url": "/infra/data-source-config/list",
+    "permissions": [
+      "infra:data-source-config:query"
+    ]
+  },
+  {
+    "menu": 115,
+    "page": "浠g爜鐢熸垚",
+    "source": "mom-pro2-before\\src\\views\\infra\\codegen\\modules\\import-table.vue",
+    "api": "mom-pro2-before/src/api/infra/codegen/index.ts",
+    "function": "getSchemaTableList",
+    "method": "GET",
+    "url": "/infra/codegen/db/table/list",
+    "permissions": [
+      "infra:codegen:query"
+    ]
+  },
+  {
+    "menu": 500,
+    "page": "鎿嶄綔鏃ュ織",
+    "source": "mom-pro2-before\\src\\views\\system\\operatelog\\index.vue",
+    "api": "mom-pro2-before/src/api/system/operate-log/index.ts",
+    "function": "getOperateLogPage",
+    "method": "GET",
+    "url": "/system/operate-log/page",
+    "permissions": [
+      "system:operate-log:query"
+    ]
+  },
+  {
+    "menu": 501,
+    "page": "鐧诲綍鏃ュ織",
+    "source": "mom-pro2-before\\src\\views\\system\\loginlog\\index.vue",
+    "api": "mom-pro2-before/src/api/system/login-log/index.ts",
+    "function": "getLoginLogPage",
+    "method": "GET",
+    "url": "/system/login-log/page",
+    "permissions": [
+      "system:login-log:query"
+    ]
+  },
+  {
+    "menu": 1078,
+    "page": "璁块棶鏃ュ織",
+    "source": "mom-pro2-before\\src\\views\\infra\\apiAccessLog\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/api-access-log/index.ts",
+    "function": "getApiAccessLogPage",
+    "method": "GET",
+    "url": "/infra/api-access-log/page",
+    "permissions": [
+      "infra:api-access-log:query"
+    ]
+  },
+  {
+    "menu": 1084,
+    "page": "閿欒鏃ュ織",
+    "source": "mom-pro2-before\\src\\views\\infra\\apiErrorLog\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/api-error-log/index.ts",
+    "function": "getApiErrorLogPage",
+    "method": "GET",
+    "url": "/infra/api-error-log/page",
+    "permissions": [
+      "infra:api-error-log:query"
+    ]
+  },
+  {
+    "menu": 1084,
+    "page": "閿欒鏃ュ織",
+    "source": "mom-pro2-before\\src\\views\\infra\\apiErrorLog\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/api-error-log/index.ts",
+    "function": "updateApiErrorLogStatus",
+    "method": "PUT",
+    "url": "/infra/api-error-log/update-status",
+    "permissions": [
+      "infra:api-error-log:update-status"
+    ]
+  },
+  {
+    "menu": 1090,
+    "page": "鏂囦欢鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\infra\\file\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/file/index.ts",
+    "function": "getFilePage",
+    "method": "GET",
+    "url": "/infra/file/page",
+    "permissions": [
+      "infra:file:query"
+    ]
+  },
+  {
+    "menu": 1094,
+    "page": "鐭俊娓犻亾",
+    "source": "mom-pro2-before\\src\\views\\system\\sms\\channel\\index.vue",
+    "api": "mom-pro2-before/src/api/system/sms/channel/index.ts",
+    "function": "getSmsChannelPage",
+    "method": "GET",
+    "url": "/system/sms-channel/page",
+    "permissions": null
+  },
+  {
+    "menu": 1094,
+    "page": "鐭俊娓犻亾",
+    "source": "mom-pro2-before\\src\\views\\system\\sms\\channel\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/sms/channel/index.ts",
+    "function": "getSmsChannel",
+    "method": "GET",
+    "url": "/system/sms-channel/get",
+    "permissions": null
+  },
+  {
+    "menu": 1094,
+    "page": "鐭俊娓犻亾",
+    "source": "mom-pro2-before\\src\\views\\system\\sms\\channel\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/sms/channel/index.ts",
+    "function": "updateSmsChannel",
+    "method": "PUT",
+    "url": "/system/sms-channel/update",
+    "permissions": null
+  },
+  {
+    "menu": 1100,
+    "page": "鐭俊妯℃澘",
+    "source": "mom-pro2-before\\src\\views\\system\\sms\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/system/sms/template/index.ts",
+    "function": "exportSmsTemplate",
+    "method": "GET",
+    "url": "/system/sms-template/export-excel",
+    "permissions": [
+      "system:sms-template:export"
+    ]
+  },
+  {
+    "menu": 1100,
+    "page": "鐭俊妯℃澘",
+    "source": "mom-pro2-before\\src\\views\\system\\sms\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/system/sms/template/index.ts",
+    "function": "getSmsTemplatePage",
+    "method": "GET",
+    "url": "/system/sms-template/page",
+    "permissions": [
+      "system:sms-template:query"
+    ]
+  },
+  {
+    "menu": 1100,
+    "page": "鐭俊妯℃澘",
+    "source": "mom-pro2-before\\src\\views\\system\\sms\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/sms/template/index.ts",
+    "function": "getSmsTemplate",
+    "method": "GET",
+    "url": "/system/sms-template/get",
+    "permissions": [
+      "system:sms-template:query"
+    ]
+  },
+  {
+    "menu": 1100,
+    "page": "鐭俊妯℃澘",
+    "source": "mom-pro2-before\\src\\views\\system\\sms\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/sms/template/index.ts",
+    "function": "updateSmsTemplate",
+    "method": "PUT",
+    "url": "/system/sms-template/update",
+    "permissions": [
+      "system:sms-template:update"
+    ]
+  },
+  {
+    "menu": 1107,
+    "page": "鐭俊鏃ュ織",
+    "source": "mom-pro2-before\\src\\views\\system\\sms\\log\\index.vue",
+    "api": "mom-pro2-before/src/api/system/sms/log/index.ts",
+    "function": "getSmsLogPage",
+    "method": "GET",
+    "url": "/system/sms-log/page",
+    "permissions": [
+      "system:sms-log:query"
+    ]
+  },
+  {
+    "menu": 1118,
+    "page": "璇峰亣鏌ヨ",
+    "source": "mom-pro2-before\\src\\views\\bpm\\oa\\leave\\create.vue",
+    "api": "mom-pro2-before/src/api/bpm/oa/leave/index.ts",
+    "function": "createLeave",
+    "method": "POST",
+    "url": "/bpm/oa/leave/create",
+    "permissions": [
+      "bpm:oa-leave:create"
+    ]
+  },
+  {
+    "menu": 1118,
+    "page": "璇峰亣鏌ヨ",
+    "source": "mom-pro2-before\\src\\views\\bpm\\oa\\leave\\create.vue",
+    "api": "mom-pro2-before/src/api/bpm/oa/leave/index.ts",
+    "function": "getLeave",
+    "method": "GET",
+    "url": "/bpm/oa/leave/get",
+    "permissions": [
+      "bpm:oa-leave:query"
+    ]
+  },
+  {
+    "menu": 1118,
+    "page": "璇峰亣鏌ヨ",
+    "source": "mom-pro2-before\\src\\views\\bpm\\oa\\leave\\create.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getApprovalDetail",
+    "method": "GET",
+    "url": "/bpm/process-instance/get-approval-detail",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 1118,
+    "page": "璇峰亣鏌ヨ",
+    "source": "mom-pro2-before\\src\\views\\bpm\\oa\\leave\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "cancelProcessInstanceByStartUser",
+    "method": "DELETE",
+    "url": "/bpm/process-instance/cancel-by-start-user",
+    "permissions": [
+      "bpm:process-instance:cancel"
+    ]
+  },
+  {
+    "menu": 1138,
+    "page": "绉熸埛鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\system\\tenant\\index.vue",
+    "api": "mom-pro2-before/src/api/system/tenant/index.ts",
+    "function": "getTenantPage",
+    "method": "GET",
+    "url": "/system/tenant/page",
+    "permissions": [
+      "system:tenant:query"
+    ]
+  },
+  {
+    "menu": 1187,
+    "page": "娴佺▼琛ㄥ崟",
+    "source": "mom-pro2-before\\src\\views\\bpm\\form\\designer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/form/index.ts",
+    "function": "updateForm",
+    "method": "PUT",
+    "url": "/bpm/form/update",
+    "permissions": [
+      "bpm:form:update"
+    ]
+  },
+  {
+    "menu": 1187,
+    "page": "娴佺▼琛ㄥ崟",
+    "source": "mom-pro2-before\\src\\views\\bpm\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/form/index.ts",
+    "function": "getFormPage",
+    "method": "GET",
+    "url": "/bpm/form/page",
+    "permissions": [
+      "bpm:form:query"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/definition/index.ts",
+    "function": "getProcessDefinition",
+    "method": "GET",
+    "url": "/bpm/process-definition/get",
+    "permissions": null
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/form/index.ts",
+    "function": "getFormSimpleList",
+    "method": "GET",
+    "url": "/bpm/form/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "createModel",
+    "method": "POST",
+    "url": "/bpm/model/create",
+    "permissions": [
+      "bpm:model:create"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\modules\\category-draggable-model.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "deployModel",
+    "method": "POST",
+    "url": "/bpm/model/deploy",
+    "permissions": [
+      "bpm:model:deploy"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "getModel",
+    "method": "GET",
+    "url": "/bpm/model/get",
+    "permissions": [
+      "bpm:model:query"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "updateModel",
+    "method": "PUT",
+    "url": "/bpm/model/update",
+    "permissions": [
+      "bpm:model:update"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getSimpleDeptList",
+    "method": "GET",
+    "url": "/system/dept/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/autoApprove/index.ts",
+    "function": "updateGlobalAutoApprove",
+    "method": "PUT",
+    "url": "/bpm/process-auto-approve/update-global",
+    "permissions": [
+      "bpm:process-auto-approve:update"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/category/index.ts",
+    "function": "getCategorySimpleList",
+    "method": "GET",
+    "url": "/bpm/category/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/category/index.ts",
+    "function": "updateCategorySortBatch",
+    "method": "PUT",
+    "url": "/bpm/category/update-sort-batch",
+    "permissions": [
+      "bpm:category:update"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "getModelList",
+    "method": "GET",
+    "url": "/bpm/model/list",
+    "permissions": []
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\modules\\category-draggable-model.vue",
+    "api": "mom-pro2-before/src/api/bpm/category/index.ts",
+    "function": "deleteCategory",
+    "method": "DELETE",
+    "url": "/bpm/category/delete",
+    "permissions": [
+      "bpm:category:delete"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\modules\\category-draggable-model.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "cleanModel",
+    "method": "DELETE",
+    "url": "/bpm/model/clean",
+    "permissions": [
+      "bpm:model:clean"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\modules\\category-draggable-model.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "deleteModel",
+    "method": "DELETE",
+    "url": "/bpm/model/delete",
+    "permissions": [
+      "bpm:model:delete"
+    ]
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\modules\\category-draggable-model.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "updateModelSortBatch",
+    "method": "PUT",
+    "url": "/bpm/model/update-sort-batch",
+    "permissions": []
+  },
+  {
+    "menu": 1193,
+    "page": "娴佺▼妯″瀷",
+    "source": "mom-pro2-before\\src\\views\\bpm\\model\\modules\\category-draggable-model.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "updateModelState",
+    "method": "PUT",
+    "url": "/bpm/model/update-state",
+    "permissions": [
+      "bpm:model:update"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\create\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/definition/index.ts",
+    "function": "getProcessDefinitionList",
+    "method": "GET",
+    "url": "/bpm/process-definition/list",
+    "permissions": null
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\create\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getProcessInstance",
+    "method": "GET",
+    "url": "/bpm/process-instance/get",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\create\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "createProcessInstance",
+    "method": "POST",
+    "url": "/bpm/process-instance/create",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\create\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getApprovalDetail",
+    "method": "GET",
+    "url": "/bpm/process-instance/get-approval-detail",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\manager\\data.ts",
+    "api": "mom-pro2-before/src/api/bpm/definition/index.ts",
+    "function": "getSimpleProcessDefinitionList",
+    "method": "GET",
+    "url": "/bpm/process-definition/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getProcessInstanceBpmnModelView",
+    "method": "GET",
+    "url": "/bpm/process-instance/get-bpmn-model-view",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\manager\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\detail\\modules\\operation-button.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getNextApprovalNodes",
+    "method": "GET",
+    "url": "/bpm/process-instance/get-next-approval-nodes",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\detail\\modules\\process-print.vue",
+    "api": "mom-pro2-before/src/api/system/area/index.ts",
+    "function": "getAreaTree",
+    "method": "GET",
+    "url": "/system/area/tree",
+    "permissions": []
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\detail\\modules\\process-print.vue",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getSimpleDeptList",
+    "method": "GET",
+    "url": "/system/dept/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "cancelProcessInstanceByStartUser",
+    "method": "DELETE",
+    "url": "/bpm/process-instance/cancel-by-start-user",
+    "permissions": [
+      "bpm:process-instance:cancel"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getProcessInstanceMyPage",
+    "method": "GET",
+    "url": "/bpm/process-instance/my-page",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\report\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getProcessInstanceManagerPage",
+    "method": "GET",
+    "url": "/bpm/process-instance/manager-page",
+    "permissions": [
+      "bpm:process-instance:manager-query"
+    ]
+  },
+  {
+    "menu": 1201,
+    "page": "鎴戠殑娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\report\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "cancelProcessInstanceByAdmin",
+    "method": "DELETE",
+    "url": "/bpm/process-instance/cancel-by-admin",
+    "permissions": [
+      "bpm:process-instance:cancel-by-admin"
+    ]
+  },
+  {
+    "menu": 1207,
+    "page": "寰呭姙浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\bpm\\task\\todo\\data.ts",
+    "api": "mom-pro2-before/src/api/bpm/definition/index.ts",
+    "function": "getSimpleProcessDefinitionList",
+    "method": "GET",
+    "url": "/bpm/process-definition/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1208,
+    "page": "宸插姙浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\bpm\\task\\done\\data.ts",
+    "api": "mom-pro2-before/src/api/bpm/definition/index.ts",
+    "function": "getSimpleProcessDefinitionList",
+    "method": "GET",
+    "url": "/bpm/process-definition/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1208,
+    "page": "宸插姙浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\bpm\\task\\done\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/task/index.ts",
+    "function": "getTaskDonePage",
+    "method": "GET",
+    "url": "/bpm/task/done-page",
+    "permissions": [
+      "bpm:task:query"
+    ]
+  },
+  {
+    "menu": 1209,
+    "page": "鐢ㄦ埛鍒嗙粍",
+    "source": "mom-pro2-before\\src\\views\\bpm\\group\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/userGroup/index.ts",
+    "function": "getUserGroupPage",
+    "method": "GET",
+    "url": "/bpm/user-group/page",
+    "permissions": [
+      "bpm:user-group:query"
+    ]
+  },
+  {
+    "menu": 1209,
+    "page": "鐢ㄦ埛鍒嗙粍",
+    "source": "mom-pro2-before\\src\\views\\bpm\\group\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/userGroup/index.ts",
+    "function": "getUserGroup",
+    "method": "GET",
+    "url": "/bpm/user-group/get",
+    "permissions": [
+      "bpm:user-group:query"
+    ]
+  },
+  {
+    "menu": 1209,
+    "page": "鐢ㄦ埛鍒嗙粍",
+    "source": "mom-pro2-before\\src\\views\\bpm\\group\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/userGroup/index.ts",
+    "function": "updateUserGroup",
+    "method": "PUT",
+    "url": "/bpm/user-group/update",
+    "permissions": [
+      "bpm:user-group:update"
+    ]
+  },
+  {
+    "menu": 1225,
+    "page": "绉熸埛濂楅",
+    "source": "mom-pro2-before\\src\\views\\system\\tenantPackage\\index.vue",
+    "api": "mom-pro2-before/src/api/system/tenant-package/index.ts",
+    "function": "getTenantPackagePage",
+    "method": "GET",
+    "url": "/system/tenant-package/page",
+    "permissions": [
+      "system:tenant-package:query"
+    ]
+  },
+  {
+    "menu": 1237,
+    "page": "鏂囦欢閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\infra\\fileConfig\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/file-config/index.ts",
+    "function": "getFileConfigPage",
+    "method": "GET",
+    "url": "/infra/file-config/page",
+    "permissions": [
+      "infra:file-config:query"
+    ]
+  },
+  {
+    "menu": 1237,
+    "page": "鏂囦欢閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\infra\\fileConfig\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/file-config/index.ts",
+    "function": "testFileConfig",
+    "method": "GET",
+    "url": "/infra/file-config/test",
+    "permissions": [
+      "infra:file-config:query"
+    ]
+  },
+  {
+    "menu": 1237,
+    "page": "鏂囦欢閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\infra\\fileConfig\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/file-config/index.ts",
+    "function": "updateFileConfigMaster",
+    "method": "PUT",
+    "url": "/infra/file-config/update-master",
+    "permissions": [
+      "infra:file-config:update"
+    ]
+  },
+  {
+    "menu": 1237,
+    "page": "鏂囦欢閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\infra\\fileConfig\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/file-config/index.ts",
+    "function": "getFileConfig",
+    "method": "GET",
+    "url": "/infra/file-config/get",
+    "permissions": [
+      "infra:file-config:query"
+    ]
+  },
+  {
+    "menu": 1237,
+    "page": "鏂囦欢閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\infra\\fileConfig\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/file-config/index.ts",
+    "function": "updateFileConfig",
+    "method": "PUT",
+    "url": "/infra/file-config/update",
+    "permissions": [
+      "infra:file-config:update"
+    ]
+  },
+  {
+    "menu": 1255,
+    "page": "鏁版嵁婧愰厤缃�",
+    "source": "mom-pro2-before\\src\\views\\infra\\dataSourceConfig\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/data-source-config/index.ts",
+    "function": "getDataSourceConfigList",
+    "method": "GET",
+    "url": "/infra/data-source-config/list",
+    "permissions": [
+      "infra:data-source-config:query"
+    ]
+  },
+  {
+    "menu": 1255,
+    "page": "鏁版嵁婧愰厤缃�",
+    "source": "mom-pro2-before\\src\\views\\infra\\dataSourceConfig\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/data-source-config/index.ts",
+    "function": "getDataSourceConfig",
+    "method": "GET",
+    "url": "/infra/data-source-config/get",
+    "permissions": [
+      "infra:data-source-config:query"
+    ]
+  },
+  {
+    "menu": 1255,
+    "page": "鏁版嵁婧愰厤缃�",
+    "source": "mom-pro2-before\\src\\views\\infra\\dataSourceConfig\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/data-source-config/index.ts",
+    "function": "updateDataSourceConfig",
+    "method": "PUT",
+    "url": "/infra/data-source-config/update",
+    "permissions": [
+      "infra:data-source-config:update"
+    ]
+  },
+  {
+    "menu": 1263,
+    "page": "搴旂敤绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\oauth2\\client\\index.vue",
+    "api": "mom-pro2-before/src/api/system/oauth2/client/index.ts",
+    "function": "getOAuth2ClientPage",
+    "method": "GET",
+    "url": "/system/oauth2-client/page",
+    "permissions": [
+      "system:oauth2-client:query"
+    ]
+  },
+  {
+    "menu": 1263,
+    "page": "搴旂敤绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\oauth2\\client\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/oauth2/client/index.ts",
+    "function": "getOAuth2Client",
+    "method": "GET",
+    "url": "/system/oauth2-client/get",
+    "permissions": [
+      "system:oauth2-client:query"
+    ]
+  },
+  {
+    "menu": 1263,
+    "page": "搴旂敤绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\oauth2\\client\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/oauth2/client/index.ts",
+    "function": "updateOAuth2Client",
+    "method": "PUT",
+    "url": "/system/oauth2-client/update",
+    "permissions": [
+      "system:oauth2-client:update"
+    ]
+  },
+  {
+    "menu": 2131,
+    "page": "閭璐﹀彿",
+    "source": "mom-pro2-before\\src\\views\\system\\mail\\account\\index.vue",
+    "api": "mom-pro2-before/src/api/system/mail/account/index.ts",
+    "function": "getMailAccountPage",
+    "method": "GET",
+    "url": "/system/mail-account/page",
+    "permissions": [
+      "system:mail-account:query"
+    ]
+  },
+  {
+    "menu": 2131,
+    "page": "閭璐﹀彿",
+    "source": "mom-pro2-before\\src\\views\\system\\mail\\account\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/mail/account/index.ts",
+    "function": "getMailAccount",
+    "method": "GET",
+    "url": "/system/mail-account/get",
+    "permissions": [
+      "system:mail-account:query"
+    ]
+  },
+  {
+    "menu": 2131,
+    "page": "閭璐﹀彿",
+    "source": "mom-pro2-before\\src\\views\\system\\mail\\account\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/mail/account/index.ts",
+    "function": "updateMailAccount",
+    "method": "PUT",
+    "url": "/system/mail-account/update",
+    "permissions": [
+      "system:mail-account:update"
+    ]
+  },
+  {
+    "menu": 2136,
+    "page": "閭欢妯$増",
+    "source": "mom-pro2-before\\src\\views\\system\\mail\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/system/mail/template/index.ts",
+    "function": "deleteMailTemplate",
+    "method": "DELETE",
+    "url": "/system/mail-template/delete",
+    "permissions": [
+      "system:mail-template:delete"
+    ]
+  },
+  {
+    "menu": 2136,
+    "page": "閭欢妯$増",
+    "source": "mom-pro2-before\\src\\views\\system\\mail\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/system/mail/template/index.ts",
+    "function": "getMailTemplatePage",
+    "method": "GET",
+    "url": "/system/mail-template/page",
+    "permissions": [
+      "system:mail-template:query"
+    ]
+  },
+  {
+    "menu": 2136,
+    "page": "閭欢妯$増",
+    "source": "mom-pro2-before\\src\\views\\system\\mail\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/mail/template/index.ts",
+    "function": "getMailTemplate",
+    "method": "GET",
+    "url": "/system/mail-template/get",
+    "permissions": [
+      "system:mail-template:query"
+    ]
+  },
+  {
+    "menu": 2136,
+    "page": "閭欢妯$増",
+    "source": "mom-pro2-before\\src\\views\\system\\mail\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/mail/template/index.ts",
+    "function": "updateMailTemplate",
+    "method": "PUT",
+    "url": "/system/mail-template/update",
+    "permissions": [
+      "system:mail-template:update"
+    ]
+  },
+  {
+    "menu": 2145,
+    "page": "妯℃澘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\notify\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/system/notify/template/index.ts",
+    "function": "exportNotifyTemplate",
+    "method": "GET",
+    "url": "/system/notify-template/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2145,
+    "page": "妯℃澘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\notify\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/system/notify/template/index.ts",
+    "function": "getNotifyTemplatePage",
+    "method": "GET",
+    "url": "/system/notify-template/page",
+    "permissions": [
+      "system:notify-template:query"
+    ]
+  },
+  {
+    "menu": 2145,
+    "page": "妯℃澘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\notify\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/notify/template/index.ts",
+    "function": "getNotifyTemplate",
+    "method": "GET",
+    "url": "/system/notify-template/get",
+    "permissions": [
+      "system:notify-template:query"
+    ]
+  },
+  {
+    "menu": 2145,
+    "page": "妯℃澘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\system\\notify\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/notify/template/index.ts",
+    "function": "updateNotifyTemplate",
+    "method": "PUT",
+    "url": "/system/notify-template/update",
+    "permissions": [
+      "system:notify-template:update"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "lockCustomer",
+    "method": "PUT",
+    "url": "/crm/customer/lock",
+    "permissions": [
+      "crm:customer:update"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "putCustomerPool",
+    "method": "PUT",
+    "url": "/crm/customer/put-pool",
+    "permissions": [
+      "crm:customer:update"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "receiveCustomer",
+    "method": "PUT",
+    "url": "/crm/customer/receive",
+    "permissions": [
+      "crm:customer:receive"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "updateCustomerDealStatus",
+    "method": "PUT",
+    "url": "/crm/customer/update-deal-status",
+    "permissions": []
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/operateLog/index.ts",
+    "function": "getOperateLogPage",
+    "method": "GET",
+    "url": "/crm/operate-log/page",
+    "permissions": []
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "exportCustomer",
+    "method": "GET",
+    "url": "/crm/customer/export-excel",
+    "permissions": [
+      "crm:customer:export"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\pool\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "getCustomerPage",
+    "method": "GET",
+    "url": "/crm/customer/page",
+    "permissions": [
+      "crm:customer:query"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\data.ts",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getSimpleDeptList",
+    "method": "GET",
+    "url": "/system/dept/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/limitConfig/index.ts",
+    "function": "getCustomerLimitConfigPage",
+    "method": "GET",
+    "url": "/crm/customer-limit-config/page",
+    "permissions": [
+      "crm:customer-limit-config:query"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/limitConfig/index.ts",
+    "function": "getCustomerLimitConfig",
+    "method": "GET",
+    "url": "/crm/customer-limit-config/get",
+    "permissions": [
+      "crm:customer-limit-config:query"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/limitConfig/index.ts",
+    "function": "updateCustomerLimitConfig",
+    "method": "PUT",
+    "url": "/crm/customer-limit-config/update",
+    "permissions": [
+      "crm:customer-limit-config:update"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "getCustomer",
+    "method": "GET",
+    "url": "/crm/customer/get",
+    "permissions": [
+      "crm:customer:query"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "updateCustomer",
+    "method": "PUT",
+    "url": "/crm/customer/update",
+    "permissions": [
+      "crm:customer:update"
+    ]
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "importCustomerTemplate",
+    "method": "GET",
+    "url": "/crm/customer/get-import-template",
+    "permissions": []
+  },
+  {
+    "menu": 2391,
+    "page": "瀹㈡埛绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\poolConfig\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/poolConfig/index.ts",
+    "function": "saveCustomerPoolConfig",
+    "method": "PUT",
+    "url": "/crm/customer-pool-config/save",
+    "permissions": [
+      "crm:customer-pool-config:update"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "getContractPageByCustomer",
+    "method": "GET",
+    "url": "/crm/contract/page-by-customer",
+    "permissions": []
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\config\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/config/index.ts",
+    "function": "saveContractConfig",
+    "method": "PUT",
+    "url": "/crm/contract-config/save",
+    "permissions": [
+      "crm:contract-config:update"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\data.ts",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "getSimpleContactList",
+    "method": "GET",
+    "url": "/crm/contact/simple-all-list",
+    "permissions": [
+      "crm:contact:query"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/operateLog/index.ts",
+    "function": "getOperateLogPage",
+    "method": "GET",
+    "url": "/crm/operate-log/page",
+    "permissions": []
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "exportContract",
+    "method": "GET",
+    "url": "/crm/contract/export-excel",
+    "permissions": [
+      "crm:contract:export"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "generateSaleOrder",
+    "method": "POST",
+    "url": "/crm/contract/generate-sale-order",
+    "permissions": [
+      "crm:contract:update"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "getContractApproveProcessList",
+    "method": "GET",
+    "url": "/crm/contract/approve-process-list",
+    "permissions": [
+      "crm:contract:query"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "getContractPage",
+    "method": "GET",
+    "url": "/crm/contract/page",
+    "permissions": [
+      "crm:contract:query"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "submitContract",
+    "method": "PUT",
+    "url": "/crm/contract/submit",
+    "permissions": [
+      "crm:contract:update"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "getContract",
+    "method": "GET",
+    "url": "/crm/contract/get",
+    "permissions": [
+      "crm:contract:query"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "updateContract",
+    "method": "PUT",
+    "url": "/crm/contract/update",
+    "permissions": [
+      "crm:contract:update"
+    ]
+  },
+  {
+    "menu": 2398,
+    "page": "鍚堝悓绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "importContractTemplate",
+    "method": "GET",
+    "url": "/crm/contract/get-import-template",
+    "permissions": [
+      "crm:contract:import"
+    ]
+  },
+  {
+    "menu": 2404,
+    "page": "绾跨储绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\clue\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/clue/index.ts",
+    "function": "transformClue",
+    "method": "PUT",
+    "url": "/crm/clue/transform",
+    "permissions": [
+      "crm:clue:update"
+    ]
+  },
+  {
+    "menu": 2404,
+    "page": "绾跨储绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\clue\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/operateLog/index.ts",
+    "function": "getOperateLogPage",
+    "method": "GET",
+    "url": "/crm/operate-log/page",
+    "permissions": []
+  },
+  {
+    "menu": 2404,
+    "page": "绾跨储绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\clue\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/clue/index.ts",
+    "function": "exportClue",
+    "method": "GET",
+    "url": "/crm/clue/export-excel",
+    "permissions": [
+      "crm:clue:export"
+    ]
+  },
+  {
+    "menu": 2404,
+    "page": "绾跨储绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\clue\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/clue/index.ts",
+    "function": "getCluePage",
+    "method": "GET",
+    "url": "/crm/clue/page",
+    "permissions": [
+      "crm:clue:query"
+    ]
+  },
+  {
+    "menu": 2404,
+    "page": "绾跨储绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\clue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/clue/index.ts",
+    "function": "getClue",
+    "method": "GET",
+    "url": "/crm/clue/get",
+    "permissions": [
+      "crm:clue:query"
+    ]
+  },
+  {
+    "menu": 2404,
+    "page": "绾跨储绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\clue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/clue/index.ts",
+    "function": "updateClue",
+    "method": "PUT",
+    "url": "/crm/clue/update",
+    "permissions": [
+      "crm:clue:update"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/business/index.ts",
+    "function": "getBusinessPageByCustomer",
+    "method": "GET",
+    "url": "/crm/business/page-by-customer",
+    "permissions": []
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "createContactBusinessList",
+    "method": "POST",
+    "url": "/crm/contact/create-business-list",
+    "permissions": [
+      "crm:contact:create-business"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "deleteContactBusinessList",
+    "method": "DELETE",
+    "url": "/crm/contact/delete-business-list",
+    "permissions": [
+      "crm:contact:delete-business"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/operateLog/index.ts",
+    "function": "getOperateLogPage",
+    "method": "GET",
+    "url": "/crm/operate-log/page",
+    "permissions": []
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/business/index.ts",
+    "function": "exportBusiness",
+    "method": "GET",
+    "url": "/crm/business/export-excel",
+    "permissions": [
+      "crm:business:export"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/business/index.ts",
+    "function": "getBusinessPage",
+    "method": "GET",
+    "url": "/crm/business/page",
+    "permissions": [
+      "crm:business:query"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/business/index.ts",
+    "function": "getBusiness",
+    "method": "GET",
+    "url": "/crm/business/get",
+    "permissions": [
+      "crm:business:query"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/business/index.ts",
+    "function": "updateBusiness",
+    "method": "PUT",
+    "url": "/crm/business/update",
+    "permissions": [
+      "crm:business:update"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\status\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/business/status/index.ts",
+    "function": "getBusinessStatusPage",
+    "method": "GET",
+    "url": "/crm/business-status/page",
+    "permissions": [
+      "crm:business-status:query"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\status\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/business/status/index.ts",
+    "function": "getBusinessStatus",
+    "method": "GET",
+    "url": "/crm/business-status/get",
+    "permissions": [
+      "crm:business-status:query"
+    ]
+  },
+  {
+    "menu": 2410,
+    "page": "鍟嗘満绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\status\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/business/status/index.ts",
+    "function": "updateBusinessStatus",
+    "method": "PUT",
+    "url": "/crm/business-status/update",
+    "permissions": [
+      "crm:business-status:update"
+    ]
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "deleteBusinessContactList",
+    "method": "DELETE",
+    "url": "/crm/contact/delete-business-list2",
+    "permissions": [
+      "crm:contact:delete-business"
+    ]
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "getContactPageByBusiness",
+    "method": "GET",
+    "url": "/crm/contact/page-by-business",
+    "permissions": []
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "getContactPageByCustomer",
+    "method": "GET",
+    "url": "/crm/contact/page-by-customer",
+    "permissions": []
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/operateLog/index.ts",
+    "function": "getOperateLogPage",
+    "method": "GET",
+    "url": "/crm/operate-log/page",
+    "permissions": []
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "exportContact",
+    "method": "GET",
+    "url": "/crm/contact/export-excel",
+    "permissions": [
+      "crm:contact:export"
+    ]
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "getContactPage",
+    "method": "GET",
+    "url": "/crm/contact/page",
+    "permissions": [
+      "crm:contact:query"
+    ]
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "getContact",
+    "method": "GET",
+    "url": "/crm/contact/get",
+    "permissions": [
+      "crm:contact:query"
+    ]
+  },
+  {
+    "menu": 2416,
+    "page": "鑱旂郴浜虹鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\contact\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "updateContact",
+    "method": "PUT",
+    "url": "/crm/contact/update",
+    "permissions": [
+      "crm:contact:update"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "getReceivablePageByCustomer",
+    "method": "GET",
+    "url": "/crm/receivable/page-by-customer",
+    "permissions": []
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\data.ts",
+    "api": "mom-pro2-before/src/api/crm/invoice/index.ts",
+    "function": "getInvoiceSimpleList",
+    "method": "GET",
+    "url": "/crm/invoice/simple-list",
+    "permissions": [
+      "crm:invoice:query"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "getReceivablePlan",
+    "method": "GET",
+    "url": "/crm/receivable-plan/get",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\data.ts",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "getReceivablePlanSimpleList",
+    "method": "GET",
+    "url": "/crm/receivable-plan/simple-list",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "getReceivable",
+    "method": "GET",
+    "url": "/crm/receivable/get",
+    "permissions": [
+      "crm:receivable:query"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "exportReceivable",
+    "method": "GET",
+    "url": "/crm/receivable/export-excel",
+    "permissions": [
+      "crm:receivable:export"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "getReceivablePage",
+    "method": "GET",
+    "url": "/crm/receivable/page",
+    "permissions": [
+      "crm:receivable:query"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "updateReceivableStatus",
+    "method": "PUT",
+    "url": "/crm/receivable/update-status",
+    "permissions": [
+      "crm:receivable:update"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "createReceivable",
+    "method": "POST",
+    "url": "/crm/receivable/create",
+    "permissions": [
+      "crm:receivable:create"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "updateReceivable",
+    "method": "PUT",
+    "url": "/crm/receivable/update",
+    "permissions": [
+      "crm:receivable:update"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "getReceivablePlanPageByCustomer",
+    "method": "GET",
+    "url": "/crm/receivable-plan/page-by-customer",
+    "permissions": []
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "exportReceivablePlan",
+    "method": "GET",
+    "url": "/crm/receivable-plan/export-excel",
+    "permissions": [
+      "crm:receivable-plan:export"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "getReceivablePlanPage",
+    "method": "GET",
+    "url": "/crm/receivable-plan/page",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ]
+  },
+  {
+    "menu": 2422,
+    "page": "鍥炴绠$悊",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "updateReceivablePlan",
+    "method": "PUT",
+    "url": "/crm/receivable-plan/update",
+    "permissions": [
+      "crm:receivable-plan:update"
+    ]
+  },
+  {
+    "menu": 2428,
+    "page": "鍥炴璁″垝",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\components\\detail-list.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "getReceivablePlanPageByCustomer",
+    "method": "GET",
+    "url": "/crm/receivable-plan/page-by-customer",
+    "permissions": []
+  },
+  {
+    "menu": 2428,
+    "page": "鍥炴璁″垝",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2428,
+    "page": "鍥炴璁″垝",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "getReceivablePlan",
+    "method": "GET",
+    "url": "/crm/receivable-plan/get",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ]
+  },
+  {
+    "menu": 2428,
+    "page": "鍥炴璁″垝",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "exportReceivablePlan",
+    "method": "GET",
+    "url": "/crm/receivable-plan/export-excel",
+    "permissions": [
+      "crm:receivable-plan:export"
+    ]
+  },
+  {
+    "menu": 2428,
+    "page": "鍥炴璁″垝",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "getReceivablePlanPage",
+    "method": "GET",
+    "url": "/crm/receivable-plan/page",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ]
+  },
+  {
+    "menu": 2428,
+    "page": "鍥炴璁″垝",
+    "source": "mom-pro2-before\\src\\views\\crm\\receivable\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "updateReceivablePlan",
+    "method": "PUT",
+    "url": "/crm/receivable-plan/update",
+    "permissions": [
+      "crm:receivable-plan:update"
+    ]
+  },
+  {
+    "menu": 2448,
+    "page": "涓夋柟搴旂敤",
+    "source": "mom-pro2-before\\src\\views\\system\\social\\client\\index.vue",
+    "api": "mom-pro2-before/src/api/system/social/client/index.ts",
+    "function": "getSocialClientPage",
+    "method": "GET",
+    "url": "/system/social-client/page",
+    "permissions": [
+      "system:social-client:query"
+    ]
+  },
+  {
+    "menu": 2448,
+    "page": "涓夋柟搴旂敤",
+    "source": "mom-pro2-before\\src\\views\\system\\social\\client\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/social/client/index.ts",
+    "function": "getSocialClient",
+    "method": "GET",
+    "url": "/system/social-client/get",
+    "permissions": [
+      "system:social-client:query"
+    ]
+  },
+  {
+    "menu": 2448,
+    "page": "涓夋柟搴旂敤",
+    "source": "mom-pro2-before\\src\\views\\system\\social\\client\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/system/social/client/index.ts",
+    "function": "updateSocialClient",
+    "method": "PUT",
+    "url": "/system/social-client/update",
+    "permissions": [
+      "system:social-client:update"
+    ]
+  },
+  {
+    "menu": 2472,
+    "page": "涓诲瓙琛紙鍐呭祵锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\inner\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/inner/index.ts",
+    "function": "exportDemo03Student",
+    "method": "GET",
+    "url": "/infra/demo03-student-inner/export-excel",
+    "permissions": [
+      "infra:demo03-student:export"
+    ]
+  },
+  {
+    "menu": 2472,
+    "page": "涓诲瓙琛紙鍐呭祵锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\inner\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/inner/index.ts",
+    "function": "getDemo03StudentPage",
+    "method": "GET",
+    "url": "/infra/demo03-student-inner/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2472,
+    "page": "涓诲瓙琛紙鍐呭祵锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\inner\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/inner/index.ts",
+    "function": "getDemo03Student",
+    "method": "GET",
+    "url": "/infra/demo03-student-inner/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2472,
+    "page": "涓诲瓙琛紙鍐呭祵锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\inner\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/inner/index.ts",
+    "function": "updateDemo03Student",
+    "method": "PUT",
+    "url": "/infra/demo03-student-inner/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ]
+  },
+  {
+    "menu": 2478,
+    "page": "鍗曡〃锛堝鍒犳敼鏌ワ級",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo01\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo01/index.ts",
+    "function": "exportDemo01Contact",
+    "method": "GET",
+    "url": "/infra/demo01-contact/export-excel",
+    "permissions": [
+      "infra:demo01-contact:export"
+    ]
+  },
+  {
+    "menu": 2478,
+    "page": "鍗曡〃锛堝鍒犳敼鏌ワ級",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo01\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo01/index.ts",
+    "function": "getDemo01ContactPage",
+    "method": "GET",
+    "url": "/infra/demo01-contact/page",
+    "permissions": [
+      "infra:demo01-contact:query"
+    ]
+  },
+  {
+    "menu": 2478,
+    "page": "鍗曡〃锛堝鍒犳敼鏌ワ級",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo01\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo01/index.ts",
+    "function": "getDemo01Contact",
+    "method": "GET",
+    "url": "/infra/demo01-contact/get",
+    "permissions": [
+      "infra:demo01-contact:query"
+    ]
+  },
+  {
+    "menu": 2478,
+    "page": "鍗曡〃锛堝鍒犳敼鏌ワ級",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo01\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo01/index.ts",
+    "function": "updateDemo01Contact",
+    "method": "PUT",
+    "url": "/infra/demo01-contact/update",
+    "permissions": [
+      "infra:demo01-contact:update"
+    ]
+  },
+  {
+    "menu": 2484,
+    "page": "鏍戣〃锛堝鍒犳敼鏌ワ級",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo02\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo02/index.ts",
+    "function": "exportDemo02Category",
+    "method": "GET",
+    "url": "/infra/demo02-category/export-excel",
+    "permissions": [
+      "infra:demo02-category:export"
+    ]
+  },
+  {
+    "menu": 2484,
+    "page": "鏍戣〃锛堝鍒犳敼鏌ワ級",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo02\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo02/index.ts",
+    "function": "getDemo02CategoryList",
+    "method": "GET",
+    "url": "/infra/demo02-category/list",
+    "permissions": [
+      "infra:demo02-category:query"
+    ]
+  },
+  {
+    "menu": 2484,
+    "page": "鏍戣〃锛堝鍒犳敼鏌ワ級",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo02\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo02/index.ts",
+    "function": "getDemo02Category",
+    "method": "GET",
+    "url": "/infra/demo02-category/get",
+    "permissions": [
+      "infra:demo02-category:query"
+    ]
+  },
+  {
+    "menu": 2484,
+    "page": "鏍戣〃锛堝鍒犳敼鏌ワ級",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo02\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo02/index.ts",
+    "function": "updateDemo02Category",
+    "method": "PUT",
+    "url": "/infra/demo02-category/update",
+    "permissions": [
+      "infra:demo02-category:update"
+    ]
+  },
+  {
+    "menu": 2490,
+    "page": "涓诲瓙琛紙鏍囧噯锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\normal\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/normal/index.ts",
+    "function": "exportDemo03Student",
+    "method": "GET",
+    "url": "/infra/demo03-student-normal/export-excel",
+    "permissions": [
+      "infra:demo03-student:export"
+    ]
+  },
+  {
+    "menu": 2490,
+    "page": "涓诲瓙琛紙鏍囧噯锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\normal\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/normal/index.ts",
+    "function": "getDemo03StudentPage",
+    "method": "GET",
+    "url": "/infra/demo03-student-normal/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2490,
+    "page": "涓诲瓙琛紙鏍囧噯锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\normal\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/normal/index.ts",
+    "function": "getDemo03Student",
+    "method": "GET",
+    "url": "/infra/demo03-student-normal/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2490,
+    "page": "涓诲瓙琛紙鏍囧噯锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\normal\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/normal/index.ts",
+    "function": "updateDemo03Student",
+    "method": "PUT",
+    "url": "/infra/demo03-student-normal/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "exportDemo03Student",
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/export-excel",
+    "permissions": [
+      "infra:demo03-student:export"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\index.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "getDemo03StudentPage",
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\modules\\demo03-course-form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "getDemo03Course",
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/demo03-course/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\modules\\demo03-course-form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "updateDemo03Course",
+    "method": "PUT",
+    "url": "/infra/demo03-student-erp/demo03-course/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\modules\\demo03-course-list.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "getDemo03CoursePage",
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/demo03-course/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\modules\\demo03-grade-form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "getDemo03Grade",
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/demo03-grade/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\modules\\demo03-grade-form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "updateDemo03Grade",
+    "method": "PUT",
+    "url": "/infra/demo03-student-erp/demo03-grade/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\modules\\demo03-grade-list.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "getDemo03GradePage",
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/demo03-grade/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "getDemo03Student",
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ]
+  },
+  {
+    "menu": 2497,
+    "page": "涓诲瓙琛紙ERP锛�",
+    "source": "mom-pro2-before\\src\\views\\infra\\demo\\demo03\\erp\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/infra/demo/demo03/erp/index.ts",
+    "function": "updateDemo03Student",
+    "method": "PUT",
+    "url": "/infra/demo03-student-erp/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ]
+  },
+  {
+    "menu": 2516,
+    "page": "瀹㈡埛鍏捣閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\poolConfig\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/poolConfig/index.ts",
+    "function": "saveCustomerPoolConfig",
+    "method": "PUT",
+    "url": "/crm/customer-pool-config/save",
+    "permissions": [
+      "crm:customer-pool-config:update"
+    ]
+  },
+  {
+    "menu": 2518,
+    "page": "瀹㈡埛闄愬埗閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\data.ts",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getSimpleDeptList",
+    "method": "GET",
+    "url": "/system/dept/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2518,
+    "page": "瀹㈡埛闄愬埗閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2518,
+    "page": "瀹㈡埛闄愬埗閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/limitConfig/index.ts",
+    "function": "getCustomerLimitConfigPage",
+    "method": "GET",
+    "url": "/crm/customer-limit-config/page",
+    "permissions": [
+      "crm:customer-limit-config:query"
+    ]
+  },
+  {
+    "menu": 2518,
+    "page": "瀹㈡埛闄愬埗閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/limitConfig/index.ts",
+    "function": "getCustomerLimitConfig",
+    "method": "GET",
+    "url": "/crm/customer-limit-config/get",
+    "permissions": [
+      "crm:customer-limit-config:query"
+    ]
+  },
+  {
+    "menu": 2518,
+    "page": "瀹㈡埛闄愬埗閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\limitConfig\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/limitConfig/index.ts",
+    "function": "updateCustomerLimitConfig",
+    "method": "PUT",
+    "url": "/crm/customer-limit-config/update",
+    "permissions": [
+      "crm:customer-limit-config:update"
+    ]
+  },
+  {
+    "menu": 2546,
+    "page": "瀹㈡埛鍏捣",
+    "source": "mom-pro2-before\\src\\views\\crm\\customer\\pool\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "getCustomerPage",
+    "method": "GET",
+    "url": "/crm/customer/page",
+    "permissions": [
+      "crm:customer:query"
+    ]
+  },
+  {
+    "menu": 2565,
+    "page": "浜у搧淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\product\\data.ts",
+    "api": "mom-pro2-before/src/api/erp/product/unit/index.ts",
+    "function": "getProductUnitSimpleList",
+    "method": "GET",
+    "url": "/erp/product-unit/simple-list",
+    "permissions": null
+  },
+  {
+    "menu": 2565,
+    "page": "浜у搧淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\product\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/product/product/index.ts",
+    "function": "exportProduct",
+    "method": "GET",
+    "url": "/erp/product/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2565,
+    "page": "浜у搧淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\product\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/product/product/index.ts",
+    "function": "getProductPage",
+    "method": "GET",
+    "url": "/erp/product/page",
+    "permissions": null
+  },
+  {
+    "menu": 2565,
+    "page": "浜у搧淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\product\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/product/product/index.ts",
+    "function": "getProduct",
+    "method": "GET",
+    "url": "/erp/product/get",
+    "permissions": null
+  },
+  {
+    "menu": 2565,
+    "page": "浜у搧淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\product\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/product/product/index.ts",
+    "function": "updateProduct",
+    "method": "PUT",
+    "url": "/erp/product/update",
+    "permissions": null
+  },
+  {
+    "menu": 2571,
+    "page": "浜у搧鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\category\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/product/category/index.ts",
+    "function": "exportProductCategory",
+    "method": "GET",
+    "url": "/erp/product-category/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2571,
+    "page": "浜у搧鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\category\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/product/category/index.ts",
+    "function": "getProductCategoryList",
+    "method": "GET",
+    "url": "/erp/product-category/list",
+    "permissions": null
+  },
+  {
+    "menu": 2571,
+    "page": "浜у搧鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\category\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/product/category/index.ts",
+    "function": "getProductCategory",
+    "method": "GET",
+    "url": "/erp/product-category/get",
+    "permissions": null
+  },
+  {
+    "menu": 2571,
+    "page": "浜у搧鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\category\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/product/category/index.ts",
+    "function": "updateProductCategory",
+    "method": "PUT",
+    "url": "/erp/product-category/update",
+    "permissions": null
+  },
+  {
+    "menu": 2577,
+    "page": "浜у搧鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\unit\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/product/unit/index.ts",
+    "function": "exportProductUnit",
+    "method": "GET",
+    "url": "/erp/product-unit/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2577,
+    "page": "浜у搧鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\unit\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/product/unit/index.ts",
+    "function": "getProductUnitPage",
+    "method": "GET",
+    "url": "/erp/product-unit/page",
+    "permissions": null
+  },
+  {
+    "menu": 2577,
+    "page": "浜у搧鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\unit\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/product/unit/index.ts",
+    "function": "getProductUnit",
+    "method": "GET",
+    "url": "/erp/product-unit/get",
+    "permissions": null
+  },
+  {
+    "menu": 2577,
+    "page": "浜у搧鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\erp\\product\\unit\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/product/unit/index.ts",
+    "function": "updateProductUnit",
+    "method": "PUT",
+    "url": "/erp/product-unit/update",
+    "permissions": null
+  },
+  {
+    "menu": 2584,
+    "page": "浠撳簱淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\warehouse\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "exportWarehouse",
+    "method": "GET",
+    "url": "/erp/warehouse/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2584,
+    "page": "浠撳簱淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\warehouse\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "getWarehousePage",
+    "method": "GET",
+    "url": "/erp/warehouse/page",
+    "permissions": null
+  },
+  {
+    "menu": 2584,
+    "page": "浠撳簱淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\warehouse\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "updateWarehouseDefaultStatus",
+    "method": "PUT",
+    "url": "/erp/warehouse/update-default-status",
+    "permissions": null
+  },
+  {
+    "menu": 2584,
+    "page": "浠撳簱淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\warehouse\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "getWarehouse",
+    "method": "GET",
+    "url": "/erp/warehouse/get",
+    "permissions": null
+  },
+  {
+    "menu": 2584,
+    "page": "浠撳簱淇℃伅",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\warehouse\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "updateWarehouse",
+    "method": "PUT",
+    "url": "/erp/warehouse/update",
+    "permissions": null
+  },
+  {
+    "menu": 2590,
+    "page": "浜у搧搴撳瓨",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\stock\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/stock/index.ts",
+    "function": "getStockPage",
+    "method": "GET",
+    "url": "/erp/stock/page",
+    "permissions": null
+  },
+  {
+    "menu": 2593,
+    "page": "鍑哄叆搴撴槑缁�",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\record\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/record/index.ts",
+    "function": "getStockRecordPage",
+    "method": "GET",
+    "url": "/erp/stock-record/page",
+    "permissions": null
+  },
+  {
+    "menu": 2596,
+    "page": "鍏跺畠鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\in\\modules\\item-form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/erp/warehouse/simple-list",
+    "permissions": null
+  },
+  {
+    "menu": 2596,
+    "page": "鍏跺畠鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\in\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2596,
+    "page": "鍏跺畠鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\in\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/in/index.ts",
+    "function": "exportStockIn",
+    "method": "GET",
+    "url": "/erp/stock-in/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2596,
+    "page": "鍏跺畠鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\in\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/in/index.ts",
+    "function": "getStockInPage",
+    "method": "GET",
+    "url": "/erp/stock-in/page",
+    "permissions": null
+  },
+  {
+    "menu": 2596,
+    "page": "鍏跺畠鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\in\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/in/index.ts",
+    "function": "updateStockInStatus",
+    "method": "PUT",
+    "url": "/erp/stock-in/update-status",
+    "permissions": null
+  },
+  {
+    "menu": 2596,
+    "page": "鍏跺畠鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\in\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/in/index.ts",
+    "function": "getStockIn",
+    "method": "GET",
+    "url": "/erp/stock-in/get",
+    "permissions": null
+  },
+  {
+    "menu": 2596,
+    "page": "鍏跺畠鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\in\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/in/index.ts",
+    "function": "updateStockIn",
+    "method": "PUT",
+    "url": "/erp/stock-in/update",
+    "permissions": null
+  },
+  {
+    "menu": 2610,
+    "page": "鍏跺畠鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\out\\modules\\item-form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/erp/warehouse/simple-list",
+    "permissions": null
+  },
+  {
+    "menu": 2610,
+    "page": "鍏跺畠鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\out\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2610,
+    "page": "鍏跺畠鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\out\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/out/index.ts",
+    "function": "exportStockOut",
+    "method": "GET",
+    "url": "/erp/stock-out/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2610,
+    "page": "鍏跺畠鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\out\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/out/index.ts",
+    "function": "getStockOutPage",
+    "method": "GET",
+    "url": "/erp/stock-out/page",
+    "permissions": null
+  },
+  {
+    "menu": 2610,
+    "page": "鍏跺畠鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\out\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/out/index.ts",
+    "function": "updateStockOutStatus",
+    "method": "PUT",
+    "url": "/erp/stock-out/update-status",
+    "permissions": null
+  },
+  {
+    "menu": 2610,
+    "page": "鍏跺畠鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\out\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/out/index.ts",
+    "function": "getStockOut",
+    "method": "GET",
+    "url": "/erp/stock-out/get",
+    "permissions": null
+  },
+  {
+    "menu": 2610,
+    "page": "鍏跺畠鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\out\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/out/index.ts",
+    "function": "updateStockOut",
+    "method": "PUT",
+    "url": "/erp/stock-out/update",
+    "permissions": null
+  },
+  {
+    "menu": 2624,
+    "page": "搴撳瓨璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\move\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2624,
+    "page": "搴撳瓨璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\move\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/move/index.ts",
+    "function": "exportStockMove",
+    "method": "GET",
+    "url": "/erp/stock-move/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2624,
+    "page": "搴撳瓨璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\move\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/move/index.ts",
+    "function": "getStockMovePage",
+    "method": "GET",
+    "url": "/erp/stock-move/page",
+    "permissions": null
+  },
+  {
+    "menu": 2624,
+    "page": "搴撳瓨璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\move\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/move/index.ts",
+    "function": "updateStockMoveStatus",
+    "method": "PUT",
+    "url": "/erp/stock-move/update-status",
+    "permissions": null
+  },
+  {
+    "menu": 2624,
+    "page": "搴撳瓨璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\move\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/move/index.ts",
+    "function": "getStockMove",
+    "method": "GET",
+    "url": "/erp/stock-move/get",
+    "permissions": null
+  },
+  {
+    "menu": 2624,
+    "page": "搴撳瓨璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\move\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/move/index.ts",
+    "function": "updateStockMove",
+    "method": "PUT",
+    "url": "/erp/stock-move/update",
+    "permissions": null
+  },
+  {
+    "menu": 2624,
+    "page": "搴撳瓨璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\move\\modules\\item-form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/erp/warehouse/simple-list",
+    "permissions": null
+  },
+  {
+    "menu": 2631,
+    "page": "搴撳瓨鐩樼偣",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\check\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2631,
+    "page": "搴撳瓨鐩樼偣",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\check\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/check/index.ts",
+    "function": "exportStockCheck",
+    "method": "GET",
+    "url": "/erp/stock-check/export-excel",
+    "permissions": null
+  },
+  {
+    "menu": 2631,
+    "page": "搴撳瓨鐩樼偣",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\check\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/check/index.ts",
+    "function": "getStockCheckPage",
+    "method": "GET",
+    "url": "/erp/stock-check/page",
+    "permissions": null
+  },
+  {
+    "menu": 2631,
+    "page": "搴撳瓨鐩樼偣",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\check\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/check/index.ts",
+    "function": "updateStockCheckStatus",
+    "method": "PUT",
+    "url": "/erp/stock-check/update-status",
+    "permissions": null
+  },
+  {
+    "menu": 2631,
+    "page": "搴撳瓨鐩樼偣",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\check\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/check/index.ts",
+    "function": "getStockCheck",
+    "method": "GET",
+    "url": "/erp/stock-check/get",
+    "permissions": null
+  },
+  {
+    "menu": 2631,
+    "page": "搴撳瓨鐩樼偣",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\check\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/check/index.ts",
+    "function": "updateStockCheck",
+    "method": "PUT",
+    "url": "/erp/stock-check/update",
+    "permissions": null
+  },
+  {
+    "menu": 2631,
+    "page": "搴撳瓨鐩樼偣",
+    "source": "mom-pro2-before\\src\\views\\erp\\stock\\check\\modules\\item-form.vue",
+    "api": "mom-pro2-before/src/api/erp/stock/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/erp/warehouse/simple-list",
+    "permissions": null
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\modules\\print.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "deleteSaleOrder",
+    "method": "DELETE",
+    "url": "/erp/sale-order/delete",
+    "permissions": [
+      "erp:sale-order:delete"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "enableSaleOrder",
+    "method": "PUT",
+    "url": "/erp/sale-order/enable",
+    "permissions": [
+      "erp:sale-order:enable"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "exportSaleOrder",
+    "method": "GET",
+    "url": "/erp/sale-order/export-excel",
+    "permissions": [
+      "erp:sale-order:export"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "getSaleOrderApproveProcessList",
+    "method": "GET",
+    "url": "/erp/sale-order/approve-process-list",
+    "permissions": [
+      "erp:sale-order:query"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "getSaleOrderPage",
+    "method": "GET",
+    "url": "/erp/sale-order/page",
+    "permissions": [
+      "erp:sale-order:query"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "submitSaleOrder",
+    "method": "POST",
+    "url": "/erp/sale-order/submit",
+    "permissions": [
+      "erp:sale-order:update-status"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/index.ts",
+    "function": "generateFromSaleOrder",
+    "method": "POST",
+    "url": "/mes/wm/sales-notice/generate-from-sale-order",
+    "permissions": [
+      "mes:wm-sales-notice:create"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "createSaleOrder",
+    "method": "POST",
+    "url": "/erp/sale-order/create",
+    "permissions": [
+      "erp:sale-order:create"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\modules\\print.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "getSaleOrder",
+    "method": "GET",
+    "url": "/erp/sale-order/get",
+    "permissions": [
+      "erp:sale-order:query"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "updateSaleOrder",
+    "method": "PUT",
+    "url": "/erp/sale-order/update",
+    "permissions": [
+      "erp:sale-order:update"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "importSaleOrderTemplate",
+    "method": "GET",
+    "url": "/erp/sale-order/get-import-template",
+    "permissions": [
+      "erp:sale-order:import"
+    ]
+  },
+  {
+    "menu": 2638,
+    "page": "閿�鍞鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\sale\\order\\modules\\print.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/account/index.ts",
+    "function": "getAccountSimpleList",
+    "method": "GET",
+    "url": "/erp/account/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2646,
+    "page": "缁撶畻璐︽埛",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\account\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/account/index.ts",
+    "function": "exportAccount",
+    "method": "GET",
+    "url": "/erp/account/export-excel",
+    "permissions": [
+      "erp:account:export"
+    ]
+  },
+  {
+    "menu": 2646,
+    "page": "缁撶畻璐︽埛",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\account\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/account/index.ts",
+    "function": "getAccountPage",
+    "method": "GET",
+    "url": "/erp/account/page",
+    "permissions": [
+      "erp:account:query"
+    ]
+  },
+  {
+    "menu": 2646,
+    "page": "缁撶畻璐︽埛",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\account\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/account/index.ts",
+    "function": "updateAccountDefaultStatus",
+    "method": "PUT",
+    "url": "/erp/account/update-default-status",
+    "permissions": []
+  },
+  {
+    "menu": 2646,
+    "page": "缁撶畻璐︽埛",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\account\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/account/index.ts",
+    "function": "getAccount",
+    "method": "GET",
+    "url": "/erp/account/get",
+    "permissions": [
+      "erp:account:query"
+    ]
+  },
+  {
+    "menu": 2646,
+    "page": "缁撶畻璐︽埛",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\account\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/account/index.ts",
+    "function": "updateAccount",
+    "method": "PUT",
+    "url": "/erp/account/update",
+    "permissions": [
+      "erp:account:update"
+    ]
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\data.ts",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "deletePurchaseOrder",
+    "method": "DELETE",
+    "url": "/erp/purchase-order/delete",
+    "permissions": [
+      "erp:purchase-order:delete"
+    ]
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "exportPurchaseOrder",
+    "method": "GET",
+    "url": "/erp/purchase-order/export-excel",
+    "permissions": [
+      "erp:purchase-order:export"
+    ]
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "getPurchaseOrderPage",
+    "method": "GET",
+    "url": "/erp/purchase-order/page",
+    "permissions": [
+      "erp:purchase-order:query"
+    ]
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "confirmReceipt",
+    "method": "POST",
+    "url": "/erp/purchase-order/confirm-receipt",
+    "permissions": [
+      "erp:purchase-order:confirm-receipt"
+    ]
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "createPurchaseOrder",
+    "method": "POST",
+    "url": "/erp/purchase-order/create",
+    "permissions": [
+      "erp:purchase-order:create"
+    ]
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "getPurchaseOrder",
+    "method": "GET",
+    "url": "/erp/purchase-order/get",
+    "permissions": [
+      "erp:purchase-order:query"
+    ]
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "updatePurchaseOrder",
+    "method": "PUT",
+    "url": "/erp/purchase-order/update",
+    "permissions": [
+      "erp:purchase-order:update"
+    ]
+  },
+  {
+    "menu": 2666,
+    "page": "閲囪喘璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\order\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "importPurchaseOrderTemplate",
+    "method": "GET",
+    "url": "/erp/purchase-order/get-import-template",
+    "permissions": [
+      "erp:purchase-order:import"
+    ]
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/invoice/index.ts",
+    "function": "getPurchaseInvoiceSimpleList",
+    "method": "GET",
+    "url": "/erp/purchase-invoice/simple-list",
+    "permissions": [
+      "erp:purchase-invoice:query"
+    ]
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\data.ts",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "exportFinancePayment",
+    "method": "GET",
+    "url": "/erp/finance-payment/export-excel",
+    "permissions": [
+      "erp:finance-payment:export"
+    ]
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "getFinancePaymentApproveProcessList",
+    "method": "GET",
+    "url": "/erp/finance-payment/approve-process-list",
+    "permissions": [
+      "erp:finance-payment:query"
+    ]
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "getFinancePaymentPage",
+    "method": "GET",
+    "url": "/erp/finance-payment/page",
+    "permissions": [
+      "erp:finance-payment:query"
+    ]
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "createFinancePayment",
+    "method": "POST",
+    "url": "/erp/finance-payment/create",
+    "permissions": [
+      "erp:finance-payment:create"
+    ]
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "getFinancePayment",
+    "method": "GET",
+    "url": "/erp/finance-payment/get",
+    "permissions": [
+      "erp:finance-payment:query"
+    ]
+  },
+  {
+    "menu": 2687,
+    "page": "浠樻鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "updateFinancePayment",
+    "method": "PUT",
+    "url": "/erp/finance-payment/update",
+    "permissions": [
+      "erp:finance-payment:update"
+    ]
+  },
+  {
+    "menu": 2694,
+    "page": "鏀舵鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\receipt\\data.ts",
+    "api": "mom-pro2-before/src/api/erp/sale/customer/index.ts",
+    "function": "getCustomerSimpleList",
+    "method": "GET",
+    "url": "/erp/customer/simple-list",
+    "permissions": null
+  },
+  {
+    "menu": 2694,
+    "page": "鏀舵鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\receipt\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2694,
+    "page": "鏀舵鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\receipt\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/receipt/index.ts",
+    "function": "exportFinanceReceipt",
+    "method": "GET",
+    "url": "/erp/finance-receipt/export-excel",
+    "permissions": [
+      "erp:finance-receipt:export"
+    ]
+  },
+  {
+    "menu": 2694,
+    "page": "鏀舵鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\receipt\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/receipt/index.ts",
+    "function": "getFinanceReceiptPage",
+    "method": "GET",
+    "url": "/erp/finance-receipt/page",
+    "permissions": [
+      "erp:finance-receipt:query"
+    ]
+  },
+  {
+    "menu": 2694,
+    "page": "鏀舵鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\receipt\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/receipt/index.ts",
+    "function": "updateFinanceReceiptStatus",
+    "method": "PUT",
+    "url": "/erp/finance-receipt/update-status",
+    "permissions": [
+      "erp:finance-receipt:update-status"
+    ]
+  },
+  {
+    "menu": 2694,
+    "page": "鏀舵鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\receipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/receipt/index.ts",
+    "function": "createFinanceReceipt",
+    "method": "POST",
+    "url": "/erp/finance-receipt/create",
+    "permissions": [
+      "erp:finance-receipt:create"
+    ]
+  },
+  {
+    "menu": 2694,
+    "page": "鏀舵鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\receipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/receipt/index.ts",
+    "function": "getFinanceReceipt",
+    "method": "GET",
+    "url": "/erp/finance-receipt/get",
+    "permissions": [
+      "erp:finance-receipt:query"
+    ]
+  },
+  {
+    "menu": 2694,
+    "page": "鏀舵鍗�",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\receipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/receipt/index.ts",
+    "function": "updateFinanceReceipt",
+    "method": "PUT",
+    "url": "/erp/finance-receipt/update",
+    "permissions": [
+      "erp:finance-receipt:update"
+    ]
+  },
+  {
+    "menu": 2701,
+    "page": "寰呭姙浜嬮」",
+    "source": "mom-pro2-before\\src\\views\\crm\\backlog\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "getAuditContractCount",
+    "method": "GET",
+    "url": "/crm/contract/audit-count",
+    "permissions": [
+      "crm:contract:query"
+    ]
+  },
+  {
+    "menu": 2701,
+    "page": "寰呭姙浜嬮」",
+    "source": "mom-pro2-before\\src\\views\\crm\\backlog\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/index.ts",
+    "function": "getRemindContractCount",
+    "method": "GET",
+    "url": "/crm/contract/remind-count",
+    "permissions": [
+      "crm:contract:query"
+    ]
+  },
+  {
+    "menu": 2701,
+    "page": "寰呭姙浜嬮」",
+    "source": "mom-pro2-before\\src\\views\\crm\\backlog\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "getFollowCustomerCount",
+    "method": "GET",
+    "url": "/crm/customer/follow-count",
+    "permissions": [
+      "crm:customer:query"
+    ]
+  },
+  {
+    "menu": 2701,
+    "page": "寰呭姙浜嬮」",
+    "source": "mom-pro2-before\\src\\views\\crm\\backlog\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "getPutPoolRemindCustomerCount",
+    "method": "GET",
+    "url": "/crm/customer/put-pool-remind-count",
+    "permissions": [
+      "crm:customer:query"
+    ]
+  },
+  {
+    "menu": 2701,
+    "page": "寰呭姙浜嬮」",
+    "source": "mom-pro2-before\\src\\views\\crm\\backlog\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/customer/index.ts",
+    "function": "getTodayContactCustomerCount",
+    "method": "GET",
+    "url": "/crm/customer/today-contact-count",
+    "permissions": [
+      "crm:customer:query"
+    ]
+  },
+  {
+    "menu": 2701,
+    "page": "寰呭姙浜嬮」",
+    "source": "mom-pro2-before\\src\\views\\crm\\backlog\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "getAuditReceivableCount",
+    "method": "GET",
+    "url": "/crm/receivable/audit-count",
+    "permissions": [
+      "crm:receivable:query"
+    ]
+  },
+  {
+    "menu": 2701,
+    "page": "寰呭姙浜嬮」",
+    "source": "mom-pro2-before\\src\\views\\crm\\backlog\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/plan/index.ts",
+    "function": "getReceivablePlanRemindCount",
+    "method": "GET",
+    "url": "/crm/receivable-plan/remind-count",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ]
+  },
+  {
+    "menu": 2701,
+    "page": "寰呭姙浜嬮」",
+    "source": "mom-pro2-before\\src\\views\\crm\\backlog\\modules\\receivable-audit-list.vue",
+    "api": "mom-pro2-before/src/api/crm/receivable/index.ts",
+    "function": "updateReceivableStatus",
+    "method": "PUT",
+    "url": "/crm/receivable/update-status",
+    "permissions": [
+      "crm:receivable:update"
+    ]
+  },
+  {
+    "menu": 2702,
+    "page": "ERP 棣栭〉",
+    "source": "mom-pro2-before\\src\\views\\erp\\home\\modules\\time-summary-chart.vue",
+    "api": "mom-pro2-before/src/api/erp/statistics/purchase/index.ts",
+    "function": "getPurchaseTimeSummary",
+    "method": "GET",
+    "url": "/erp/purchase-statistics/time-summary",
+    "permissions": [
+      "erp:statistics:query"
+    ]
+  },
+  {
+    "menu": 2702,
+    "page": "ERP 棣栭〉",
+    "source": "mom-pro2-before\\src\\views\\erp\\home\\modules\\time-summary-chart.vue",
+    "api": "mom-pro2-before/src/api/erp/statistics/sale/index.ts",
+    "function": "getSaleSummary",
+    "method": "GET",
+    "url": "/erp/sale-statistics/summary",
+    "permissions": [
+      "erp:statistics:query"
+    ]
+  },
+  {
+    "menu": 2702,
+    "page": "ERP 棣栭〉",
+    "source": "mom-pro2-before\\src\\views\\erp\\home\\modules\\time-summary-chart.vue",
+    "api": "mom-pro2-before/src/api/erp/statistics/sale/index.ts",
+    "function": "getSaleTimeSummary",
+    "method": "GET",
+    "url": "/erp/sale-statistics/time-summary",
+    "permissions": [
+      "erp:statistics:query"
+    ]
+  },
+  {
+    "menu": 2703,
+    "page": "鍟嗘満鐘舵�侀厤缃�",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\status\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/business/status/index.ts",
+    "function": "getBusinessStatusPage",
+    "method": "GET",
+    "url": "/crm/business-status/page",
+    "permissions": [
+      "crm:business-status:query"
+    ]
+  },
+  {
+    "menu": 2703,
+    "page": "鍟嗘満鐘舵�侀厤缃�",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\status\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/business/status/index.ts",
+    "function": "getBusinessStatus",
+    "method": "GET",
+    "url": "/crm/business-status/get",
+    "permissions": [
+      "crm:business-status:query"
+    ]
+  },
+  {
+    "menu": 2703,
+    "page": "鍟嗘満鐘舵�侀厤缃�",
+    "source": "mom-pro2-before\\src\\views\\crm\\business\\status\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/business/status/index.ts",
+    "function": "updateBusinessStatus",
+    "method": "PUT",
+    "url": "/crm/business-status/update",
+    "permissions": [
+      "crm:business-status:update"
+    ]
+  },
+  {
+    "menu": 2708,
+    "page": "鍚堝悓閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\crm\\contract\\config\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/contract/config/index.ts",
+    "function": "saveContractConfig",
+    "method": "PUT",
+    "url": "/crm/contract-config/save",
+    "permissions": [
+      "crm:contract-config:update"
+    ]
+  },
+  {
+    "menu": 2712,
+    "page": "瀹㈡埛鍒嗘瀽",
+    "source": "mom-pro2-before\\src\\views\\crm\\statistics\\customer\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2714,
+    "page": "娴佺▼鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\bpm\\category\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/category/index.ts",
+    "function": "getCategoryPage",
+    "method": "GET",
+    "url": "/bpm/category/page",
+    "permissions": [
+      "bpm:category:query"
+    ]
+  },
+  {
+    "menu": 2714,
+    "page": "娴佺▼鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\bpm\\category\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/category/index.ts",
+    "function": "getCategory",
+    "method": "GET",
+    "url": "/bpm/category/get",
+    "permissions": [
+      "bpm:category:query"
+    ]
+  },
+  {
+    "menu": 2714,
+    "page": "娴佺▼鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\bpm\\category\\modules\\rename-form.vue",
+    "api": "mom-pro2-before/src/api/bpm/category/index.ts",
+    "function": "updateCategory",
+    "method": "PUT",
+    "url": "/bpm/category/update",
+    "permissions": [
+      "bpm:category:update"
+    ]
+  },
+  {
+    "menu": 2720,
+    "page": "鍙戣捣娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\create\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/definition/index.ts",
+    "function": "getProcessDefinitionList",
+    "method": "GET",
+    "url": "/bpm/process-definition/list",
+    "permissions": null
+  },
+  {
+    "menu": 2720,
+    "page": "鍙戣捣娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\create\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getProcessInstance",
+    "method": "GET",
+    "url": "/bpm/process-instance/get",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 2720,
+    "page": "鍙戣捣娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\create\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "createProcessInstance",
+    "method": "POST",
+    "url": "/bpm/process-instance/create",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 2720,
+    "page": "鍙戣捣娴佺▼",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\create\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getApprovalDetail",
+    "method": "GET",
+    "url": "/bpm/process-instance/get-approval-detail",
+    "permissions": [
+      "bpm:process-instance:query"
+    ]
+  },
+  {
+    "menu": 2721,
+    "page": "娴佺▼瀹炰緥",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\manager\\data.ts",
+    "api": "mom-pro2-before/src/api/bpm/definition/index.ts",
+    "function": "getSimpleProcessDefinitionList",
+    "method": "GET",
+    "url": "/bpm/process-definition/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2721,
+    "page": "娴佺▼瀹炰緥",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\manager\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2721,
+    "page": "娴佺▼瀹炰緥",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processInstance\\manager\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processInstance/index.ts",
+    "function": "getProcessInstanceManagerPage",
+    "method": "GET",
+    "url": "/bpm/process-instance/manager-page",
+    "permissions": [
+      "bpm:process-instance:manager-query"
+    ]
+  },
+  {
+    "menu": 2726,
+    "page": "娴佺▼鐩戝惉鍣�",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processListener\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processListener/index.ts",
+    "function": "getProcessListenerPage",
+    "method": "GET",
+    "url": "/bpm/process-listener/page",
+    "permissions": [
+      "bpm:process-listener:query"
+    ]
+  },
+  {
+    "menu": 2726,
+    "page": "娴佺▼鐩戝惉鍣�",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processListener\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/processListener/index.ts",
+    "function": "getProcessListener",
+    "method": "GET",
+    "url": "/bpm/process-listener/get",
+    "permissions": [
+      "bpm:process-listener:query"
+    ]
+  },
+  {
+    "menu": 2726,
+    "page": "娴佺▼鐩戝惉鍣�",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processListener\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/processListener/index.ts",
+    "function": "updateProcessListener",
+    "method": "PUT",
+    "url": "/bpm/process-listener/update",
+    "permissions": [
+      "bpm:process-listener:update"
+    ]
+  },
+  {
+    "menu": 2731,
+    "page": "娴佺▼琛ㄨ揪寮�",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processExpression\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/processExpression/index.ts",
+    "function": "getProcessExpressionPage",
+    "method": "GET",
+    "url": "/bpm/process-expression/page",
+    "permissions": [
+      "bpm:process-expression:query"
+    ]
+  },
+  {
+    "menu": 2731,
+    "page": "娴佺▼琛ㄨ揪寮�",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processExpression\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/processExpression/index.ts",
+    "function": "getProcessExpression",
+    "method": "GET",
+    "url": "/bpm/process-expression/get",
+    "permissions": [
+      "bpm:process-expression:query"
+    ]
+  },
+  {
+    "menu": 2731,
+    "page": "娴佺▼琛ㄨ揪寮�",
+    "source": "mom-pro2-before\\src\\views\\bpm\\processExpression\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/processExpression/index.ts",
+    "function": "updateProcessExpression",
+    "method": "PUT",
+    "url": "/bpm/process-expression/update",
+    "permissions": [
+      "bpm:process-expression:update"
+    ]
+  },
+  {
+    "menu": 2736,
+    "page": "鍛樺伐涓氱哗",
+    "source": "mom-pro2-before\\src\\views\\crm\\statistics\\performance\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2736,
+    "page": "鍛樺伐涓氱哗",
+    "source": "mom-pro2-before\\src\\views\\crm\\statistics\\performance\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/statistics/performance.ts",
+    "function": "getContractPricePerformance",
+    "method": "GET",
+    "url": "/crm/statistics-performance/get-contract-price-performance",
+    "permissions": [
+      "crm:statistics-performance:query"
+    ]
+  },
+  {
+    "menu": 2736,
+    "page": "鍛樺伐涓氱哗",
+    "source": "mom-pro2-before\\src\\views\\crm\\statistics\\performance\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/statistics/performance.ts",
+    "function": "getReceivablePricePerformance",
+    "method": "GET",
+    "url": "/crm/statistics-performance/get-receivable-price-performance",
+    "permissions": [
+      "crm:statistics-performance:query"
+    ]
+  },
+  {
+    "menu": 2737,
+    "page": "瀹㈡埛鐢诲儚",
+    "source": "mom-pro2-before\\src\\views\\crm\\statistics\\portrait\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2738,
+    "page": "閿�鍞紡鏂�",
+    "source": "mom-pro2-before\\src\\views\\crm\\statistics\\funnel\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/chat/message/index.ts",
+    "function": "deleteByConversationId",
+    "method": "DELETE",
+    "url": "/ai/chat/message/delete-by-conversation-id",
+    "permissions": null
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/chat/message/index.ts",
+    "function": "getChatMessageListByConversationId",
+    "method": "GET",
+    "url": "/ai/chat/message/list-by-conversation-id",
+    "permissions": null
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\modules\\conversation\\list.vue",
+    "api": "mom-pro2-before/src/api/ai/chat/conversation/index.ts",
+    "function": "deleteChatConversationMy",
+    "method": "DELETE",
+    "url": "/ai/chat/conversation/delete-my",
+    "permissions": null
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\modules\\conversation\\list.vue",
+    "api": "mom-pro2-before/src/api/ai/chat/conversation/index.ts",
+    "function": "deleteChatConversationMyByUnpinned",
+    "method": "DELETE",
+    "url": "/ai/chat/conversation/delete-by-unpinned",
+    "permissions": null
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\modules\\conversation\\list.vue",
+    "api": "mom-pro2-before/src/api/ai/chat/conversation/index.ts",
+    "function": "getChatConversationMyList",
+    "method": "GET",
+    "url": "/ai/chat/conversation/my-list",
+    "permissions": null
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\modules\\conversation\\update-form.vue",
+    "api": "mom-pro2-before/src/api/ai/chat/conversation/index.ts",
+    "function": "updateChatConversationMy",
+    "method": "PUT",
+    "url": "/ai/chat/conversation/update-my",
+    "permissions": null
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\modules\\role\\repository.vue",
+    "api": "mom-pro2-before/src/api/ai/model/chatRole/index.ts",
+    "function": "deleteMy",
+    "method": "DELETE",
+    "url": "/ai/chat-role/delete-my",
+    "permissions": null
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\modules\\role\\repository.vue",
+    "api": "mom-pro2-before/src/api/ai/model/chatRole/index.ts",
+    "function": "getCategoryList",
+    "method": "GET",
+    "url": "/ai/chat-role/category-list",
+    "permissions": null
+  },
+  {
+    "menu": 2759,
+    "page": "AI 瀵硅瘽",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\index\\modules\\role\\repository.vue",
+    "api": "mom-pro2-before/src/api/ai/model/chatRole/index.ts",
+    "function": "getMyPage",
+    "method": "GET",
+    "url": "/ai/chat-role/my-page",
+    "permissions": null
+  },
+  {
+    "menu": 2761,
+    "page": "API 瀵嗛挜",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\apiKey\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/model/apiKey/index.ts",
+    "function": "getApiKeyPage",
+    "method": "GET",
+    "url": "/ai/api-key/page",
+    "permissions": [
+      "ai:api-key:query"
+    ]
+  },
+  {
+    "menu": 2761,
+    "page": "API 瀵嗛挜",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\apiKey\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/apiKey/index.ts",
+    "function": "getApiKey",
+    "method": "GET",
+    "url": "/ai/api-key/get",
+    "permissions": [
+      "ai:api-key:query"
+    ]
+  },
+  {
+    "menu": 2761,
+    "page": "API 瀵嗛挜",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\apiKey\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/apiKey/index.ts",
+    "function": "updateApiKey",
+    "method": "PUT",
+    "url": "/ai/api-key/update",
+    "permissions": [
+      "ai:api-key:update"
+    ]
+  },
+  {
+    "menu": 2767,
+    "page": "妯″瀷閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\model\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/model/model/index.ts",
+    "function": "getModelPage",
+    "method": "GET",
+    "url": "/ai/model/page",
+    "permissions": [
+      "ai:model:query"
+    ]
+  },
+  {
+    "menu": 2767,
+    "page": "妯″瀷閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\model\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/model/index.ts",
+    "function": "getModel",
+    "method": "GET",
+    "url": "/ai/model/get",
+    "permissions": [
+      "ai:model:query"
+    ]
+  },
+  {
+    "menu": 2767,
+    "page": "妯″瀷閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\model\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/model/index.ts",
+    "function": "updateModel",
+    "method": "PUT",
+    "url": "/ai/model/update",
+    "permissions": [
+      "ai:model:update"
+    ]
+  },
+  {
+    "menu": 2773,
+    "page": "鑱婂ぉ瑙掕壊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\chatRole\\data.ts",
+    "api": "mom-pro2-before/src/api/ai/model/model/index.ts",
+    "function": "getModelSimpleList",
+    "method": "GET",
+    "url": "/ai/model/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2773,
+    "page": "鑱婂ぉ瑙掕壊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\chatRole\\data.ts",
+    "api": "mom-pro2-before/src/api/ai/model/tool/index.ts",
+    "function": "getToolSimpleList",
+    "method": "GET",
+    "url": "/ai/tool/simple-list",
+    "permissions": null
+  },
+  {
+    "menu": 2773,
+    "page": "鑱婂ぉ瑙掕壊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\chatRole\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/model/chatRole/index.ts",
+    "function": "getChatRolePage",
+    "method": "GET",
+    "url": "/ai/chat-role/page",
+    "permissions": null
+  },
+  {
+    "menu": 2773,
+    "page": "鑱婂ぉ瑙掕壊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\chatRole\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/chatRole/index.ts",
+    "function": "getChatRole",
+    "method": "GET",
+    "url": "/ai/chat-role/get",
+    "permissions": null
+  },
+  {
+    "menu": 2773,
+    "page": "鑱婂ぉ瑙掕壊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\chatRole\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/chatRole/index.ts",
+    "function": "updateChatRole",
+    "method": "PUT",
+    "url": "/ai/chat-role/update",
+    "permissions": null
+  },
+  {
+    "menu": 2778,
+    "page": "鑱婂ぉ绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\manager\\modules\\conversation-list.vue",
+    "api": "mom-pro2-before/src/api/ai/chat/conversation/index.ts",
+    "function": "getChatConversationPage",
+    "method": "GET",
+    "url": "/ai/chat/conversation/page",
+    "permissions": null
+  },
+  {
+    "menu": 2778,
+    "page": "鑱婂ぉ绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\chat\\manager\\modules\\message-list.vue",
+    "api": "mom-pro2-before/src/api/ai/chat/message/index.ts",
+    "function": "getChatMessagePage",
+    "method": "GET",
+    "url": "/ai/chat/message/page",
+    "permissions": null
+  },
+  {
+    "menu": 2783,
+    "page": "AI 缁樼敾",
+    "source": "mom-pro2-before\\src\\views\\ai\\image\\index\\modules\\list.vue",
+    "api": "mom-pro2-before/src/api/ai/image/index.ts",
+    "function": "getImageListMyByIds",
+    "method": "GET",
+    "url": "/ai/image/my-list-by-ids",
+    "permissions": null
+  },
+  {
+    "menu": 2783,
+    "page": "AI 缁樼敾",
+    "source": "mom-pro2-before\\src\\views\\ai\\image\\index\\modules\\list.vue",
+    "api": "mom-pro2-before/src/api/ai/image/index.ts",
+    "function": "getImagePageMy",
+    "method": "GET",
+    "url": "/ai/image/my-page",
+    "permissions": null
+  },
+  {
+    "menu": 2783,
+    "page": "AI 缁樼敾",
+    "source": "mom-pro2-before\\src\\views\\ai\\image\\index\\modules\\list.vue",
+    "api": "mom-pro2-before/src/api/ai/image/index.ts",
+    "function": "midjourneyAction",
+    "method": "POST",
+    "url": "/ai/image/midjourney/action",
+    "permissions": null
+  },
+  {
+    "menu": 2784,
+    "page": "缁樼敾绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\image\\manager\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/image/index.ts",
+    "function": "getImagePage",
+    "method": "GET",
+    "url": "/ai/image/page",
+    "permissions": null
+  },
+  {
+    "menu": 2784,
+    "page": "缁樼敾绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\image\\manager\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/image/index.ts",
+    "function": "updateImage",
+    "method": "PUT",
+    "url": "/ai/image/update",
+    "permissions": null
+  },
+  {
+    "menu": 2788,
+    "page": "闊充箰绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\music\\manager\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/music/index.ts",
+    "function": "getMusicPage",
+    "method": "GET",
+    "url": "/ai/music/page",
+    "permissions": null
+  },
+  {
+    "menu": 2788,
+    "page": "闊充箰绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\music\\manager\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/music/index.ts",
+    "function": "updateMusic",
+    "method": "PUT",
+    "url": "/ai/music/update",
+    "permissions": null
+  },
+  {
+    "menu": 2793,
+    "page": "鍐欎綔绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\write\\manager\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/write/index.ts",
+    "function": "getWritePage",
+    "method": "GET",
+    "url": "/ai/write/page",
+    "permissions": null
+  },
+  {
+    "menu": 2799,
+    "page": "瀵煎浘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\mindmap\\manager\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 2799,
+    "page": "瀵煎浘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\mindmap\\manager\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/mindmap/index.ts",
+    "function": "getMindMapPage",
+    "method": "GET",
+    "url": "/ai/mind-map/page",
+    "permissions": null
+  },
+  {
+    "menu": 2915,
+    "page": "AI 鐭ヨ瘑搴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\knowledge\\knowledge\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/knowledge/knowledge/index.ts",
+    "function": "getKnowledgePage",
+    "method": "GET",
+    "url": "/ai/knowledge/page",
+    "permissions": [
+      "ai:knowledge:query"
+    ]
+  },
+  {
+    "menu": 2915,
+    "page": "AI 鐭ヨ瘑搴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\knowledge\\knowledge\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/knowledge/knowledge/index.ts",
+    "function": "getKnowledge",
+    "method": "GET",
+    "url": "/ai/knowledge/get",
+    "permissions": [
+      "ai:knowledge:query"
+    ]
+  },
+  {
+    "menu": 2915,
+    "page": "AI 鐭ヨ瘑搴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\knowledge\\knowledge\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/knowledge/knowledge/index.ts",
+    "function": "updateKnowledge",
+    "method": "PUT",
+    "url": "/ai/knowledge/update",
+    "permissions": [
+      "ai:knowledge:update"
+    ]
+  },
+  {
+    "menu": 2915,
+    "page": "AI 鐭ヨ瘑搴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\knowledge\\knowledge\\retrieval\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/knowledge/segment/index.ts",
+    "function": "searchKnowledgeSegment",
+    "method": "POST",
+    "url": "/ai/knowledge/segment/search",
+    "permissions": [
+      "ai:knowledge:query"
+    ]
+  },
+  {
+    "menu": 2920,
+    "page": "宸ュ叿绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\tool\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/model/tool/index.ts",
+    "function": "getToolPage",
+    "method": "GET",
+    "url": "/ai/tool/page",
+    "permissions": null
+  },
+  {
+    "menu": 2920,
+    "page": "宸ュ叿绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\tool\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/tool/index.ts",
+    "function": "getTool",
+    "method": "GET",
+    "url": "/ai/tool/get",
+    "permissions": null
+  },
+  {
+    "menu": 2920,
+    "page": "宸ュ叿绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\tool\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/tool/index.ts",
+    "function": "updateTool",
+    "method": "PUT",
+    "url": "/ai/tool/update",
+    "permissions": null
+  },
+  {
+    "menu": 5000,
+    "page": "AI 宸ヤ綔娴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\workflow\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/workflow/index.ts",
+    "function": "createWorkflow",
+    "method": "POST",
+    "url": "/ai/workflow/create",
+    "permissions": null
+  },
+  {
+    "menu": 5000,
+    "page": "AI 宸ヤ綔娴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\workflow\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/workflow/index.ts",
+    "function": "getWorkflow",
+    "method": "GET",
+    "url": "/ai/workflow/get",
+    "permissions": null
+  },
+  {
+    "menu": 5000,
+    "page": "AI 宸ヤ綔娴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\workflow\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/workflow/index.ts",
+    "function": "updateWorkflow",
+    "method": "PUT",
+    "url": "/ai/workflow/update",
+    "permissions": null
+  },
+  {
+    "menu": 5000,
+    "page": "AI 宸ヤ綔娴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\workflow\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "createModel",
+    "method": "POST",
+    "url": "/bpm/model/create",
+    "permissions": [
+      "bpm:model:create"
+    ]
+  },
+  {
+    "menu": 5000,
+    "page": "AI 宸ヤ綔娴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\workflow\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "deployModel",
+    "method": "POST",
+    "url": "/bpm/model/deploy",
+    "permissions": [
+      "bpm:model:deploy"
+    ]
+  },
+  {
+    "menu": 5000,
+    "page": "AI 宸ヤ綔娴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\workflow\\form\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/model/index.ts",
+    "function": "updateModel",
+    "method": "PUT",
+    "url": "/bpm/model/update",
+    "permissions": [
+      "bpm:model:update"
+    ]
+  },
+  {
+    "menu": 5000,
+    "page": "AI 宸ヤ綔娴�",
+    "source": "mom-pro2-before\\src\\views\\ai\\workflow\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/workflow/index.ts",
+    "function": "getWorkflowPage",
+    "method": "GET",
+    "url": "/ai/workflow/page",
+    "permissions": null
+  },
+  {
+    "menu": 5110,
+    "page": "鐗╂枡鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "getItemTypeList",
+    "method": "GET",
+    "url": "/mes/md/item-type/list",
+    "permissions": [
+      "mes:md-item-type:query"
+    ]
+  },
+  {
+    "menu": 5110,
+    "page": "鐗╂枡鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "exportItemType",
+    "method": "GET",
+    "url": "/mes/md/item-type/export-excel",
+    "permissions": [
+      "mes:md-item-type:export"
+    ]
+  },
+  {
+    "menu": 5110,
+    "page": "鐗╂枡鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/index.ts",
+    "function": "getItemPage",
+    "method": "GET",
+    "url": "/mes/md/item/page",
+    "permissions": [
+      "mes:md-item:query"
+    ]
+  },
+  {
+    "menu": 5110,
+    "page": "鐗╂枡鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "getItemPage",
+    "method": "GET",
+    "url": "/mdm/item/page",
+    "permissions": [
+      "mdm:item:query"
+    ]
+  },
+  {
+    "menu": 5110,
+    "page": "鐗╂枡鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "getItemType",
+    "method": "GET",
+    "url": "/mes/md/item-type/get",
+    "permissions": [
+      "mes:md-item-type:query"
+    ]
+  },
+  {
+    "menu": 5110,
+    "page": "鐗╂枡鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "updateItemType",
+    "method": "PUT",
+    "url": "/mes/md/item-type/update",
+    "permissions": [
+      "mes:md-item-type:update"
+    ]
+  },
+  {
+    "menu": 5110,
+    "page": "鐗╂枡鍒嗙被",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "importItemTypeTemplate",
+    "method": "GET",
+    "url": "/mes/md/item-type/get-import-template",
+    "permissions": [
+      "mes:md-item-type:import"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/index.ts",
+    "function": "exportItem",
+    "method": "GET",
+    "url": "/mes/md/item/export-excel",
+    "permissions": [
+      "mes:md-item:export"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/index.ts",
+    "function": "getItemPage",
+    "method": "GET",
+    "url": "/mes/md/item/page",
+    "permissions": [
+      "mes:md-item:query"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/index.ts",
+    "function": "getItem",
+    "method": "GET",
+    "url": "/mes/md/item/get",
+    "permissions": [
+      "mes:md-item:query"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/index.ts",
+    "function": "updateItem",
+    "method": "PUT",
+    "url": "/mes/md/item/update",
+    "permissions": [
+      "mes:md-item:update"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/index.ts",
+    "function": "importItemTemplate",
+    "method": "GET",
+    "url": "/mes/md/item/get-import-template",
+    "permissions": null
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\item-batch-config-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/batchConfig/index.ts",
+    "function": "saveBatchConfig",
+    "method": "POST",
+    "url": "/mes/md/item-batch-config/save",
+    "permissions": [
+      "mes:md-item:update"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-bom-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productBom/index.ts",
+    "function": "deleteProductBom",
+    "method": "DELETE",
+    "url": "/mes/md/product-bom/delete",
+    "permissions": [
+      "mes:md-item:delete"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-bom-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productBom/index.ts",
+    "function": "getProductBomListByItemId",
+    "method": "GET",
+    "url": "/mes/md/product-bom/list-by-item-id",
+    "permissions": [
+      "mes:md-item:query"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-bom-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productBom/index.ts",
+    "function": "updateProductBom",
+    "method": "PUT",
+    "url": "/mes/md/product-bom/update",
+    "permissions": [
+      "mes:md-item:update"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-media-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productSip/index.ts",
+    "function": "deleteProductSip",
+    "method": "DELETE",
+    "url": "/mes/md/product-sip/delete",
+    "permissions": [
+      "mes:md-item:delete"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-media-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productSip/index.ts",
+    "function": "getProductSipListByItemId",
+    "method": "GET",
+    "url": "/mes/md/product-sip/list-by-item-id",
+    "permissions": [
+      "mes:md-item:query"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-media-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productSip/index.ts",
+    "function": "updateProductSip",
+    "method": "PUT",
+    "url": "/mes/md/product-sip/update",
+    "permissions": [
+      "mes:md-item:update"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-media-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productSop/index.ts",
+    "function": "createProductSop",
+    "method": "POST",
+    "url": "/mes/md/product-sop/create",
+    "permissions": [
+      "mes:md-item:create"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-media-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productSop/index.ts",
+    "function": "deleteProductSop",
+    "method": "DELETE",
+    "url": "/mes/md/product-sop/delete",
+    "permissions": [
+      "mes:md-item:delete"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-media-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productSop/index.ts",
+    "function": "getProductSopListByItemId",
+    "method": "GET",
+    "url": "/mes/md/product-sop/list-by-item-id",
+    "permissions": [
+      "mes:md-item:query"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\modules\\product-media-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/productSop/index.ts",
+    "function": "updateProductSop",
+    "method": "PUT",
+    "url": "/mes/md/product-sop/update",
+    "permissions": [
+      "mes:md-item:update"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "getItemTypeList",
+    "method": "GET",
+    "url": "/mes/md/item-type/list",
+    "permissions": [
+      "mes:md-item-type:query"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "exportItemType",
+    "method": "GET",
+    "url": "/mes/md/item-type/export-excel",
+    "permissions": [
+      "mes:md-item-type:export"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "getItemPage",
+    "method": "GET",
+    "url": "/mdm/item/page",
+    "permissions": [
+      "mdm:item:query"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "getItemType",
+    "method": "GET",
+    "url": "/mes/md/item-type/get",
+    "permissions": [
+      "mes:md-item-type:query"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "updateItemType",
+    "method": "PUT",
+    "url": "/mes/md/item-type/update",
+    "permissions": [
+      "mes:md-item-type:update"
+    ]
+  },
+  {
+    "menu": 5120,
+    "page": "鐢熶骇鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\item\\type\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "importItemTypeTemplate",
+    "method": "GET",
+    "url": "/mes/md/item-type/get-import-template",
+    "permissions": [
+      "mes:md-item-type:import"
+    ]
+  },
+  {
+    "menu": 5160,
+    "page": "杞﹂棿璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\workshop\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5160,
+    "page": "杞﹂棿璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\workshop\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/workshop/index.ts",
+    "function": "getWorkshopPage",
+    "method": "GET",
+    "url": "/mes/md-workshop/page",
+    "permissions": [
+      "mes:md-workshop:query"
+    ]
+  },
+  {
+    "menu": 5160,
+    "page": "杞﹂棿璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\workshop\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/workshop/index.ts",
+    "function": "getWorkshop",
+    "method": "GET",
+    "url": "/mes/md-workshop/get",
+    "permissions": [
+      "mes:md-workshop:query"
+    ]
+  },
+  {
+    "menu": 5160,
+    "page": "杞﹂棿璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\workshop\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/workshop/index.ts",
+    "function": "updateWorkshop",
+    "method": "PUT",
+    "url": "/mes/md-workshop/update",
+    "permissions": [
+      "mes:md-workshop:update"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/area/index.ts",
+    "function": "getWarehouseAreaSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocationSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/index.ts",
+    "function": "exportWorkstation",
+    "method": "GET",
+    "url": "/mes/md-workstation/export-excel",
+    "permissions": [
+      "mes:md-workstation:export"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/index.ts",
+    "function": "getWorkstationPage",
+    "method": "GET",
+    "url": "/mes/md-workstation/page",
+    "permissions": [
+      "mes:md-workstation:query"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/index.ts",
+    "function": "getWorkstation",
+    "method": "GET",
+    "url": "/mes/md-workstation/get",
+    "permissions": [
+      "mes:md-workstation:query"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/index.ts",
+    "function": "updateWorkstation",
+    "method": "PUT",
+    "url": "/mes/md-workstation/update",
+    "permissions": [
+      "mes:md-workstation:update"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\machine-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/machine/index.ts",
+    "function": "createWorkstationMachine",
+    "method": "POST",
+    "url": "/mes/md-workstation-machine/create",
+    "permissions": [
+      "mes:md-workstation:update"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\machine-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/machine/index.ts",
+    "function": "deleteWorkstationMachine",
+    "method": "DELETE",
+    "url": "/mes/md-workstation-machine/delete",
+    "permissions": [
+      "mes:md-workstation:update"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\machine-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/machine/index.ts",
+    "function": "getWorkstationMachineList",
+    "method": "GET",
+    "url": "/mes/md-workstation-machine/list-by-workstation",
+    "permissions": [
+      "mes:md-workstation:query"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\tool-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/tool/index.ts",
+    "function": "deleteWorkstationTool",
+    "method": "DELETE",
+    "url": "/mes/md-workstation-tool/delete",
+    "permissions": [
+      "mes:md-workstation:update"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\tool-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/tool/index.ts",
+    "function": "getWorkstationToolList",
+    "method": "GET",
+    "url": "/mes/md-workstation-tool/list-by-workstation",
+    "permissions": [
+      "mes:md-workstation:query"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\tool-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/tool/index.ts",
+    "function": "updateWorkstationTool",
+    "method": "PUT",
+    "url": "/mes/md-workstation-tool/update",
+    "permissions": [
+      "mes:md-workstation:update"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\tool-list.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "getToolTypeSimpleList",
+    "method": "GET",
+    "url": "/mes/tm/tool-type/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\worker-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/worker/index.ts",
+    "function": "deleteWorkstationWorker",
+    "method": "DELETE",
+    "url": "/mes/md-workstation-worker/delete",
+    "permissions": [
+      "mes:md-workstation:update"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\worker-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/worker/index.ts",
+    "function": "getWorkstationWorkerList",
+    "method": "GET",
+    "url": "/mes/md-workstation-worker/list-by-workstation",
+    "permissions": [
+      "mes:md-workstation:query"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\worker-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/worker/index.ts",
+    "function": "updateWorkstationWorker",
+    "method": "PUT",
+    "url": "/mes/md-workstation-worker/update",
+    "permissions": [
+      "mes:md-workstation:update"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\modules\\worker-list.vue",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "getSimplePostList",
+    "method": "GET",
+    "url": "/system/post/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\workshop\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\workshop\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/workshop/index.ts",
+    "function": "getWorkshopPage",
+    "method": "GET",
+    "url": "/mes/md-workshop/page",
+    "permissions": [
+      "mes:md-workshop:query"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\workshop\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/workshop/index.ts",
+    "function": "getWorkshop",
+    "method": "GET",
+    "url": "/mes/md-workshop/get",
+    "permissions": [
+      "mes:md-workshop:query"
+    ]
+  },
+  {
+    "menu": 5170,
+    "page": "宸ヤ綔绔欒缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\workstation\\workshop\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/workshop/index.ts",
+    "function": "updateWorkshop",
+    "method": "PUT",
+    "url": "/mes/md-workshop/update",
+    "permissions": [
+      "mes:md-workshop:update"
+    ]
+  },
+  {
+    "menu": 5190,
+    "page": "缂栫爜瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\autocode\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/rule/index.ts",
+    "function": "exportAutoCodeRule",
+    "method": "GET",
+    "url": "/mes/md/auto-code-rule/export-excel",
+    "permissions": [
+      "mes:auto-code-rule:export"
+    ]
+  },
+  {
+    "menu": 5190,
+    "page": "缂栫爜瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\autocode\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/rule/index.ts",
+    "function": "getAutoCodeRulePage",
+    "method": "GET",
+    "url": "/mes/md/auto-code-rule/page",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ]
+  },
+  {
+    "menu": 5190,
+    "page": "缂栫爜瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\autocode\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/rule/index.ts",
+    "function": "getAutoCodeRule",
+    "method": "GET",
+    "url": "/mes/md/auto-code-rule/get",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ]
+  },
+  {
+    "menu": 5190,
+    "page": "缂栫爜瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\autocode\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/rule/index.ts",
+    "function": "updateAutoCodeRule",
+    "method": "PUT",
+    "url": "/mes/md/auto-code-rule/update",
+    "permissions": [
+      "mes:auto-code-rule:update"
+    ]
+  },
+  {
+    "menu": 5190,
+    "page": "缂栫爜瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\autocode\\modules\\part-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/part/index.ts",
+    "function": "getAutoCodePart",
+    "method": "GET",
+    "url": "/mes/md/auto-code-part/get",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ]
+  },
+  {
+    "menu": 5190,
+    "page": "缂栫爜瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\autocode\\modules\\part-form.vue",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/part/index.ts",
+    "function": "updateAutoCodePart",
+    "method": "PUT",
+    "url": "/mes/md/auto-code-part/update",
+    "permissions": [
+      "mes:auto-code-rule:update"
+    ]
+  },
+  {
+    "menu": 5190,
+    "page": "缂栫爜瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\mes\\md\\autocode\\modules\\part-list.vue",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/part/index.ts",
+    "function": "getAutoCodePartListByRuleId",
+    "method": "GET",
+    "url": "/mes/md/auto-code-part/list-by-rule-id",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ]
+  },
+  {
+    "menu": 5220,
+    "page": "鐝粍璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\team\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/team/index.ts",
+    "function": "exportTeam",
+    "method": "GET",
+    "url": "/mes/cal/team/export-excel",
+    "permissions": [
+      "mes:cal-team:export"
+    ]
+  },
+  {
+    "menu": 5220,
+    "page": "鐝粍璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\team\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/team/index.ts",
+    "function": "getTeamPage",
+    "method": "GET",
+    "url": "/mes/cal/team/page",
+    "permissions": [
+      "mes:cal-team:query"
+    ]
+  },
+  {
+    "menu": 5220,
+    "page": "鐝粍璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\team\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/team/index.ts",
+    "function": "getTeam",
+    "method": "GET",
+    "url": "/mes/cal/team/get",
+    "permissions": [
+      "mes:cal-team:query"
+    ]
+  },
+  {
+    "menu": 5220,
+    "page": "鐝粍璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\team\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/team/index.ts",
+    "function": "updateTeam",
+    "method": "PUT",
+    "url": "/mes/cal/team/update",
+    "permissions": [
+      "mes:cal-team:update"
+    ]
+  },
+  {
+    "menu": 5220,
+    "page": "鐝粍璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\team\\modules\\member-list.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/team/member/index.ts",
+    "function": "deleteTeamMember",
+    "method": "DELETE",
+    "url": "/mes/cal/team-member/delete",
+    "permissions": [
+      "mes:cal-team:delete"
+    ]
+  },
+  {
+    "menu": 5220,
+    "page": "鐝粍璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\team\\modules\\member-list.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/team/member/index.ts",
+    "function": "getTeamMemberListByTeam",
+    "method": "GET",
+    "url": "/mes/cal/team-member/list-by-team",
+    "permissions": [
+      "mes:cal-team:query"
+    ]
+  },
+  {
+    "menu": 5220,
+    "page": "鐝粍璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\team\\modules\\member-list.vue",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/index.ts",
+    "function": "exportPlan",
+    "method": "GET",
+    "url": "/mes/cal/plan/export-excel",
+    "permissions": [
+      "mes:cal-plan:export"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/index.ts",
+    "function": "getPlanPage",
+    "method": "GET",
+    "url": "/mes/cal/plan/page",
+    "permissions": [
+      "mes:cal-plan:query"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/index.ts",
+    "function": "createPlan",
+    "method": "POST",
+    "url": "/mes/cal/plan/create",
+    "permissions": [
+      "mes:cal-plan:create"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/index.ts",
+    "function": "getPlan",
+    "method": "GET",
+    "url": "/mes/cal/plan/get",
+    "permissions": [
+      "mes:cal-plan:query"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/index.ts",
+    "function": "updatePlan",
+    "method": "PUT",
+    "url": "/mes/cal/plan/update",
+    "permissions": [
+      "mes:cal-plan:update"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\shift-list.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/shift/index.ts",
+    "function": "deletePlanShift",
+    "method": "DELETE",
+    "url": "/mes/cal/plan-shift/delete",
+    "permissions": [
+      "mes:cal-plan:update"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\shift-list.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/shift/index.ts",
+    "function": "getPlanShiftListByPlan",
+    "method": "GET",
+    "url": "/mes/cal/plan-shift/list-by-plan",
+    "permissions": [
+      "mes:cal-plan:query"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\shift-list.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/shift/index.ts",
+    "function": "updatePlanShift",
+    "method": "PUT",
+    "url": "/mes/cal/plan-shift/update",
+    "permissions": [
+      "mes:cal-plan:update"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\team-list.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/team/index.ts",
+    "function": "deletePlanTeam",
+    "method": "DELETE",
+    "url": "/mes/cal/plan-team/delete",
+    "permissions": [
+      "mes:cal-plan:update"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\team-list.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/plan/team/index.ts",
+    "function": "getPlanTeamListByPlan",
+    "method": "GET",
+    "url": "/mes/cal/plan-team/list-by-plan",
+    "permissions": [
+      "mes:cal-plan:query"
+    ]
+  },
+  {
+    "menu": 5230,
+    "page": "鎺掔彮璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\plan\\modules\\team-list.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/team/member/index.ts",
+    "function": "getTeamMemberListByTeam",
+    "method": "GET",
+    "url": "/mes/cal/team-member/list-by-team",
+    "permissions": [
+      "mes:cal-team:query"
+    ]
+  },
+  {
+    "menu": 5250,
+    "page": "鑺傚亣鏃ヨ缃�",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\holiday\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/cal/holiday/index.ts",
+    "function": "saveHoliday",
+    "method": "POST",
+    "url": "/mes/cal/holiday/save",
+    "permissions": [
+      "mes:cal-holiday:create"
+    ]
+  },
+  {
+    "menu": 5260,
+    "page": "鎺掔彮鏃ュ巻",
+    "source": "mom-pro2-before\\src\\views\\mes\\cal\\calendar\\components\\use-calendar.ts",
+    "api": "mom-pro2-before/src/api/mes/cal/holiday/index.ts",
+    "function": "getHolidayList",
+    "method": "GET",
+    "url": "/mes/cal/holiday/list",
+    "permissions": [
+      "mes:cal-holiday:query"
+    ]
+  },
+  {
+    "menu": 5310,
+    "page": "璁惧绫诲瀷",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\type\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/record/index.ts",
+    "function": "generateAutoCode",
+    "method": "POST",
+    "url": "/mes/md/auto-code-record/generate",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ]
+  },
+  {
+    "menu": 5310,
+    "page": "璁惧绫诲瀷",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/type/index.ts",
+    "function": "getMachineryTypeList",
+    "method": "GET",
+    "url": "/mes/dv/machinery-type/list",
+    "permissions": [
+      "mes:dv-machinery-type:query"
+    ]
+  },
+  {
+    "menu": 5310,
+    "page": "璁惧绫诲瀷",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/type/index.ts",
+    "function": "getMachineryType",
+    "method": "GET",
+    "url": "/mes/dv/machinery-type/get",
+    "permissions": [
+      "mes:dv-machinery-type:query"
+    ]
+  },
+  {
+    "menu": 5310,
+    "page": "璁惧绫诲瀷",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/type/index.ts",
+    "function": "updateMachineryType",
+    "method": "PUT",
+    "url": "/mes/dv/machinery-type/update",
+    "permissions": [
+      "mes:dv-machinery-type:update"
+    ]
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/index.ts",
+    "function": "exportMachinery",
+    "method": "GET",
+    "url": "/mes/dv/machinery/export-excel",
+    "permissions": [
+      "mes:dv-machinery:export"
+    ]
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/index.ts",
+    "function": "getMachineryPage",
+    "method": "GET",
+    "url": "/mes/dv/machinery/page",
+    "permissions": [
+      "mes:dv-machinery:query"
+    ]
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/index.ts",
+    "function": "getMachinery",
+    "method": "GET",
+    "url": "/mes/dv/machinery/get",
+    "permissions": [
+      "mes:dv-machinery:query"
+    ]
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/index.ts",
+    "function": "updateMachinery",
+    "method": "PUT",
+    "url": "/mes/dv/machinery/update",
+    "permissions": [
+      "mes:dv-machinery:update"
+    ]
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/index.ts",
+    "function": "importMachineryTemplate",
+    "method": "GET",
+    "url": "/mes/dv/machinery/get-import-template",
+    "permissions": []
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\type\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/md/autocode/record/index.ts",
+    "function": "generateAutoCode",
+    "method": "POST",
+    "url": "/mes/md/auto-code-record/generate",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ]
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/type/index.ts",
+    "function": "getMachineryTypeList",
+    "method": "GET",
+    "url": "/mes/dv/machinery-type/list",
+    "permissions": [
+      "mes:dv-machinery-type:query"
+    ]
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/type/index.ts",
+    "function": "getMachineryType",
+    "method": "GET",
+    "url": "/mes/dv/machinery-type/get",
+    "permissions": [
+      "mes:dv-machinery-type:query"
+    ]
+  },
+  {
+    "menu": 5320,
+    "page": "璁惧鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\machinery\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/machinery/type/index.ts",
+    "function": "updateMachineryType",
+    "method": "PUT",
+    "url": "/mes/dv/machinery-type/update",
+    "permissions": [
+      "mes:dv-machinery-type:update"
+    ]
+  },
+  {
+    "menu": 5330,
+    "page": "鐐规淇濆吇椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\subject\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/subject/index.ts",
+    "function": "exportSubject",
+    "method": "GET",
+    "url": "/mes/dv/subject/export-excel",
+    "permissions": [
+      "mes:dv-subject:export"
+    ]
+  },
+  {
+    "menu": 5330,
+    "page": "鐐规淇濆吇椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\subject\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/subject/index.ts",
+    "function": "getSubjectPage",
+    "method": "GET",
+    "url": "/mes/dv/subject/page",
+    "permissions": [
+      "mes:dv-subject:query"
+    ]
+  },
+  {
+    "menu": 5330,
+    "page": "鐐规淇濆吇椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\subject\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/subject/index.ts",
+    "function": "getSubject",
+    "method": "GET",
+    "url": "/mes/dv/subject/get",
+    "permissions": [
+      "mes:dv-subject:query"
+    ]
+  },
+  {
+    "menu": 5330,
+    "page": "鐐规淇濆吇椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\subject\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/subject/index.ts",
+    "function": "updateSubject",
+    "method": "PUT",
+    "url": "/mes/dv/subject/update",
+    "permissions": [
+      "mes:dv-subject:update"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/index.ts",
+    "function": "exportMaintenRecord",
+    "method": "GET",
+    "url": "/mes/dv/mainten-record/export-excel",
+    "permissions": [
+      "mes:dv-mainten-record:export"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/index.ts",
+    "function": "getMaintenRecordPage",
+    "method": "GET",
+    "url": "/mes/dv/mainten-record/page",
+    "permissions": [
+      "mes:dv-mainten-record:query"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/index.ts",
+    "function": "getMaintenRecord",
+    "method": "GET",
+    "url": "/mes/dv/mainten-record/get",
+    "permissions": [
+      "mes:dv-mainten-record:query"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/index.ts",
+    "function": "submitMaintenRecord",
+    "method": "PUT",
+    "url": "/mes/dv/mainten-record/submit",
+    "permissions": [
+      "mes:dv-mainten-record:update"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/index.ts",
+    "function": "updateMaintenRecord",
+    "method": "PUT",
+    "url": "/mes/dv/mainten-record/update",
+    "permissions": [
+      "mes:dv-mainten-record:update"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/line/index.ts",
+    "function": "deleteMaintenRecordLine",
+    "method": "DELETE",
+    "url": "/mes/dv/mainten-record-line/delete",
+    "permissions": [
+      "mes:dv-mainten-record:delete"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/line/index.ts",
+    "function": "getMaintenRecordLine",
+    "method": "GET",
+    "url": "/mes/dv/mainten-record-line/get",
+    "permissions": [
+      "mes:dv-mainten-record:query"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/line/index.ts",
+    "function": "getMaintenRecordLinePage",
+    "method": "GET",
+    "url": "/mes/dv/mainten-record-line/page",
+    "permissions": [
+      "mes:dv-mainten-record:query"
+    ]
+  },
+  {
+    "menu": 5340,
+    "page": "淇濆吇璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\maintenrecord\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/maintenrecord/line/index.ts",
+    "function": "updateMaintenRecordLine",
+    "method": "PUT",
+    "url": "/mes/dv/mainten-record-line/update",
+    "permissions": [
+      "mes:dv-mainten-record:update"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/index.ts",
+    "function": "disableCheckPlan",
+    "method": "PUT",
+    "url": "/mes/dv/check-plan/disable",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/index.ts",
+    "function": "enableCheckPlan",
+    "method": "PUT",
+    "url": "/mes/dv/check-plan/enable",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/index.ts",
+    "function": "exportCheckPlan",
+    "method": "GET",
+    "url": "/mes/dv/check-plan/export-excel",
+    "permissions": [
+      "mes:dv-check-plan:export"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/index.ts",
+    "function": "getCheckPlanPage",
+    "method": "GET",
+    "url": "/mes/dv/check-plan/page",
+    "permissions": [
+      "mes:dv-check-plan:query"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/index.ts",
+    "function": "getCheckPlan",
+    "method": "GET",
+    "url": "/mes/dv/check-plan/get",
+    "permissions": [
+      "mes:dv-check-plan:query"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/index.ts",
+    "function": "updateCheckPlan",
+    "method": "PUT",
+    "url": "/mes/dv/check-plan/update",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\modules\\machinery-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/machinery/index.ts",
+    "function": "deleteCheckPlanMachinery",
+    "method": "DELETE",
+    "url": "/mes/dv/check-plan-machinery/delete",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\modules\\machinery-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/machinery/index.ts",
+    "function": "getCheckPlanMachineryListByPlan",
+    "method": "GET",
+    "url": "/mes/dv/check-plan-machinery/list-by-plan",
+    "permissions": [
+      "mes:dv-check-plan:query"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\modules\\subject-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/subject/index.ts",
+    "function": "deleteCheckPlanSubject",
+    "method": "DELETE",
+    "url": "/mes/dv/check-plan-subject/delete",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ]
+  },
+  {
+    "menu": 5350,
+    "page": "鐐规淇濆吇鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkplan\\modules\\subject-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkplan/subject/index.ts",
+    "function": "getCheckPlanSubjectListByPlan",
+    "method": "GET",
+    "url": "/mes/dv/check-plan-subject/list-by-plan",
+    "permissions": [
+      "mes:dv-check-plan:query"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/index.ts",
+    "function": "exportCheckRecord",
+    "method": "GET",
+    "url": "/mes/dv/check-record/export-excel",
+    "permissions": [
+      "mes:dv-check-record:export"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/index.ts",
+    "function": "getCheckRecordPage",
+    "method": "GET",
+    "url": "/mes/dv/check-record/page",
+    "permissions": [
+      "mes:dv-check-record:query"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/index.ts",
+    "function": "getCheckRecord",
+    "method": "GET",
+    "url": "/mes/dv/check-record/get",
+    "permissions": [
+      "mes:dv-check-record:query"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/index.ts",
+    "function": "submitCheckRecord",
+    "method": "PUT",
+    "url": "/mes/dv/check-record/submit",
+    "permissions": [
+      "mes:dv-check-record:update"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/index.ts",
+    "function": "updateCheckRecord",
+    "method": "PUT",
+    "url": "/mes/dv/check-record/update",
+    "permissions": [
+      "mes:dv-check-record:update"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/line/index.ts",
+    "function": "deleteCheckRecordLine",
+    "method": "DELETE",
+    "url": "/mes/dv/check-record-line/delete",
+    "permissions": [
+      "mes:dv-check-record:delete"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/line/index.ts",
+    "function": "getCheckRecordLine",
+    "method": "GET",
+    "url": "/mes/dv/check-record-line/get",
+    "permissions": [
+      "mes:dv-check-record:query"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/line/index.ts",
+    "function": "getCheckRecordLinePage",
+    "method": "GET",
+    "url": "/mes/dv/check-record-line/page",
+    "permissions": [
+      "mes:dv-check-record:query"
+    ]
+  },
+  {
+    "menu": 5360,
+    "page": "鐐规璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\checkrecord\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/checkrecord/line/index.ts",
+    "function": "updateCheckRecordLine",
+    "method": "PUT",
+    "url": "/mes/dv/check-record-line/update",
+    "permissions": [
+      "mes:dv-check-record:update"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/index.ts",
+    "function": "exportRepair",
+    "method": "GET",
+    "url": "/mes/dv/repair/export-excel",
+    "permissions": [
+      "mes:dv-repair:export"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/index.ts",
+    "function": "getRepairPage",
+    "method": "GET",
+    "url": "/mes/dv/repair/page",
+    "permissions": [
+      "mes:dv-repair:query"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/index.ts",
+    "function": "createRepair",
+    "method": "POST",
+    "url": "/mes/dv/repair/create",
+    "permissions": [
+      "mes:dv-repair:create"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/index.ts",
+    "function": "finishRepair",
+    "method": "PUT",
+    "url": "/mes/dv/repair/finish",
+    "permissions": [
+      "mes:dv-repair:update"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/index.ts",
+    "function": "getRepair",
+    "method": "GET",
+    "url": "/mes/dv/repair/get",
+    "permissions": [
+      "mes:dv-repair:query"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/index.ts",
+    "function": "submitRepair",
+    "method": "PUT",
+    "url": "/mes/dv/repair/submit",
+    "permissions": [
+      "mes:dv-repair:update"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/index.ts",
+    "function": "updateRepair",
+    "method": "PUT",
+    "url": "/mes/dv/repair/update",
+    "permissions": [
+      "mes:dv-repair:update"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/line/index.ts",
+    "function": "deleteRepairLine",
+    "method": "DELETE",
+    "url": "/mes/dv/repair-line/delete",
+    "permissions": [
+      "mes:dv-repair:delete"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/line/index.ts",
+    "function": "getRepairLine",
+    "method": "GET",
+    "url": "/mes/dv/repair-line/get",
+    "permissions": [
+      "mes:dv-repair:query"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/line/index.ts",
+    "function": "getRepairLinePage",
+    "method": "GET",
+    "url": "/mes/dv/repair-line/page",
+    "permissions": [
+      "mes:dv-repair:query"
+    ]
+  },
+  {
+    "menu": 5370,
+    "page": "缁翠慨鍗�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\repair\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/repair/line/index.ts",
+    "function": "updateRepairLine",
+    "method": "PUT",
+    "url": "/mes/dv/repair-line/update",
+    "permissions": [
+      "mes:dv-repair:update"
+    ]
+  },
+  {
+    "menu": 5380,
+    "page": "璁¢噺鍣ㄥ叿",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\metering\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5380,
+    "page": "璁¢噺鍣ㄥ叿",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\metering\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/metering/index.ts",
+    "function": "exportMetering",
+    "method": "GET",
+    "url": "/mes/dv/metering/export-excel",
+    "permissions": [
+      "mes:dv-metering:export"
+    ]
+  },
+  {
+    "menu": 5380,
+    "page": "璁¢噺鍣ㄥ叿",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\metering\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/metering/index.ts",
+    "function": "getMeteringPage",
+    "method": "GET",
+    "url": "/mes/dv/metering/page",
+    "permissions": [
+      "mes:dv-metering:query"
+    ]
+  },
+  {
+    "menu": 5380,
+    "page": "璁¢噺鍣ㄥ叿",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\metering\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/metering/index.ts",
+    "function": "getMetering",
+    "method": "GET",
+    "url": "/mes/dv/metering/get",
+    "permissions": [
+      "mes:dv-metering:query"
+    ]
+  },
+  {
+    "menu": 5380,
+    "page": "璁¢噺鍣ㄥ叿",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\metering\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/metering/index.ts",
+    "function": "updateMetering",
+    "method": "PUT",
+    "url": "/mes/dv/metering/update",
+    "permissions": [
+      "mes:dv-metering:update"
+    ]
+  },
+  {
+    "menu": 5380,
+    "page": "璁¢噺鍣ㄥ叿",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\metering\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/metering/index.ts",
+    "function": "importMeteringTemplate",
+    "method": "GET",
+    "url": "/mes/dv/metering/get-import-template",
+    "permissions": [
+      "mes:dv-metering:import"
+    ]
+  },
+  {
+    "menu": 5386,
+    "page": "璁¢噺妫�娴嬭褰�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\meteringcheck\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/meteringcheck/index.ts",
+    "function": "exportMeteringCheck",
+    "method": "GET",
+    "url": "/mes/dv/metering-check/export-excel",
+    "permissions": [
+      "mes:dv-metering-check:export"
+    ]
+  },
+  {
+    "menu": 5386,
+    "page": "璁¢噺妫�娴嬭褰�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\meteringcheck\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/meteringcheck/index.ts",
+    "function": "getMeteringCheckPage",
+    "method": "GET",
+    "url": "/mes/dv/metering-check/page",
+    "permissions": [
+      "mes:dv-metering-check:query"
+    ]
+  },
+  {
+    "menu": 5386,
+    "page": "璁¢噺妫�娴嬭褰�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\meteringcheck\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/meteringcheck/index.ts",
+    "function": "getMeteringCheck",
+    "method": "GET",
+    "url": "/mes/dv/metering-check/get",
+    "permissions": [
+      "mes:dv-metering-check:query"
+    ]
+  },
+  {
+    "menu": 5386,
+    "page": "璁¢噺妫�娴嬭褰�",
+    "source": "mom-pro2-before\\src\\views\\mes\\dv\\meteringcheck\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/dv/meteringcheck/index.ts",
+    "function": "updateMeteringCheck",
+    "method": "PUT",
+    "url": "/mes/dv/metering-check/update",
+    "permissions": [
+      "mes:dv-metering-check:update"
+    ]
+  },
+  {
+    "menu": 5410,
+    "page": "宸ュ叿绫诲瀷璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "exportToolType",
+    "method": "GET",
+    "url": "/mes/tm/tool-type/export-excel",
+    "permissions": [
+      "mes:tm-tool-type:export"
+    ]
+  },
+  {
+    "menu": 5410,
+    "page": "宸ュ叿绫诲瀷璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "getToolTypePage",
+    "method": "GET",
+    "url": "/mes/tm/tool-type/page",
+    "permissions": [
+      "mes:tm-tool-type:query"
+    ]
+  },
+  {
+    "menu": 5410,
+    "page": "宸ュ叿绫诲瀷璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "getToolType",
+    "method": "GET",
+    "url": "/mes/tm/tool-type/get",
+    "permissions": [
+      "mes:tm-tool-type:query"
+    ]
+  },
+  {
+    "menu": 5410,
+    "page": "宸ュ叿绫诲瀷璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "updateToolType",
+    "method": "PUT",
+    "url": "/mes/tm/tool-type/update",
+    "permissions": [
+      "mes:tm-tool-type:update"
+    ]
+  },
+  {
+    "menu": 5420,
+    "page": "宸ヨ澶瑰叿鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/index.ts",
+    "function": "exportTool",
+    "method": "GET",
+    "url": "/mes/tm/tool/export-excel",
+    "permissions": [
+      "mes:tm-tool:export"
+    ]
+  },
+  {
+    "menu": 5420,
+    "page": "宸ヨ澶瑰叿鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/index.ts",
+    "function": "getToolPage",
+    "method": "GET",
+    "url": "/mes/tm/tool/page",
+    "permissions": [
+      "mes:tm-tool:query"
+    ]
+  },
+  {
+    "menu": 5420,
+    "page": "宸ヨ澶瑰叿鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/index.ts",
+    "function": "getTool",
+    "method": "GET",
+    "url": "/mes/tm/tool/get",
+    "permissions": [
+      "mes:tm-tool:query"
+    ]
+  },
+  {
+    "menu": 5420,
+    "page": "宸ヨ澶瑰叿鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/index.ts",
+    "function": "updateTool",
+    "method": "PUT",
+    "url": "/mes/tm/tool/update",
+    "permissions": [
+      "mes:tm-tool:update"
+    ]
+  },
+  {
+    "menu": 5420,
+    "page": "宸ヨ澶瑰叿鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "exportToolType",
+    "method": "GET",
+    "url": "/mes/tm/tool-type/export-excel",
+    "permissions": [
+      "mes:tm-tool-type:export"
+    ]
+  },
+  {
+    "menu": 5420,
+    "page": "宸ヨ澶瑰叿鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\type\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "getToolTypePage",
+    "method": "GET",
+    "url": "/mes/tm/tool-type/page",
+    "permissions": [
+      "mes:tm-tool-type:query"
+    ]
+  },
+  {
+    "menu": 5420,
+    "page": "宸ヨ澶瑰叿鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "getToolType",
+    "method": "GET",
+    "url": "/mes/tm/tool-type/get",
+    "permissions": [
+      "mes:tm-tool-type:query"
+    ]
+  },
+  {
+    "menu": 5420,
+    "page": "宸ヨ澶瑰叿鍙拌处",
+    "source": "mom-pro2-before\\src\\views\\mes\\tm\\tool\\type\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/tm/tool/type/index.ts",
+    "function": "updateToolType",
+    "method": "PUT",
+    "url": "/mes/tm/tool-type/update",
+    "permissions": [
+      "mes:tm-tool-type:update"
+    ]
+  },
+  {
+    "menu": 5510,
+    "page": "甯歌缂洪櫡",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\defect\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/defect/index.ts",
+    "function": "exportDefect",
+    "method": "GET",
+    "url": "/mes/qc/defect/export-excel",
+    "permissions": [
+      "mes:qc-defect:export"
+    ]
+  },
+  {
+    "menu": 5510,
+    "page": "甯歌缂洪櫡",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\defect\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/defect/index.ts",
+    "function": "getDefectPage",
+    "method": "GET",
+    "url": "/mes/qc/defect/page",
+    "permissions": [
+      "mes:qc-defect:query"
+    ]
+  },
+  {
+    "menu": 5510,
+    "page": "甯歌缂洪櫡",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\defect\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/defect/index.ts",
+    "function": "getDefect",
+    "method": "GET",
+    "url": "/mes/qc/defect/get",
+    "permissions": [
+      "mes:qc-defect:query"
+    ]
+  },
+  {
+    "menu": 5510,
+    "page": "甯歌缂洪櫡",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\defect\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/defect/index.ts",
+    "function": "updateDefect",
+    "method": "PUT",
+    "url": "/mes/qc/defect/update",
+    "permissions": [
+      "mes:qc-defect:update"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "getWorkOrderApproveProcessList",
+    "method": "GET",
+    "url": "/mes/pro/work-order/approve-process-list",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\data.ts",
+    "api": "mom-pro2-before/src/api/system/role/index.ts",
+    "function": "getSimpleRoleList",
+    "method": "GET",
+    "url": "/system/role/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "deleteWorkOrder",
+    "method": "DELETE",
+    "url": "/mes/pro/work-order/delete",
+    "permissions": [
+      "mes:pro-work-order:delete"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "exportWorkOrder",
+    "method": "GET",
+    "url": "/mes/pro/work-order/export-excel",
+    "permissions": [
+      "mes:pro-work-order:export"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "getWorkOrderPage",
+    "method": "GET",
+    "url": "/mes/pro/work-order/page",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "createWorkOrder",
+    "method": "POST",
+    "url": "/mes/pro/work-order/create",
+    "permissions": [
+      "mes:pro-work-order:create"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "finishWorkOrder",
+    "method": "PUT",
+    "url": "/mes/pro/work-order/finish",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "getWorkOrder",
+    "method": "GET",
+    "url": "/mes/pro/work-order/get",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "updateWorkOrder",
+    "method": "PUT",
+    "url": "/mes/pro/work-order/update",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/process/index.ts",
+    "function": "batchSaveWorkOrderProcess",
+    "method": "POST",
+    "url": "/mes/pro/work-order-process/batch-save",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\process-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/process/index.ts",
+    "function": "getWorkOrderProcessListByWorkOrderId",
+    "method": "GET",
+    "url": "/mes/pro/work-order-process/list-by-work-order-id",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\process-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/process/index.ts",
+    "function": "createWorkOrderProcess",
+    "method": "POST",
+    "url": "/mes/pro/work-order-process/create",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\process-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/process/index.ts",
+    "function": "getWorkOrderProcess",
+    "method": "GET",
+    "url": "/mes/pro/work-order-process/get",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\process-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/process/index.ts",
+    "function": "updateWorkOrderProcess",
+    "method": "PUT",
+    "url": "/mes/pro/work-order-process/update",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ]
+  },
+  {
+    "menu": 5530,
+    "page": "鐢熶骇璁㈠崟",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workorder\\modules\\process-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/process/index.ts",
+    "function": "getRouteProcessListByProduct",
+    "method": "GET",
+    "url": "/mes/pro/route-process/list-by-product",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/template/index.ts",
+    "function": "getTemplatePage",
+    "method": "GET",
+    "url": "/mes/pd/process-param-template/page",
+    "permissions": [
+      "mes:pd-process-param-template:query"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/md/workstation/worker/index.ts",
+    "function": "getUserListByWorkstationId",
+    "method": "GET",
+    "url": "/mes/md-workstation-worker/list-user-by-workstation",
+    "permissions": [
+      "mes:md-workstation:query"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\modules\\task-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/task/index.ts",
+    "function": "updateTask",
+    "method": "PUT",
+    "url": "/mes/pro/task/update",
+    "permissions": [
+      "mes:pro-task:update"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "getWorkOrderSchedulePage",
+    "method": "GET",
+    "url": "/mes/pro/work-order/schedule-page",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "getWorkOrderPage",
+    "method": "GET",
+    "url": "/mes/pro/work-order/page",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\modules\\schedule-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "finishWorkOrder",
+    "method": "PUT",
+    "url": "/mes/pro/work-order/finish",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\modules\\schedule-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "getWorkOrder",
+    "method": "GET",
+    "url": "/mes/pro/work-order/get",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\modules\\schedule-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/process/index.ts",
+    "function": "getWorkOrderProcessListByWorkOrderId",
+    "method": "GET",
+    "url": "/mes/pro/work-order-process/list-by-work-order-id",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\modules\\task-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/task/index.ts",
+    "function": "getTask",
+    "method": "GET",
+    "url": "/mes/pro/task/get",
+    "permissions": [
+      "mes:pro-task:query"
+    ]
+  },
+  {
+    "menu": 5540,
+    "page": "鐢熶骇鎺掍骇",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\task\\modules\\task-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/task/index.ts",
+    "function": "getTaskPage",
+    "method": "GET",
+    "url": "/mes/pro/task/page",
+    "permissions": [
+      "mes:pro-task:query"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/process/index.ts",
+    "function": "getRouteProcessByRouteAndProcess",
+    "method": "GET",
+    "url": "/mes/pro/route-process/get-by-route-and-process",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "exportFeedback",
+    "method": "GET",
+    "url": "/mes/pro/feedback/export-excel",
+    "permissions": [
+      "mes:pro-feedback:export"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "getFeedbackPage",
+    "method": "GET",
+    "url": "/mes/pro/feedback/page",
+    "permissions": [
+      "mes:pro-feedback:query"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workorder/index.ts",
+    "function": "getWorkOrder",
+    "method": "GET",
+    "url": "/mes/pro/work-order/get",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "approveFeedback",
+    "method": "PUT",
+    "url": "/mes/pro/feedback/approve",
+    "permissions": [
+      "mes:pro-feedback:approve"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "createFeedback",
+    "method": "POST",
+    "url": "/mes/pro/feedback/create",
+    "permissions": [
+      "mes:pro-feedback:create"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "getBatchRequirements",
+    "method": "GET",
+    "url": "/mes/pro/feedback/batch-requirements",
+    "permissions": [
+      "mes:pro-feedback:approve"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "getFeedback",
+    "method": "GET",
+    "url": "/mes/pro/feedback/get",
+    "permissions": [
+      "mes:pro-feedback:query"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "rejectFeedback",
+    "method": "PUT",
+    "url": "/mes/pro/feedback/reject",
+    "permissions": [
+      "mes:pro-feedback:update"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "submitFeedback",
+    "method": "PUT",
+    "url": "/mes/pro/feedback/submit",
+    "permissions": [
+      "mes:pro-feedback:update"
+    ]
+  },
+  {
+    "menu": 5550,
+    "page": "鐢熶骇鎶ュ伐",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\feedback\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/feedback/index.ts",
+    "function": "updateFeedback",
+    "method": "PUT",
+    "url": "/mes/pro/feedback/update",
+    "permissions": [
+      "mes:pro-feedback:update"
+    ]
+  },
+  {
+    "menu": 5610,
+    "page": "妫�娴嬮」璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\indicator\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/qc/indicator/index.ts",
+    "function": "getIndicatorGroupList",
+    "method": "GET",
+    "url": "/mes/qc/indicator/group-list",
+    "permissions": [
+      "mes:qc-indicator:query"
+    ]
+  },
+  {
+    "menu": 5610,
+    "page": "妫�娴嬮」璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\indicator\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/indicator/index.ts",
+    "function": "exportIndicator",
+    "method": "GET",
+    "url": "/mes/qc/indicator/export-excel",
+    "permissions": [
+      "mes:qc-indicator:export"
+    ]
+  },
+  {
+    "menu": 5610,
+    "page": "妫�娴嬮」璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\indicator\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/indicator/index.ts",
+    "function": "getIndicatorPage",
+    "method": "GET",
+    "url": "/mes/qc/indicator/page",
+    "permissions": [
+      "mes:qc-indicator:query"
+    ]
+  },
+  {
+    "menu": 5610,
+    "page": "妫�娴嬮」璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\indicator\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/indicator/index.ts",
+    "function": "getIndicator",
+    "method": "GET",
+    "url": "/mes/qc/indicator/get",
+    "permissions": [
+      "mes:qc-indicator:query"
+    ]
+  },
+  {
+    "menu": 5610,
+    "page": "妫�娴嬮」璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\indicator\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/indicator/index.ts",
+    "function": "updateIndicator",
+    "method": "PUT",
+    "url": "/mes/qc/indicator/update",
+    "permissions": [
+      "mes:qc-indicator:update"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/index.ts",
+    "function": "exportTemplate",
+    "method": "GET",
+    "url": "/mes/qc/template/export-excel",
+    "permissions": [
+      "mes:qc-template:export"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/index.ts",
+    "function": "getTemplatePage",
+    "method": "GET",
+    "url": "/mes/qc/template/page",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/index.ts",
+    "function": "getTemplate",
+    "method": "GET",
+    "url": "/mes/qc/template/get",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/index.ts",
+    "function": "updateTemplate",
+    "method": "PUT",
+    "url": "/mes/qc/template/update",
+    "permissions": [
+      "mes:qc-template:update"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\modules\\indicator-form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/indicator/index.ts",
+    "function": "getTemplateIndicator",
+    "method": "GET",
+    "url": "/mes/qc/template/indicator/get",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\modules\\indicator-form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/indicator/index.ts",
+    "function": "updateTemplateIndicator",
+    "method": "PUT",
+    "url": "/mes/qc/template/indicator/update",
+    "permissions": [
+      "mes:qc-template:update"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\modules\\indicator-list.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/indicator/index.ts",
+    "function": "getTemplateIndicatorPage",
+    "method": "GET",
+    "url": "/mes/qc/template/indicator/page",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\modules\\item-form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/item/index.ts",
+    "function": "getTemplateItem",
+    "method": "GET",
+    "url": "/mes/qc/template/item/get",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\modules\\item-form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/item/index.ts",
+    "function": "updateTemplateItem",
+    "method": "PUT",
+    "url": "/mes/qc/template/item/update",
+    "permissions": [
+      "mes:qc-template:update"
+    ]
+  },
+  {
+    "menu": 5630,
+    "page": "璐ㄦ鏂规",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\template\\modules\\item-list.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/template/item/index.ts",
+    "function": "getTemplateItemPage",
+    "method": "GET",
+    "url": "/mes/qc/template/item/page",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/qc/template/item/index.ts",
+    "function": "getTemplateItemOptionList",
+    "method": "GET",
+    "url": "/mes/qc/template/item/list-by-item-and-type",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\data.ts",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/iqc/index.ts",
+    "function": "exportIqc",
+    "method": "GET",
+    "url": "/mes/qc/iqc/export-excel",
+    "permissions": [
+      "mes:qc-iqc:export"
+    ]
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/iqc/index.ts",
+    "function": "getIqcPage",
+    "method": "GET",
+    "url": "/mes/qc/iqc/page",
+    "permissions": [
+      "mes:qc-iqc:query"
+    ]
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/iqc/index.ts",
+    "function": "importIqc",
+    "method": "POST",
+    "url": "/mes/qc/iqc/import",
+    "permissions": [
+      "mes:qc-iqc:import"
+    ]
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/iqc/index.ts",
+    "function": "importIqcTemplate",
+    "method": "GET",
+    "url": "/mes/qc/iqc/get-import-template",
+    "permissions": [
+      "mes:qc-iqc:import"
+    ]
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/iqc/index.ts",
+    "function": "finishIqc",
+    "method": "PUT",
+    "url": "/mes/qc/iqc/finish",
+    "permissions": [
+      "mes:qc-iqc:finish"
+    ]
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/iqc/index.ts",
+    "function": "getIqc",
+    "method": "GET",
+    "url": "/mes/qc/iqc/get",
+    "permissions": [
+      "mes:qc-iqc:query"
+    ]
+  },
+  {
+    "menu": 5640,
+    "page": "鏉ユ枡妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\iqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/iqc/index.ts",
+    "function": "updateIqc",
+    "method": "PUT",
+    "url": "/mes/qc/iqc/update",
+    "permissions": [
+      "mes:qc-iqc:update"
+    ]
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/qc/template/item/index.ts",
+    "function": "getTemplateItemOptionList",
+    "method": "GET",
+    "url": "/mes/qc/template/item/list-by-item-and-type",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ipqc/index.ts",
+    "function": "exportIpqc",
+    "method": "GET",
+    "url": "/mes/qc/ipqc/export-excel",
+    "permissions": [
+      "mes:qc-ipqc:export"
+    ]
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ipqc/index.ts",
+    "function": "getIpqcPage",
+    "method": "GET",
+    "url": "/mes/qc/ipqc/page",
+    "permissions": [
+      "mes:qc-ipqc:query"
+    ]
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ipqc/index.ts",
+    "function": "importIpqc",
+    "method": "POST",
+    "url": "/mes/qc/ipqc/import",
+    "permissions": [
+      "mes:qc-ipqc:import"
+    ]
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ipqc/index.ts",
+    "function": "importIpqcTemplate",
+    "method": "GET",
+    "url": "/mes/qc/ipqc/get-import-template",
+    "permissions": [
+      "mes:qc-ipqc:import"
+    ]
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ipqc/index.ts",
+    "function": "finishIpqc",
+    "method": "PUT",
+    "url": "/mes/qc/ipqc/finish",
+    "permissions": [
+      "mes:qc-ipqc:finish"
+    ]
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ipqc/index.ts",
+    "function": "getIpqc",
+    "method": "GET",
+    "url": "/mes/qc/ipqc/get",
+    "permissions": [
+      "mes:qc-ipqc:query"
+    ]
+  },
+  {
+    "menu": 5650,
+    "page": "杩囩▼妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ipqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ipqc/index.ts",
+    "function": "updateIpqc",
+    "method": "PUT",
+    "url": "/mes/qc/ipqc/update",
+    "permissions": [
+      "mes:qc-ipqc:update"
+    ]
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/qc/template/item/index.ts",
+    "function": "getTemplateItemOptionList",
+    "method": "GET",
+    "url": "/mes/qc/template/item/list-by-item-and-type",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/oqc/index.ts",
+    "function": "exportOqc",
+    "method": "GET",
+    "url": "/mes/qc/oqc/export-excel",
+    "permissions": [
+      "mes:qc-oqc:export"
+    ]
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/oqc/index.ts",
+    "function": "getOqcPage",
+    "method": "GET",
+    "url": "/mes/qc/oqc/page",
+    "permissions": [
+      "mes:qc-oqc:query"
+    ]
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/oqc/index.ts",
+    "function": "importOqc",
+    "method": "POST",
+    "url": "/mes/qc/oqc/import",
+    "permissions": [
+      "mes:qc-oqc:import"
+    ]
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/oqc/index.ts",
+    "function": "importOqcTemplate",
+    "method": "GET",
+    "url": "/mes/qc/oqc/get-import-template",
+    "permissions": [
+      "mes:qc-oqc:import"
+    ]
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/oqc/index.ts",
+    "function": "finishOqc",
+    "method": "PUT",
+    "url": "/mes/qc/oqc/finish",
+    "permissions": [
+      "mes:qc-oqc:finish"
+    ]
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/oqc/index.ts",
+    "function": "getOqc",
+    "method": "GET",
+    "url": "/mes/qc/oqc/get",
+    "permissions": [
+      "mes:qc-oqc:query"
+    ]
+  },
+  {
+    "menu": 5660,
+    "page": "鍑鸿揣妫�楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\oqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/oqc/index.ts",
+    "function": "updateOqc",
+    "method": "PUT",
+    "url": "/mes/qc/oqc/update",
+    "permissions": [
+      "mes:qc-oqc:update"
+    ]
+  },
+  {
+    "menu": 5670,
+    "page": "閫�璐ф楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\rqc\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/qc/template/item/index.ts",
+    "function": "getTemplateItemOptionList",
+    "method": "GET",
+    "url": "/mes/qc/template/item/list-by-item-and-type",
+    "permissions": [
+      "mes:qc-template:query"
+    ]
+  },
+  {
+    "menu": 5670,
+    "page": "閫�璐ф楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\rqc\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5670,
+    "page": "閫�璐ф楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\rqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/rqc/index.ts",
+    "function": "exportRqc",
+    "method": "GET",
+    "url": "/mes/qc/rqc/export-excel",
+    "permissions": [
+      "mes:qc-rqc:export"
+    ]
+  },
+  {
+    "menu": 5670,
+    "page": "閫�璐ф楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\rqc\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/rqc/index.ts",
+    "function": "getRqcPage",
+    "method": "GET",
+    "url": "/mes/qc/rqc/page",
+    "permissions": [
+      "mes:qc-rqc:query"
+    ]
+  },
+  {
+    "menu": 5670,
+    "page": "閫�璐ф楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\rqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/rqc/index.ts",
+    "function": "finishRqc",
+    "method": "PUT",
+    "url": "/mes/qc/rqc/finish",
+    "permissions": [
+      "mes:qc-rqc:finish"
+    ]
+  },
+  {
+    "menu": 5670,
+    "page": "閫�璐ф楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\rqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/rqc/index.ts",
+    "function": "getRqc",
+    "method": "GET",
+    "url": "/mes/qc/rqc/get",
+    "permissions": [
+      "mes:qc-rqc:query"
+    ]
+  },
+  {
+    "menu": 5670,
+    "page": "閫�璐ф楠�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\rqc\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/rqc/index.ts",
+    "function": "updateRqc",
+    "method": "PUT",
+    "url": "/mes/qc/rqc/update",
+    "permissions": [
+      "mes:qc-rqc:update"
+    ]
+  },
+  {
+    "menu": 5690,
+    "page": "涓嶅悎鏍煎搧澶勭悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ncr\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ncr/index.ts",
+    "function": "deleteNcr",
+    "method": "DELETE",
+    "url": "/mes/qc/ncr/delete",
+    "permissions": [
+      "mes:qc-ncr:delete"
+    ]
+  },
+  {
+    "menu": 5690,
+    "page": "涓嶅悎鏍煎搧澶勭悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ncr\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ncr/index.ts",
+    "function": "disposeNcr",
+    "method": "PUT",
+    "url": "/mes/qc/ncr/dispose",
+    "permissions": [
+      "mes:qc-ncr:dispose"
+    ]
+  },
+  {
+    "menu": 5690,
+    "page": "涓嶅悎鏍煎搧澶勭悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ncr\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ncr/index.ts",
+    "function": "exportNcr",
+    "method": "GET",
+    "url": "/mes/qc/ncr/export-excel",
+    "permissions": [
+      "mes:qc-ncr:export"
+    ]
+  },
+  {
+    "menu": 5690,
+    "page": "涓嶅悎鏍煎搧澶勭悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ncr\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ncr/index.ts",
+    "function": "getNcrPage",
+    "method": "GET",
+    "url": "/mes/qc/ncr/page",
+    "permissions": [
+      "mes:qc-ncr:query"
+    ]
+  },
+  {
+    "menu": 5690,
+    "page": "涓嶅悎鏍煎搧澶勭悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ncr\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ncr/index.ts",
+    "function": "reviewNcr",
+    "method": "PUT",
+    "url": "/mes/qc/ncr/review",
+    "permissions": [
+      "mes:qc-ncr:review"
+    ]
+  },
+  {
+    "menu": 5690,
+    "page": "涓嶅悎鏍煎搧澶勭悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ncr\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ncr/index.ts",
+    "function": "getNcr",
+    "method": "GET",
+    "url": "/mes/qc/ncr/get",
+    "permissions": [
+      "mes:qc-ncr:query"
+    ]
+  },
+  {
+    "menu": 5690,
+    "page": "涓嶅悎鏍煎搧澶勭悊",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ncr\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ncr/index.ts",
+    "function": "updateNcr",
+    "method": "PUT",
+    "url": "/mes/qc/ncr/update",
+    "permissions": [
+      "mes:qc-ncr:update"
+    ]
+  },
+  {
+    "menu": 5710,
+    "page": "宸ュ簭璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\process\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/process/index.ts",
+    "function": "exportProcess",
+    "method": "GET",
+    "url": "/mes/pro/process/export-excel",
+    "permissions": [
+      "mes:pro-process:export"
+    ]
+  },
+  {
+    "menu": 5710,
+    "page": "宸ュ簭璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\process\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/process/index.ts",
+    "function": "getProcessPage",
+    "method": "GET",
+    "url": "/mes/pro/process/page",
+    "permissions": [
+      "mes:pro-process:query"
+    ]
+  },
+  {
+    "menu": 5710,
+    "page": "宸ュ簭璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\process\\modules\\content-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/process/content/index.ts",
+    "function": "getProcessContent",
+    "method": "GET",
+    "url": "/mes/pro/process-content/get",
+    "permissions": [
+      "mes:pro-process:query"
+    ]
+  },
+  {
+    "menu": 5710,
+    "page": "宸ュ簭璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\process\\modules\\content-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/process/content/index.ts",
+    "function": "updateProcessContent",
+    "method": "PUT",
+    "url": "/mes/pro/process-content/update",
+    "permissions": [
+      "mes:pro-process:update"
+    ]
+  },
+  {
+    "menu": 5710,
+    "page": "宸ュ簭璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\process\\modules\\content-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/process/content/index.ts",
+    "function": "getProcessContentListByProcessId",
+    "method": "GET",
+    "url": "/mes/pro/process-content/list-by-process",
+    "permissions": [
+      "mes:pro-process:query"
+    ]
+  },
+  {
+    "menu": 5710,
+    "page": "宸ュ簭璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\process\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/process/index.ts",
+    "function": "getProcess",
+    "method": "GET",
+    "url": "/mes/pro/process/get",
+    "permissions": [
+      "mes:pro-process:query"
+    ]
+  },
+  {
+    "menu": 5710,
+    "page": "宸ュ簭璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\process\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/process/index.ts",
+    "function": "updateProcess",
+    "method": "PUT",
+    "url": "/mes/pro/process/update",
+    "permissions": [
+      "mes:pro-process:update"
+    ]
+  },
+  {
+    "menu": 5710,
+    "page": "宸ュ簭璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\process\\modules\\param-manage.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/processparam/index.ts",
+    "function": "updateProcessParams",
+    "method": "POST",
+    "url": "/mes/pro/process-param/update-bindings",
+    "permissions": [
+      "mes:pro-process:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/index.ts",
+    "function": "exportRoute",
+    "method": "GET",
+    "url": "/mes/pro/route/export-excel",
+    "permissions": [
+      "mes:pro-route:export"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/index.ts",
+    "function": "getRoutePage",
+    "method": "GET",
+    "url": "/mes/pro/route/page",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/index.ts",
+    "function": "updateRouteStatus",
+    "method": "PUT",
+    "url": "/mes/pro/route/update-status",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\bom-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/productbom/index.ts",
+    "function": "getRouteProductBom",
+    "method": "GET",
+    "url": "/mes/pro/route-product-bom/get",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\workbench.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/productbom/index.ts",
+    "function": "updateRouteProductBom",
+    "method": "PUT",
+    "url": "/mes/pro/route-product-bom/update",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/index.ts",
+    "function": "getRoute",
+    "method": "GET",
+    "url": "/mes/pro/route/get",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/index.ts",
+    "function": "updateRoute",
+    "method": "PUT",
+    "url": "/mes/pro/route/update",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/product/index.ts",
+    "function": "deleteRouteProduct",
+    "method": "DELETE",
+    "url": "/mes/pro/route-product/delete",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\product-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/product/index.ts",
+    "function": "getRouteProductListByRoute",
+    "method": "GET",
+    "url": "/mes/pro/route-product/list-by-route",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\process-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/process/index.ts",
+    "function": "createRouteProcess",
+    "method": "POST",
+    "url": "/mes/pro/route-process/create",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\process-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/process/index.ts",
+    "function": "getRouteProcess",
+    "method": "GET",
+    "url": "/mes/pro/route-process/get",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\workbench.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/process/index.ts",
+    "function": "updateRouteProcess",
+    "method": "PUT",
+    "url": "/mes/pro/route-process/update",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\workbench.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/process/index.ts",
+    "function": "getRouteProcessListByRoute",
+    "method": "GET",
+    "url": "/mes/pro/route-process/list-by-route",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\workbench.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/productbom/index.ts",
+    "function": "deleteRouteProductBom",
+    "method": "DELETE",
+    "url": "/mes/pro/route-product-bom/delete",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\workbench.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/productbom/index.ts",
+    "function": "getRouteProductBomList",
+    "method": "GET",
+    "url": "/mes/pro/route-product-bom/list",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\product-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/product/index.ts",
+    "function": "getRouteProduct",
+    "method": "GET",
+    "url": "/mes/pro/route-product/get",
+    "permissions": [
+      "mes:pro-route:query"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\product-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/product/index.ts",
+    "function": "updateRouteProduct",
+    "method": "PUT",
+    "url": "/mes/pro/route-product/update",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5720,
+    "page": "宸ヨ壓璺嚎",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\route\\modules\\workbench.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/route/productbom/index.ts",
+    "function": "createRouteProductBom",
+    "method": "POST",
+    "url": "/mes/pro/route-product-bom/create",
+    "permissions": [
+      "mes:pro-route:update"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocationSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/area/index.ts",
+    "function": "getWarehouseAreaPage",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/page",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocation",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/area/index.ts",
+    "function": "getWarehouseArea",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/area/index.ts",
+    "function": "updateWarehouseArea",
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-area/update",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/index.ts",
+    "function": "getWarehousePage",
+    "method": "GET",
+    "url": "/mes/wm/warehouse/page",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "deleteWarehouseLocation",
+    "method": "DELETE",
+    "url": "/mes/wm/warehouse-location/delete",
+    "permissions": [
+      "mes:wm-warehouse:delete"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocationPage",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/page",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "updateAreaByLocationId",
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-location/update-by-location-id",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "updateWarehouseLocation",
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-location/update",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/index.ts",
+    "function": "getWarehouse",
+    "method": "GET",
+    "url": "/mes/wm/warehouse/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5781,
+    "page": "浠撳簱璁剧疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/index.ts",
+    "function": "updateWarehouse",
+    "method": "PUT",
+    "url": "/mes/wm/warehouse/update",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ]
+  },
+  {
+    "menu": 5786,
+    "page": "搴撳瓨鐜版湁閲�",
+    "source": "mom-pro2-before\\src\\views\\wls\\materialstock\\components\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/materialstock/index.ts",
+    "function": "importMaterialStockTemplate",
+    "method": "GET",
+    "url": "/mes/wm/material-stock/import-template",
+    "permissions": [
+      "mes:wm-material-stock:import"
+    ]
+  },
+  {
+    "menu": 5786,
+    "page": "搴撳瓨鐜版湁閲�",
+    "source": "mom-pro2-before\\src\\views\\wls\\materialstock\\components\\stock-adjust-modal.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/materialstock/index.ts",
+    "function": "adjustMaterialStockOut",
+    "method": "POST",
+    "url": "/mes/wm/material-stock/adjust-out",
+    "permissions": [
+      "mes:wm-material-stock:adjust"
+    ]
+  },
+  {
+    "menu": 5786,
+    "page": "搴撳瓨鐜版湁閲�",
+    "source": "mom-pro2-before\\src\\views\\wls\\materialstock\\components\\stock-adjust-modal.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "getItem",
+    "method": "GET",
+    "url": "/mdm/item/get",
+    "permissions": [
+      "mdm:item:query"
+    ]
+  },
+  {
+    "menu": 5786,
+    "page": "搴撳瓨鐜版湁閲�",
+    "source": "mom-pro2-before\\src\\views\\wls\\materialstock\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/materialstock/index.ts",
+    "function": "getMaterialStockPage",
+    "method": "GET",
+    "url": "/mes/wm/material-stock/page",
+    "permissions": [
+      "mes:wm-material-stock:query"
+    ]
+  },
+  {
+    "menu": 5786,
+    "page": "搴撳瓨鐜版湁閲�",
+    "source": "mom-pro2-before\\src\\views\\wls\\materialstock\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/materialstock/index.ts",
+    "function": "updateMaterialStockFrozen",
+    "method": "PUT",
+    "url": "/mes/wm/material-stock/update-frozen",
+    "permissions": [
+      "mes:wm-material-stock:update"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/index.ts",
+    "function": "exportArrivalNotice",
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice/export-excel",
+    "permissions": [
+      "mes:wm-arrival-notice:export"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/index.ts",
+    "function": "generateArrivalNoticeFromPurchaseOrder",
+    "method": "POST",
+    "url": "/mes/wm/arrival-notice/generate-from-purchase-order",
+    "permissions": [
+      "mes:wm-arrival-notice:create"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/index.ts",
+    "function": "getArrivalNoticePage",
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice/page",
+    "permissions": [
+      "mes:wm-arrival-notice:query"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "generateItemReceiptFromArrivalNotice",
+    "method": "POST",
+    "url": "/mes/wm/item-receipt/generate-from-arrival-notice",
+    "permissions": [
+      "mes:wm-item-receipt:create"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/index.ts",
+    "function": "getArrivalNotice",
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice/get",
+    "permissions": [
+      "mes:wm-arrival-notice:query"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/index.ts",
+    "function": "submitArrivalNotice",
+    "method": "PUT",
+    "url": "/mes/wm/arrival-notice/submit",
+    "permissions": [
+      "mes:wm-arrival-notice:update"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/index.ts",
+    "function": "updateArrivalNotice",
+    "method": "PUT",
+    "url": "/mes/wm/arrival-notice/update",
+    "permissions": [
+      "mes:wm-arrival-notice:update"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/line/index.ts",
+    "function": "getArrivalNoticeLine",
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice-line/get",
+    "permissions": [
+      "mes:wm-arrival-notice:query"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/line/index.ts",
+    "function": "updateArrivalNoticeLine",
+    "method": "PUT",
+    "url": "/mes/wm/arrival-notice-line/update",
+    "permissions": [
+      "mes:wm-arrival-notice:update"
+    ]
+  },
+  {
+    "menu": 5792,
+    "page": "鍒拌揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\arrivalnotice\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/arrivalnotice/line/index.ts",
+    "function": "getArrivalNoticeLinePage",
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice-line/page",
+    "permissions": [
+      "mes:wm-arrival-notice:query"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "deleteItemReceipt",
+    "method": "DELETE",
+    "url": "/mes/wm/item-receipt/delete",
+    "permissions": [
+      "mes:wm-item-receipt:delete"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "exportItemReceipt",
+    "method": "GET",
+    "url": "/mes/wm/item-receipt/export-excel",
+    "permissions": [
+      "mes:wm-item-receipt:export"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "generateItemReceiptFromArrivalNotice",
+    "method": "POST",
+    "url": "/mes/wm/item-receipt/generate-from-arrival-notice",
+    "permissions": [
+      "mes:wm-item-receipt:create"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "getItemReceiptPage",
+    "method": "GET",
+    "url": "/mes/wm/item-receipt/page",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/detail/index.ts",
+    "function": "getItemReceiptDetail",
+    "method": "GET",
+    "url": "/mes/wm/item-receipt-detail/get",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/detail/index.ts",
+    "function": "updateItemReceiptDetail",
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt-detail/update",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "finishItemReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/finish",
+    "permissions": [
+      "mes:wm-item-receipt:finish"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "getItemReceipt",
+    "method": "GET",
+    "url": "/mes/wm/item-receipt/get",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "stockItemReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/stock",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "submitItemReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/submit",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/index.ts",
+    "function": "updateItemReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/update",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/line/index.ts",
+    "function": "getItemReceiptLine",
+    "method": "GET",
+    "url": "/mes/wm/item-receipt-line/get",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/line/index.ts",
+    "function": "updateItemReceiptLine",
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt-line/update",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/line/index.ts",
+    "function": "deleteItemReceiptLine",
+    "method": "DELETE",
+    "url": "/mes/wm/item-receipt-line/delete",
+    "permissions": [
+      "mes:wm-item-receipt:delete"
+    ]
+  },
+  {
+    "menu": 5798,
+    "page": "閲囪喘鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\itemreceipt\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/itemreceipt/line/index.ts",
+    "function": "getItemReceiptLinePage",
+    "method": "GET",
+    "url": "/mes/wm/item-receipt-line/page",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "deleteProductIssue",
+    "method": "DELETE",
+    "url": "/mes/wm/product-issue/delete",
+    "permissions": [
+      "mes:wm-product-issue:delete"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "exportProductIssue",
+    "method": "GET",
+    "url": "/mes/wm/product-issue/export-excel",
+    "permissions": [
+      "mes:wm-product-issue:export"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "getProductIssuePage",
+    "method": "GET",
+    "url": "/mes/wm/product-issue/page",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "submitProductIssue",
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/submit",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/detail/index.ts",
+    "function": "getProductIssueDetail",
+    "method": "GET",
+    "url": "/mes/wm/product-issue-detail/get",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/detail/index.ts",
+    "function": "updateProductIssueDetail",
+    "method": "PUT",
+    "url": "/mes/wm/product-issue-detail/update",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "createProductIssue",
+    "method": "POST",
+    "url": "/mes/wm/product-issue/create",
+    "permissions": [
+      "mes:wm-product-issue:create"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "finishProductIssue",
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/finish",
+    "permissions": [
+      "mes:wm-product-issue:finish"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "getProductIssue",
+    "method": "GET",
+    "url": "/mes/wm/product-issue/get",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "stockProductIssue",
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/stock",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/index.ts",
+    "function": "updateProductIssue",
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/update",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/line/index.ts",
+    "function": "getProductIssueLine",
+    "method": "GET",
+    "url": "/mes/wm/product-issue-line/get",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/line/index.ts",
+    "function": "updateProductIssueLine",
+    "method": "PUT",
+    "url": "/mes/wm/product-issue-line/update",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/line/index.ts",
+    "function": "deleteProductIssueLine",
+    "method": "DELETE",
+    "url": "/mes/wm/product-issue-line/delete",
+    "permissions": [
+      "mes:wm-product-issue:delete"
+    ]
+  },
+  {
+    "menu": 5805,
+    "page": "鐢熶骇棰嗘枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\productissue\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productissue/line/index.ts",
+    "function": "getProductIssueLinePage",
+    "method": "GET",
+    "url": "/mes/wm/product-issue-line/page",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "deleteProductReceipt",
+    "method": "DELETE",
+    "url": "/mes/wm/product-receipt/delete",
+    "permissions": [
+      "mes:wm-product-receipt:delete"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "exportProductReceipt",
+    "method": "GET",
+    "url": "/mes/wm/product-receipt/export-excel",
+    "permissions": [
+      "mes:wm-product-receipt:export"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "getProductReceiptPage",
+    "method": "GET",
+    "url": "/mes/wm/product-receipt/page",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/detail/index.ts",
+    "function": "getProductReceiptDetail",
+    "method": "GET",
+    "url": "/mes/wm/product-receipt-detail/get",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/detail/index.ts",
+    "function": "updateProductReceiptDetail",
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt-detail/update",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "createProductReceipt",
+    "method": "POST",
+    "url": "/mes/wm/product-receipt/create",
+    "permissions": [
+      "mes:wm-product-receipt:create"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "finishProductReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/finish",
+    "permissions": [
+      "mes:wm-product-receipt:finish"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "getProductReceipt",
+    "method": "GET",
+    "url": "/mes/wm/product-receipt/get",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "stockProductReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/stock",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "submitProductReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/submit",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/index.ts",
+    "function": "updateProductReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/update",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/line/index.ts",
+    "function": "getProductReceiptLine",
+    "method": "GET",
+    "url": "/mes/wm/product-receipt-line/get",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/line/index.ts",
+    "function": "updateProductReceiptLine",
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt-line/update",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/line/index.ts",
+    "function": "deleteProductReceiptLine",
+    "method": "DELETE",
+    "url": "/mes/wm/product-receipt-line/delete",
+    "permissions": [
+      "mes:wm-product-receipt:delete"
+    ]
+  },
+  {
+    "menu": 5819,
+    "page": "浜у搧鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\productreceipt\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productreceipt/line/index.ts",
+    "function": "getProductReceiptLinePage",
+    "method": "GET",
+    "url": "/mes/wm/product-receipt-line/page",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "deleteReturnVendor",
+    "method": "DELETE",
+    "url": "/mes/wm/return-vendor/delete",
+    "permissions": [
+      "mes:wm-return-vendor:delete"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "exportReturnVendor",
+    "method": "GET",
+    "url": "/mes/wm/return-vendor/export-excel",
+    "permissions": [
+      "mes:wm-return-vendor:export"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "getReturnVendorPage",
+    "method": "GET",
+    "url": "/mes/wm/return-vendor/page",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/detail/index.ts",
+    "function": "getReturnVendorDetail",
+    "method": "GET",
+    "url": "/mes/wm/return-vendor-detail/get",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/detail/index.ts",
+    "function": "updateReturnVendorDetail",
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor-detail/update",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "createReturnVendor",
+    "method": "POST",
+    "url": "/mes/wm/return-vendor/create",
+    "permissions": [
+      "mes:wm-return-vendor:create"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "finishReturnVendor",
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/finish",
+    "permissions": [
+      "mes:wm-return-vendor:finish"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "getReturnVendor",
+    "method": "GET",
+    "url": "/mes/wm/return-vendor/get",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "stockReturnVendor",
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/stock",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "submitReturnVendor",
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/submit",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/index.ts",
+    "function": "updateReturnVendor",
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/update",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/line/index.ts",
+    "function": "getReturnVendorLine",
+    "method": "GET",
+    "url": "/mes/wm/return-vendor-line/get",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/line/index.ts",
+    "function": "updateReturnVendorLine",
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor-line/update",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/line/index.ts",
+    "function": "deleteReturnVendorLine",
+    "method": "DELETE",
+    "url": "/mes/wm/return-vendor-line/delete",
+    "permissions": [
+      "mes:wm-return-vendor:delete"
+    ]
+  },
+  {
+    "menu": 5830,
+    "page": "閲囪喘閫�璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnvendor\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnvendor/line/index.ts",
+    "function": "getReturnVendorLinePage",
+    "method": "GET",
+    "url": "/mes/wm/return-vendor-line/page",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/index.ts",
+    "function": "deleteReturnIssue",
+    "method": "DELETE",
+    "url": "/mes/wm/return-issue/delete",
+    "permissions": [
+      "mes:wm-return-issue:delete"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/index.ts",
+    "function": "exportReturnIssue",
+    "method": "GET",
+    "url": "/mes/wm/return-issue/export-excel",
+    "permissions": [
+      "mes:wm-return-issue:export"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/index.ts",
+    "function": "getReturnIssuePage",
+    "method": "GET",
+    "url": "/mes/wm/return-issue/page",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/detail/index.ts",
+    "function": "getReturnIssueDetail",
+    "method": "GET",
+    "url": "/mes/wm/return-issue-detail/get",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/detail/index.ts",
+    "function": "updateReturnIssueDetail",
+    "method": "PUT",
+    "url": "/mes/wm/return-issue-detail/update",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/index.ts",
+    "function": "finishReturnIssue",
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/finish",
+    "permissions": [
+      "mes:wm-return-issue:finish"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/index.ts",
+    "function": "getReturnIssue",
+    "method": "GET",
+    "url": "/mes/wm/return-issue/get",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/index.ts",
+    "function": "stockReturnIssue",
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/stock",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/index.ts",
+    "function": "submitReturnIssue",
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/submit",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/index.ts",
+    "function": "updateReturnIssue",
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/update",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/line/index.ts",
+    "function": "getReturnIssueLine",
+    "method": "GET",
+    "url": "/mes/wm/return-issue-line/get",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/line/index.ts",
+    "function": "updateReturnIssueLine",
+    "method": "PUT",
+    "url": "/mes/wm/return-issue-line/update",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/line/index.ts",
+    "function": "deleteReturnIssueLine",
+    "method": "DELETE",
+    "url": "/mes/wm/return-issue-line/delete",
+    "permissions": [
+      "mes:wm-return-issue:delete"
+    ]
+  },
+  {
+    "menu": 5840,
+    "page": "鐢熶骇閫�鏂�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnissue\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnissue/line/index.ts",
+    "function": "getReturnIssueLinePage",
+    "method": "GET",
+    "url": "/mes/wm/return-issue-line/page",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/index.ts",
+    "function": "deleteReturnSales",
+    "method": "DELETE",
+    "url": "/mes/wm/return-sales/delete",
+    "permissions": [
+      "mes:wm-return-sales:delete"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/index.ts",
+    "function": "exportReturnSales",
+    "method": "GET",
+    "url": "/mes/wm/return-sales/export-excel",
+    "permissions": [
+      "mes:wm-return-sales:export"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/index.ts",
+    "function": "getReturnSalesPage",
+    "method": "GET",
+    "url": "/mes/wm/return-sales/page",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/detail/index.ts",
+    "function": "getReturnSalesDetail",
+    "method": "GET",
+    "url": "/mes/wm/return-sales-detail/get",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/detail/index.ts",
+    "function": "updateReturnSalesDetail",
+    "method": "PUT",
+    "url": "/mes/wm/return-sales-detail/update",
+    "permissions": [
+      "mes:wm-return-sales:update"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/index.ts",
+    "function": "finishReturnSales",
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/finish",
+    "permissions": [
+      "mes:wm-return-sales:finish"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/index.ts",
+    "function": "getReturnSales",
+    "method": "GET",
+    "url": "/mes/wm/return-sales/get",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/index.ts",
+    "function": "stockReturnSales",
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/stock",
+    "permissions": [
+      "mes:wm-return-sales:stock"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/index.ts",
+    "function": "submitReturnSales",
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/submit",
+    "permissions": [
+      "mes:wm-return-sales:submit"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/index.ts",
+    "function": "updateReturnSales",
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/update",
+    "permissions": [
+      "mes:wm-return-sales:update"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "getSaleOrder",
+    "method": "GET",
+    "url": "/erp/sale-order/get",
+    "permissions": [
+      "erp:sale-order:query"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "getSaleOrderPage",
+    "method": "GET",
+    "url": "/erp/sale-order/page",
+    "permissions": [
+      "erp:sale-order:query"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/line/index.ts",
+    "function": "createReturnSalesLine",
+    "method": "POST",
+    "url": "/mes/wm/return-sales-line/create",
+    "permissions": [
+      "mes:wm-return-sales:create"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/line/index.ts",
+    "function": "getReturnSalesLine",
+    "method": "GET",
+    "url": "/mes/wm/return-sales-line/get",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/line/index.ts",
+    "function": "updateReturnSalesLine",
+    "method": "PUT",
+    "url": "/mes/wm/return-sales-line/update",
+    "permissions": [
+      "mes:wm-return-sales:update"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/line/index.ts",
+    "function": "deleteReturnSalesLine",
+    "method": "DELETE",
+    "url": "/mes/wm/return-sales-line/delete",
+    "permissions": [
+      "mes:wm-return-sales:delete"
+    ]
+  },
+  {
+    "menu": 5847,
+    "page": "閿�鍞��璐�",
+    "source": "mom-pro2-before\\src\\views\\wls\\returnsales\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/returnsales/line/index.ts",
+    "function": "getReturnSalesLinePage",
+    "method": "GET",
+    "url": "/mes/wm/return-sales-line/page",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/index.ts",
+    "function": "deleteMiscIssue",
+    "method": "DELETE",
+    "url": "/mes/wm/misc-issue/delete",
+    "permissions": [
+      "mes:wm-misc-issue:delete"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/index.ts",
+    "function": "exportMiscIssue",
+    "method": "GET",
+    "url": "/mes/wm/misc-issue/export-excel",
+    "permissions": [
+      "mes:wm-misc-issue:export"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/index.ts",
+    "function": "getMiscIssuePage",
+    "method": "GET",
+    "url": "/mes/wm/misc-issue/page",
+    "permissions": [
+      "mes:wm-misc-issue:query"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/index.ts",
+    "function": "finishMiscIssue",
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue/finish",
+    "permissions": [
+      "mes:wm-misc-issue:finish"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/index.ts",
+    "function": "getMiscIssue",
+    "method": "GET",
+    "url": "/mes/wm/misc-issue/get",
+    "permissions": [
+      "mes:wm-misc-issue:query"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/index.ts",
+    "function": "submitMiscIssue",
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue/submit",
+    "permissions": [
+      "mes:wm-misc-issue:update"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/index.ts",
+    "function": "updateMiscIssue",
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue/update",
+    "permissions": [
+      "mes:wm-misc-issue:update"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/line/index.ts",
+    "function": "getMiscIssueLine",
+    "method": "GET",
+    "url": "/mes/wm/misc-issue-line/get",
+    "permissions": [
+      "mes:wm-misc-issue:query"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/line/index.ts",
+    "function": "updateMiscIssueLine",
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue-line/update",
+    "permissions": [
+      "mes:wm-misc-issue:update"
+    ]
+  },
+  {
+    "menu": 5857,
+    "page": "鏉傞」鍑哄簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscissue\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscissue/line/index.ts",
+    "function": "getMiscIssueLinePage",
+    "method": "GET",
+    "url": "/mes/wm/misc-issue-line/page",
+    "permissions": [
+      "mes:wm-misc-issue:query"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/index.ts",
+    "function": "exportSalesNotice",
+    "method": "GET",
+    "url": "/mes/wm/sales-notice/export-excel",
+    "permissions": [
+      "mes:wm-sales-notice:export"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/index.ts",
+    "function": "generateProductSales",
+    "method": "POST",
+    "url": "/mes/wm/sales-notice/generate-product-sales",
+    "permissions": [
+      "mes:wm-product-sales:create"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/index.ts",
+    "function": "getSalesNoticePage",
+    "method": "GET",
+    "url": "/mes/wm/sales-notice/page",
+    "permissions": [
+      "mes:wm-sales-notice:query"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/index.ts",
+    "function": "getSalesNotice",
+    "method": "GET",
+    "url": "/mes/wm/sales-notice/get",
+    "permissions": [
+      "mes:wm-sales-notice:query"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/index.ts",
+    "function": "submitSalesNotice",
+    "method": "PUT",
+    "url": "/mes/wm/sales-notice/submit",
+    "permissions": [
+      "mes:wm-sales-notice:update"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/index.ts",
+    "function": "updateSalesNotice",
+    "method": "PUT",
+    "url": "/mes/wm/sales-notice/update",
+    "permissions": [
+      "mes:wm-sales-notice:update"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/line/index.ts",
+    "function": "createSalesNoticeLine",
+    "method": "POST",
+    "url": "/mes/wm/sales-notice-line/create",
+    "permissions": [
+      "mes:wm-sales-notice:create"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "getSaleOrderItemListByOrderId",
+    "method": "GET",
+    "url": "/erp/sale-order/item/list-by-order-id",
+    "permissions": [
+      "erp:sale-order:query"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/line/index.ts",
+    "function": "getSalesNoticeLine",
+    "method": "GET",
+    "url": "/mes/wm/sales-notice-line/get",
+    "permissions": [
+      "mes:wm-sales-notice:query"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/line/index.ts",
+    "function": "updateSalesNoticeLine",
+    "method": "PUT",
+    "url": "/mes/wm/sales-notice-line/update",
+    "permissions": [
+      "mes:wm-sales-notice:update"
+    ]
+  },
+  {
+    "menu": 5867,
+    "page": "鍙戣揣閫氱煡",
+    "source": "mom-pro2-before\\src\\views\\wls\\salesnotice\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/salesnotice/line/index.ts",
+    "function": "getSalesNoticeLinePage",
+    "method": "GET",
+    "url": "/mes/wm/sales-notice-line/page",
+    "permissions": [
+      "mes:wm-sales-notice:query"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/index.ts",
+    "function": "deleteOutsourceReceipt",
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-receipt/delete",
+    "permissions": [
+      "mes:wm-outsource-receipt:delete"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/index.ts",
+    "function": "exportOutsourceReceipt",
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt/export-excel",
+    "permissions": [
+      "mes:wm-outsource-receipt:export"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/index.ts",
+    "function": "getOutsourceReceiptPage",
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt/page",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/detail/index.ts",
+    "function": "getOutsourceReceiptDetail",
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt-detail/get",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/detail/index.ts",
+    "function": "updateOutsourceReceiptDetail",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt-detail/update",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/index.ts",
+    "function": "finishOutsourceReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/finish",
+    "permissions": [
+      "mes:wm-outsource-receipt:finish"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/index.ts",
+    "function": "getOutsourceReceipt",
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt/get",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/index.ts",
+    "function": "stockOutsourceReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/stock",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/index.ts",
+    "function": "submitOutsourceReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/submit",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/index.ts",
+    "function": "updateOutsourceReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/update",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/line/index.ts",
+    "function": "getOutsourceReceiptLine",
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt-line/get",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/line/index.ts",
+    "function": "updateOutsourceReceiptLine",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt-line/update",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/line/index.ts",
+    "function": "deleteOutsourceReceiptLine",
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-receipt-line/delete",
+    "permissions": [
+      "mes:wm-outsource-receipt:delete"
+    ]
+  },
+  {
+    "menu": 5873,
+    "page": "澶栧崗鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourcereceipt\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourcereceipt/line/index.ts",
+    "function": "getOutsourceReceiptLinePage",
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt-line/page",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "deleteOutsourceIssue",
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-issue/delete",
+    "permissions": [
+      "mes:wm-outsource-issue:delete"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "exportOutsourceIssue",
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue/export-excel",
+    "permissions": [
+      "mes:wm-outsource-issue:export"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "getOutsourceIssuePage",
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue/page",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/detail/index.ts",
+    "function": "getOutsourceIssueDetail",
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue-detail/get",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/detail/index.ts",
+    "function": "updateOutsourceIssueDetail",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue-detail/update",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "createOutsourceIssue",
+    "method": "POST",
+    "url": "/mes/wm/outsource-issue/create",
+    "permissions": [
+      "mes:wm-outsource-issue:create"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "finishOutsourceIssue",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/finish",
+    "permissions": [
+      "mes:wm-outsource-issue:finish"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "getOutsourceIssue",
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue/get",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "stockOutsourceIssue",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/stock",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "submitOutsourceIssue",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/submit",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/index.ts",
+    "function": "updateOutsourceIssue",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/update",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/line/index.ts",
+    "function": "getOutsourceIssueLine",
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue-line/get",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/line/index.ts",
+    "function": "updateOutsourceIssueLine",
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue-line/update",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/line/index.ts",
+    "function": "deleteOutsourceIssueLine",
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-issue-line/delete",
+    "permissions": [
+      "mes:wm-outsource-issue:delete"
+    ]
+  },
+  {
+    "menu": 5881,
+    "page": "澶栧崗鍙戞枡",
+    "source": "mom-pro2-before\\src\\views\\wls\\outsourceissue\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/outsourceissue/line/index.ts",
+    "function": "getOutsourceIssueLinePage",
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue-line/page",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/index.ts",
+    "function": "deleteMiscReceipt",
+    "method": "DELETE",
+    "url": "/mes/wm/misc-receipt/delete",
+    "permissions": [
+      "mes:wm:misc-receipt:delete"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/index.ts",
+    "function": "exportMiscReceipt",
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt/export-excel",
+    "permissions": [
+      "mes:wm:misc-receipt:export"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/index.ts",
+    "function": "getMiscReceiptPage",
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt/page",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/index.ts",
+    "function": "finishMiscReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt/finish",
+    "permissions": [
+      "mes:wm:misc-receipt:finish"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/index.ts",
+    "function": "getMiscReceipt",
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt/get",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/index.ts",
+    "function": "submitMiscReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt/submit",
+    "permissions": [
+      "mes:wm:misc-receipt:submit"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/index.ts",
+    "function": "updateMiscReceipt",
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt/update",
+    "permissions": [
+      "mes:wm:misc-receipt:update"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/line/index.ts",
+    "function": "getMiscReceiptLine",
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt-line/get",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/line/index.ts",
+    "function": "updateMiscReceiptLine",
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt-line/update",
+    "permissions": [
+      "mes:wm:misc-receipt:update"
+    ]
+  },
+  {
+    "menu": 5888,
+    "page": "鏉傞」鍏ュ簱",
+    "source": "mom-pro2-before\\src\\views\\wls\\miscreceipt\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/miscreceipt/line/index.ts",
+    "function": "getMiscReceiptLineListByReceiptId",
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt-line/list-by-receipt-id",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ]
+  },
+  {
+    "menu": 5897,
+    "page": "SN 鐮�",
+    "source": "mom-pro2-before\\src\\views\\wls\\sn\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/sn/index.ts",
+    "function": "exportSnDetailExcel",
+    "method": "GET",
+    "url": "/mes/wm/sn/export-excel",
+    "permissions": [
+      "mes:wm-sn:export"
+    ]
+  },
+  {
+    "menu": 5897,
+    "page": "SN 鐮�",
+    "source": "mom-pro2-before\\src\\views\\wls\\sn\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/sn/index.ts",
+    "function": "exportSnGroupExcel",
+    "method": "GET",
+    "url": "/mes/wm/sn/group-export-excel",
+    "permissions": [
+      "mes:wm-sn:export"
+    ]
+  },
+  {
+    "menu": 5897,
+    "page": "SN 鐮�",
+    "source": "mom-pro2-before\\src\\views\\wls\\sn\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/sn/index.ts",
+    "function": "getSnGroupPage",
+    "method": "GET",
+    "url": "/mes/wm/sn/group-page",
+    "permissions": [
+      "mes:wm-sn:query"
+    ]
+  },
+  {
+    "menu": 5906,
+    "page": "鏉$爜閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\config\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/config/index.ts",
+    "function": "getBarcodeConfigPage",
+    "method": "GET",
+    "url": "/mes/wm/barcode-config/page",
+    "permissions": [
+      "mes:wm-barcode-config:query"
+    ]
+  },
+  {
+    "menu": 5906,
+    "page": "鏉$爜閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/config/index.ts",
+    "function": "updateBarcodeConfig",
+    "method": "PUT",
+    "url": "/mes/wm/barcode-config/update",
+    "permissions": [
+      "mes:wm-barcode-config:update"
+    ]
+  },
+  {
+    "menu": 5906,
+    "page": "鏉$爜閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/config/index.ts",
+    "function": "getBarcodeConfig",
+    "method": "GET",
+    "url": "/mes/wm/barcode-config/get",
+    "permissions": [
+      "mes:wm-barcode-config:query"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\components\\detail.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/index.ts",
+    "function": "getBarcodeByBusiness",
+    "method": "GET",
+    "url": "/mes/wm/barcode/get-by-business",
+    "permissions": [
+      "mes:wm-barcode:query"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\config\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/config/index.ts",
+    "function": "getBarcodeConfigPage",
+    "method": "GET",
+    "url": "/mes/wm/barcode-config/page",
+    "permissions": [
+      "mes:wm-barcode-config:query"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/config/index.ts",
+    "function": "updateBarcodeConfig",
+    "method": "PUT",
+    "url": "/mes/wm/barcode-config/update",
+    "permissions": [
+      "mes:wm-barcode-config:update"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/config/index.ts",
+    "function": "getBarcodeConfig",
+    "method": "GET",
+    "url": "/mes/wm/barcode-config/get",
+    "permissions": [
+      "mes:wm-barcode-config:query"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/index.ts",
+    "function": "exportBarcode",
+    "method": "GET",
+    "url": "/mes/wm/barcode/export-excel",
+    "permissions": [
+      "mes:wm-barcode:export"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/index.ts",
+    "function": "getBarcodePage",
+    "method": "GET",
+    "url": "/mes/wm/barcode/page",
+    "permissions": [
+      "mes:wm-barcode:query"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/index.ts",
+    "function": "getBarcode",
+    "method": "GET",
+    "url": "/mes/wm/barcode/get",
+    "permissions": [
+      "mes:wm-barcode:query"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/barcode/index.ts",
+    "function": "updateBarcode",
+    "method": "PUT",
+    "url": "/mes/wm/barcode/update",
+    "permissions": [
+      "mes:wm-barcode:update"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/area/index.ts",
+    "function": "getWarehouseArea",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5911,
+    "page": "璧嬭兘绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\barcode\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocation",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\modules\\sub-package-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/packages/index.ts",
+    "function": "getPackagePage",
+    "method": "GET",
+    "url": "/mes/wm/package/page",
+    "permissions": [
+      "mes:wm-package:query"
+    ]
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/packages/index.ts",
+    "function": "finishPackage",
+    "method": "PUT",
+    "url": "/mes/wm/package/finish",
+    "permissions": [
+      "mes:wm-package:update"
+    ]
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/packages/index.ts",
+    "function": "getPackage",
+    "method": "GET",
+    "url": "/mes/wm/package/get",
+    "permissions": [
+      "mes:wm-package:query"
+    ]
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/packages/index.ts",
+    "function": "updatePackage",
+    "method": "PUT",
+    "url": "/mes/wm/package/update",
+    "permissions": [
+      "mes:wm-package:update"
+    ]
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/packages/line/index.ts",
+    "function": "getPackageLine",
+    "method": "GET",
+    "url": "/mes/wm/package-line/get",
+    "permissions": [
+      "mes:wm-package:query"
+    ]
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/packages/line/index.ts",
+    "function": "updatePackageLine",
+    "method": "PUT",
+    "url": "/mes/wm/package-line/update",
+    "permissions": [
+      "mes:wm-package:update"
+    ]
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\modules\\package-line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/packages/line/index.ts",
+    "function": "getPackageLinePage",
+    "method": "GET",
+    "url": "/mes/wm/package-line/page",
+    "permissions": [
+      "mes:wm-package:query"
+    ]
+  },
+  {
+    "menu": 5917,
+    "page": "瑁呯绠$悊",
+    "source": "mom-pro2-before\\src\\views\\wls\\packages\\modules\\sub-package-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/packages/index.ts",
+    "function": "removeChildPackage",
+    "method": "PUT",
+    "url": "/mes/wm/package/remove-child-package",
+    "permissions": [
+      "mes:wm-package:update"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "deleteTransfer",
+    "method": "DELETE",
+    "url": "/mes/wm/transfer/delete",
+    "permissions": [
+      "mes:wm-transfer:delete"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "exportTransfer",
+    "method": "GET",
+    "url": "/mes/wm/transfer/export-excel",
+    "permissions": [
+      "mes:wm-transfer:export"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "getTransferPage",
+    "method": "GET",
+    "url": "/mes/wm/transfer/page",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/detail/index.ts",
+    "function": "getTransferDetail",
+    "method": "GET",
+    "url": "/mes/wm/transfer-detail/get",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/detail/index.ts",
+    "function": "updateTransferDetail",
+    "method": "PUT",
+    "url": "/mes/wm/transfer-detail/update",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "createTransfer",
+    "method": "POST",
+    "url": "/mes/wm/transfer/create",
+    "permissions": [
+      "mes:wm-transfer:create"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "finishTransfer",
+    "method": "PUT",
+    "url": "/mes/wm/transfer/finish",
+    "permissions": [
+      "mes:wm-transfer:finish"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "getTransfer",
+    "method": "GET",
+    "url": "/mes/wm/transfer/get",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "stockTransfer",
+    "method": "PUT",
+    "url": "/mes/wm/transfer/stock",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "submitTransfer",
+    "method": "PUT",
+    "url": "/mes/wm/transfer/submit",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/index.ts",
+    "function": "updateTransfer",
+    "method": "PUT",
+    "url": "/mes/wm/transfer/update",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/line/index.ts",
+    "function": "createTransferLine",
+    "method": "POST",
+    "url": "/mes/wm/transfer-line/create",
+    "permissions": [
+      "mes:wm-transfer:create"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/line/index.ts",
+    "function": "getTransferLine",
+    "method": "GET",
+    "url": "/mes/wm/transfer-line/get",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/line/index.ts",
+    "function": "updateTransferLine",
+    "method": "PUT",
+    "url": "/mes/wm/transfer-line/update",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/line/index.ts",
+    "function": "deleteTransferLine",
+    "method": "DELETE",
+    "url": "/mes/wm/transfer-line/delete",
+    "permissions": [
+      "mes:wm-transfer:delete"
+    ]
+  },
+  {
+    "menu": 5922,
+    "page": "杞Щ璋冩嫧",
+    "source": "mom-pro2-before\\src\\views\\wls\\transfer\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/transfer/line/index.ts",
+    "function": "getTransferLineList",
+    "method": "GET",
+    "url": "/mes/wm/transfer-line/list",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\components\\condition-value-input.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocation",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/plan/index.ts",
+    "function": "exportStockTakingPlan",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan/export-excel",
+    "permissions": [
+      "mes:wm-stock-taking-plan:export"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/plan/index.ts",
+    "function": "getStockTakingPlanPage",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan/page",
+    "permissions": [
+      "mes:wm-stock-taking-plan:query"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/plan/index.ts",
+    "function": "updateStockTakingPlanStatus",
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-plan/update-status",
+    "permissions": [
+      "mes:wm-stock-taking-plan:update"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/plan/index.ts",
+    "function": "getStockTakingPlan",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan/get",
+    "permissions": [
+      "mes:wm-stock-taking-plan:query"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/plan/index.ts",
+    "function": "updateStockTakingPlan",
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-plan/update",
+    "permissions": [
+      "mes:wm-stock-taking-plan:update"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\modules\\param-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/plan/param/index.ts",
+    "function": "getStockTakingPlanParam",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan-param/get",
+    "permissions": [
+      "mes:wm-stock-taking-plan:query"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\modules\\param-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/plan/param/index.ts",
+    "function": "updateStockTakingPlanParam",
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-plan-param/update",
+    "permissions": [
+      "mes:wm-stock-taking-plan:update"
+    ]
+  },
+  {
+    "menu": 5951,
+    "page": "鐩樼偣鏂规",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\plan\\modules\\param-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/plan/param/index.ts",
+    "function": "getStockTakingPlanParamPage",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan-param/page",
+    "permissions": [
+      "mes:wm-stock-taking-plan:query"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/index.ts",
+    "function": "deleteStockTaking",
+    "method": "DELETE",
+    "url": "/mes/wm/stocktaking-task/delete",
+    "permissions": [
+      "mes:wm-stock-taking-task:delete"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/index.ts",
+    "function": "exportStockTaking",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task/export-excel",
+    "permissions": [
+      "mes:wm-stock-taking-task:export"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/index.ts",
+    "function": "getStockTakingPage",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task/page",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/index.ts",
+    "function": "finishStockTaking",
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task/finish",
+    "permissions": [
+      "mes:wm-stock-taking-task:finish"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/index.ts",
+    "function": "getStockTaking",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task/get",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/index.ts",
+    "function": "submitStockTaking",
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task/submit",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/index.ts",
+    "function": "updateStockTaking",
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task/update",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/line/index.ts",
+    "function": "deleteStockTakingTaskLine",
+    "method": "DELETE",
+    "url": "/mes/wm/stocktaking-task-line/delete",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/line/index.ts",
+    "function": "getStockTakingTaskLinePage",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task-line/page",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\result-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/result/index.ts",
+    "function": "createStockTakingResult",
+    "method": "POST",
+    "url": "/mes/wm/stocktaking-task-result/create",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\result-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/result/index.ts",
+    "function": "getStockTakingResult",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task-result/get",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\result-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/result/index.ts",
+    "function": "updateStockTakingResult",
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task-result/update",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ]
+  },
+  {
+    "menu": 5957,
+    "page": "鐩樼偣浠诲姟",
+    "source": "mom-pro2-before\\src\\views\\wls\\stocktaking\\task\\modules\\result-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/stocktaking/task/result/index.ts",
+    "function": "getStockTakingResultPage",
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task-result/page",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ]
+  },
+  {
+    "menu": 5966,
+    "page": "鎵规杩芥函",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\batchtrace\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/batch/index.ts",
+    "function": "getBatchPage",
+    "method": "GET",
+    "url": "/mes/wm/batch/page",
+    "permissions": [
+      "mes:wm-batch:query"
+    ]
+  },
+  {
+    "menu": 5966,
+    "page": "鎵规杩芥函",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\batchtrace\\modules\\trace-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/batch/index.ts",
+    "function": "getForwardBatchList",
+    "method": "GET",
+    "url": "/mes/wm/batch/forward-list",
+    "permissions": [
+      "mes:wm-batch:query"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "deleteProductSales",
+    "method": "DELETE",
+    "url": "/mes/wm/product-sales/delete",
+    "permissions": [
+      "mes:wm-product-sales:delete"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "exportProductSales",
+    "method": "GET",
+    "url": "/mes/wm/product-sales/export-excel",
+    "permissions": [
+      "mes:wm-product-sales:export"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "getProductSalesPage",
+    "method": "GET",
+    "url": "/mes/wm/product-sales/page",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/detail/index.ts",
+    "function": "getProductSalesDetail",
+    "method": "GET",
+    "url": "/mes/wm/product-sales-detail/get",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\detail-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/detail/index.ts",
+    "function": "updateProductSalesDetail",
+    "method": "PUT",
+    "url": "/mes/wm/product-sales-detail/update",
+    "permissions": [
+      "mes:wm-product-sales:update"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "createProductSales",
+    "method": "POST",
+    "url": "/mes/wm/product-sales/create",
+    "permissions": [
+      "mes:wm-product-sales:create"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "finishProductSales",
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/finish",
+    "permissions": [
+      "mes:wm-product-sales:finish"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "getProductSales",
+    "method": "GET",
+    "url": "/mes/wm/product-sales/get",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "shippingProductSales",
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/shipping",
+    "permissions": [
+      "mes:wm-product-sales:shipping"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "stockProductSales",
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/stock",
+    "permissions": [
+      "mes:wm-product-sales:stock"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "submitProductSales",
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/submit",
+    "permissions": [
+      "mes:wm-product-sales:submit"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/index.ts",
+    "function": "updateProductSales",
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/update",
+    "permissions": [
+      "mes:wm-product-sales:update"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/line/index.ts",
+    "function": "getProductSalesLine",
+    "method": "GET",
+    "url": "/mes/wm/product-sales-line/get",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\line-form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/line/index.ts",
+    "function": "updateProductSalesLine",
+    "method": "PUT",
+    "url": "/mes/wm/product-sales-line/update",
+    "permissions": [
+      "mes:wm-product-sales:update"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/line/index.ts",
+    "function": "deleteProductSalesLine",
+    "method": "DELETE",
+    "url": "/mes/wm/product-sales-line/delete",
+    "permissions": [
+      "mes:wm-product-sales:delete"
+    ]
+  },
+  {
+    "menu": 5970,
+    "page": "閿�鍞嚭搴�",
+    "source": "mom-pro2-before\\src\\views\\wls\\productsales\\modules\\line-list.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/productsales/line/index.ts",
+    "function": "getProductSalesLinePage",
+    "method": "GET",
+    "url": "/mes/wm/product-sales-line/page",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ]
+  },
+  {
+    "menu": 5981,
+    "page": "宸ヤ綔璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workrecord\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workrecord/index.ts",
+    "function": "getWorkRecordLogPage",
+    "method": "GET",
+    "url": "/mes/pro/workrecord/log/page",
+    "permissions": [
+      "mes:pro-workrecord:query"
+    ]
+  },
+  {
+    "menu": 5981,
+    "page": "宸ヤ綔璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workrecord\\modules\\status-bar.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workrecord/index.ts",
+    "function": "clockOutWorkRecord",
+    "method": "PUT",
+    "url": "/mes/pro/workrecord/clock-out",
+    "permissions": [
+      "mes:pro-workrecord:clock"
+    ]
+  },
+  {
+    "menu": 5981,
+    "page": "宸ヤ綔璁板綍",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\workrecord\\modules\\status-bar.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/workrecord/index.ts",
+    "function": "getMyWorkRecord",
+    "method": "GET",
+    "url": "/mes/pro/workrecord/get-my",
+    "permissions": [
+      "mes:pro-workrecord:query"
+    ]
+  },
+  {
+    "menu": 6003,
+    "page": "璇峰亣鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\leave\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/leave/index.ts",
+    "function": "deleteLeave",
+    "method": "DELETE",
+    "url": "/hrm/leave/delete",
+    "permissions": [
+      "hrm:leave:delete"
+    ]
+  },
+  {
+    "menu": 6003,
+    "page": "璇峰亣鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\leave\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/leave/index.ts",
+    "function": "getLeaveApproveProcessDefinitionList",
+    "method": "GET",
+    "url": "/hrm/leave/approve-process-definition-list",
+    "permissions": [
+      "hrm:leave:query"
+    ]
+  },
+  {
+    "menu": 6003,
+    "page": "璇峰亣鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\leave\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/leave/index.ts",
+    "function": "getLeavePage",
+    "method": "GET",
+    "url": "/hrm/leave/page",
+    "permissions": [
+      "hrm:leave:query"
+    ]
+  },
+  {
+    "menu": 6003,
+    "page": "璇峰亣鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\leave\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/leave/index.ts",
+    "function": "submitLeave",
+    "method": "POST",
+    "url": "/hrm/leave/submit",
+    "permissions": [
+      "hrm:leave:submit"
+    ]
+  },
+  {
+    "menu": 6003,
+    "page": "璇峰亣鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\leave\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/leave/index.ts",
+    "function": "getLeave",
+    "method": "GET",
+    "url": "/hrm/leave/get",
+    "permissions": [
+      "hrm:leave:query"
+    ]
+  },
+  {
+    "menu": 6003,
+    "page": "璇峰亣鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\leave\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/leave/index.ts",
+    "function": "updateLeave",
+    "method": "PUT",
+    "url": "/hrm/leave/update",
+    "permissions": [
+      "hrm:leave:update"
+    ]
+  },
+  {
+    "menu": 6004,
+    "page": "璋冨矖鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\transfer\\data.ts",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "getSimplePostList",
+    "method": "GET",
+    "url": "/system/post/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 6004,
+    "page": "璋冨矖鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\transfer\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/transfer/index.ts",
+    "function": "deleteTransfer",
+    "method": "DELETE",
+    "url": "/hrm/transfer/delete",
+    "permissions": [
+      "hrm:transfer:delete"
+    ]
+  },
+  {
+    "menu": 6004,
+    "page": "璋冨矖鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\transfer\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/transfer/index.ts",
+    "function": "getTransferPage",
+    "method": "GET",
+    "url": "/hrm/transfer/page",
+    "permissions": [
+      "hrm:transfer:query"
+    ]
+  },
+  {
+    "menu": 6004,
+    "page": "璋冨矖鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\transfer\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/transfer/index.ts",
+    "function": "submitTransfer",
+    "method": "POST",
+    "url": "/hrm/transfer/submit",
+    "permissions": [
+      "hrm:transfer:submit"
+    ]
+  },
+  {
+    "menu": 6004,
+    "page": "璋冨矖鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/transfer/index.ts",
+    "function": "getTransfer",
+    "method": "GET",
+    "url": "/hrm/transfer/get",
+    "permissions": [
+      "hrm:transfer:query"
+    ]
+  },
+  {
+    "menu": 6004,
+    "page": "璋冨矖鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/transfer/index.ts",
+    "function": "updateTransfer",
+    "method": "PUT",
+    "url": "/hrm/transfer/update",
+    "permissions": [
+      "hrm:transfer:update"
+    ]
+  },
+  {
+    "menu": 6004,
+    "page": "璋冨矖鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\transfer\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/index.ts",
+    "function": "getEmployeeSimpleList",
+    "method": "GET",
+    "url": "/hrm/employee/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 6005,
+    "page": "绂昏亴鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\resignation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/resignation/index.ts",
+    "function": "deleteResignation",
+    "method": "DELETE",
+    "url": "/hrm/resignation/delete",
+    "permissions": [
+      "hrm:resignation:delete"
+    ]
+  },
+  {
+    "menu": 6005,
+    "page": "绂昏亴鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\resignation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/resignation/index.ts",
+    "function": "getResignationPage",
+    "method": "GET",
+    "url": "/hrm/resignation/page",
+    "permissions": [
+      "hrm:resignation:query"
+    ]
+  },
+  {
+    "menu": 6005,
+    "page": "绂昏亴鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\resignation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/resignation/index.ts",
+    "function": "submitResignation",
+    "method": "POST",
+    "url": "/hrm/resignation/submit",
+    "permissions": [
+      "hrm:resignation:submit"
+    ]
+  },
+  {
+    "menu": 6005,
+    "page": "绂昏亴鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\resignation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/resignation/index.ts",
+    "function": "updateHandoverStatus",
+    "method": "PUT",
+    "url": "/hrm/resignation/handover",
+    "permissions": [
+      "hrm:resignation:update"
+    ]
+  },
+  {
+    "menu": 6005,
+    "page": "绂昏亴鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\resignation\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/resignation/index.ts",
+    "function": "getResignation",
+    "method": "GET",
+    "url": "/hrm/resignation/get",
+    "permissions": [
+      "hrm:resignation:query"
+    ]
+  },
+  {
+    "menu": 6005,
+    "page": "绂昏亴鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\resignation\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/resignation/index.ts",
+    "function": "updateResignation",
+    "method": "PUT",
+    "url": "/hrm/resignation/update",
+    "permissions": [
+      "hrm:resignation:update"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\contract\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/contract/index.ts",
+    "function": "getEmployeeContractPage",
+    "method": "GET",
+    "url": "/hrm/employee-contract/page",
+    "permissions": [
+      "hrm:employee-contract:query"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\contract\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/contract/index.ts",
+    "function": "getEmployeeContract",
+    "method": "GET",
+    "url": "/hrm/employee-contract/get",
+    "permissions": [
+      "hrm:employee-contract:query"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\contract\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/contract/index.ts",
+    "function": "updateEmployeeContract",
+    "method": "PUT",
+    "url": "/hrm/employee-contract/update",
+    "permissions": [
+      "hrm:employee-contract:update"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\contract\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/contract/index.ts",
+    "function": "importEmployeeContractTemplate",
+    "method": "GET",
+    "url": "/hrm/employee-contract/import-template",
+    "permissions": [
+      "hrm:employee-contract:import"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\data.ts",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getDeptList",
+    "method": "GET",
+    "url": "/system/dept/list",
+    "permissions": [
+      "system:dept:query"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\data.ts",
+    "api": "mom-pro2-before/src/api/system/post/index.ts",
+    "function": "getSimplePostList",
+    "method": "GET",
+    "url": "/system/post/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\data.ts",
+    "api": "mom-pro2-before/src/api/system/role/index.ts",
+    "function": "getSimpleRoleList",
+    "method": "GET",
+    "url": "/system/role/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/index.ts",
+    "function": "exportEmployee",
+    "method": "GET",
+    "url": "/hrm/employee/export-excel",
+    "permissions": [
+      "hrm:employee:export"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/index.ts",
+    "function": "getEmployeePage",
+    "method": "GET",
+    "url": "/hrm/employee/page",
+    "permissions": [
+      "hrm:employee:query"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/index.ts",
+    "function": "getEmployee",
+    "method": "GET",
+    "url": "/hrm/employee/get",
+    "permissions": [
+      "hrm:employee:query"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/index.ts",
+    "function": "updateEmployee",
+    "method": "PUT",
+    "url": "/hrm/employee/update",
+    "permissions": [
+      "hrm:employee:update"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/hrm/employee/index.ts",
+    "function": "importEmployeeTemplate",
+    "method": "GET",
+    "url": "/hrm/employee/import-template",
+    "permissions": [
+      "hrm:employee:import"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\modules\\social-security-form.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/employee-social-security/index.ts",
+    "function": "getEmployeeSocialSecurity",
+    "method": "GET",
+    "url": "/hrm/salary/employee-social-security/get",
+    "permissions": [
+      "hrm:employee-social-security:query"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\modules\\social-security-list.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/employee-social-security/index.ts",
+    "function": "updateEmployeeSocialSecurity",
+    "method": "PUT",
+    "url": "/hrm/salary/employee-social-security/update",
+    "permissions": [
+      "hrm:employee-social-security:update"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\modules\\social-security-list.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/employee-social-security/index.ts",
+    "function": "deleteEmployeeSocialSecurity",
+    "method": "DELETE",
+    "url": "/hrm/salary/employee-social-security/delete",
+    "permissions": [
+      "hrm:employee-social-security:delete"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\modules\\social-security-list.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/employee-social-security/index.ts",
+    "function": "getEmployeeSocialSecurityListByUser",
+    "method": "GET",
+    "url": "/hrm/salary/employee-social-security/list-by-user",
+    "permissions": [
+      "hrm:employee-social-security:query"
+    ]
+  },
+  {
+    "menu": 6006,
+    "page": "鍛樺伐绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\employee\\modules\\social-security-list.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/social-security-scheme/index.ts",
+    "function": "getSocialSecuritySchemeList",
+    "method": "GET",
+    "url": "/hrm/salary/social-security-scheme/list",
+    "permissions": [
+      "hrm:social-security-scheme:query"
+    ]
+  },
+  {
+    "menu": 6011,
+    "page": "鑰冨嫟璁板綍",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\record\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/record/index.ts",
+    "function": "getAttendanceRecordPage",
+    "method": "GET",
+    "url": "/hrm/attendance/record/page",
+    "permissions": [
+      "hrm:attendance-record:query"
+    ]
+  },
+  {
+    "menu": 6011,
+    "page": "鑰冨嫟璁板綍",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\record\\modules\\clock-panel.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/record/index.ts",
+    "function": "clockOut",
+    "method": "POST",
+    "url": "/hrm/attendance/record/clock-out",
+    "permissions": [
+      "hrm:attendance-record:clock"
+    ]
+  },
+  {
+    "menu": 6011,
+    "page": "鑰冨嫟璁板綍",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\record\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/record/index.ts",
+    "function": "importAttendanceTemplate",
+    "method": "GET",
+    "url": "/hrm/attendance/record/get-import-template",
+    "permissions": [
+      "hrm:attendance-record:import"
+    ]
+  },
+  {
+    "menu": 6012,
+    "page": "鑰冨嫟寮傚父",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\exception\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/exception/index.ts",
+    "function": "getAttendanceExceptionPage",
+    "method": "GET",
+    "url": "/hrm/attendance/exception/page",
+    "permissions": [
+      "hrm:attendance-exception:query"
+    ]
+  },
+  {
+    "menu": 6012,
+    "page": "鑰冨嫟寮傚父",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\exception\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/exception/index.ts",
+    "function": "submitAttendanceException",
+    "method": "POST",
+    "url": "/hrm/attendance/exception/submit",
+    "permissions": [
+      "hrm:attendance-exception:submit"
+    ]
+  },
+  {
+    "menu": 6012,
+    "page": "鑰冨嫟寮傚父",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\exception\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/exception/index.ts",
+    "function": "getAttendanceException",
+    "method": "GET",
+    "url": "/hrm/attendance/exception/get",
+    "permissions": [
+      "hrm:attendance-exception:query"
+    ]
+  },
+  {
+    "menu": 6013,
+    "page": "鑰冨嫟瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\rule\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/rule/index.ts",
+    "function": "exportAttendanceRule",
+    "method": "GET",
+    "url": "/hrm/attendance/rule/export-excel",
+    "permissions": [
+      "hrm:attendance-rule:export"
+    ]
+  },
+  {
+    "menu": 6013,
+    "page": "鑰冨嫟瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\rule\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/rule/index.ts",
+    "function": "getAttendanceRulePage",
+    "method": "GET",
+    "url": "/hrm/attendance/rule/page",
+    "permissions": [
+      "hrm:attendance-rule:query"
+    ]
+  },
+  {
+    "menu": 6013,
+    "page": "鑰冨嫟瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\rule\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/rule/index.ts",
+    "function": "getAttendanceRule",
+    "method": "GET",
+    "url": "/hrm/attendance/rule/get",
+    "permissions": [
+      "hrm:attendance-rule:query"
+    ]
+  },
+  {
+    "menu": 6013,
+    "page": "鑰冨嫟瑙勫垯",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\rule\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/rule/index.ts",
+    "function": "updateAttendanceRule",
+    "method": "PUT",
+    "url": "/hrm/attendance/rule/update",
+    "permissions": [
+      "hrm:attendance-rule:update"
+    ]
+  },
+  {
+    "menu": 6014,
+    "page": "鑺傚亣鏃ラ厤缃�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\holiday\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/holiday/index.ts",
+    "function": "exportAttendanceHoliday",
+    "method": "GET",
+    "url": "/hrm/attendance/holiday/export-excel",
+    "permissions": [
+      "hrm:attendance-holiday:export"
+    ]
+  },
+  {
+    "menu": 6014,
+    "page": "鑺傚亣鏃ラ厤缃�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\holiday\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/holiday/index.ts",
+    "function": "getAttendanceHolidayPage",
+    "method": "GET",
+    "url": "/hrm/attendance/holiday/page",
+    "permissions": [
+      "hrm:attendance-holiday:query"
+    ]
+  },
+  {
+    "menu": 6014,
+    "page": "鑺傚亣鏃ラ厤缃�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\holiday\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/holiday/index.ts",
+    "function": "getAttendanceHoliday",
+    "method": "GET",
+    "url": "/hrm/attendance/holiday/get",
+    "permissions": [
+      "hrm:attendance-holiday:query"
+    ]
+  },
+  {
+    "menu": 6014,
+    "page": "鑺傚亣鏃ラ厤缃�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\holiday\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/holiday/index.ts",
+    "function": "updateAttendanceHoliday",
+    "method": "PUT",
+    "url": "/hrm/attendance/holiday/update",
+    "permissions": [
+      "hrm:attendance-holiday:update"
+    ]
+  },
+  {
+    "menu": 6015,
+    "page": "鑰冨嫟缁熻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\summary\\data.ts",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getDeptList",
+    "method": "GET",
+    "url": "/system/dept/list",
+    "permissions": [
+      "system:dept:query"
+    ]
+  },
+  {
+    "menu": 6015,
+    "page": "鑰冨嫟缁熻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\attendance\\summary\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/attendance/summary/index.ts",
+    "function": "getAttendanceSummaryPage",
+    "method": "GET",
+    "url": "/hrm/attendance/summary/page",
+    "permissions": [
+      "hrm:attendance-summary:query"
+    ]
+  },
+  {
+    "menu": 6016,
+    "page": "鐝绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\shift\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/shift/index.ts",
+    "function": "exportShift",
+    "method": "GET",
+    "url": "/hrm/shift/export-excel",
+    "permissions": [
+      "hrm:shift:export"
+    ]
+  },
+  {
+    "menu": 6016,
+    "page": "鐝绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\shift\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/shift/index.ts",
+    "function": "getShiftPage",
+    "method": "GET",
+    "url": "/hrm/shift/page",
+    "permissions": [
+      "hrm:shift:query"
+    ]
+  },
+  {
+    "menu": 6016,
+    "page": "鐝绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\shift\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/shift/index.ts",
+    "function": "getShift",
+    "method": "GET",
+    "url": "/hrm/shift/get",
+    "permissions": [
+      "hrm:shift:query"
+    ]
+  },
+  {
+    "menu": 6016,
+    "page": "鐝绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\shift\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/shift/index.ts",
+    "function": "updateShift",
+    "method": "PUT",
+    "url": "/hrm/shift/update",
+    "permissions": [
+      "hrm:shift:update"
+    ]
+  },
+  {
+    "menu": 6017,
+    "page": "鎺掔彮绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\schedule\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/shift/index.ts",
+    "function": "getShiftList",
+    "method": "GET",
+    "url": "/hrm/shift/list",
+    "permissions": [
+      "hrm:shift:query"
+    ]
+  },
+  {
+    "menu": 6017,
+    "page": "鎺掔彮绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\schedule\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/schedule/index.ts",
+    "function": "getEmployeeScheduleList",
+    "method": "GET",
+    "url": "/hrm/employee-schedule/list",
+    "permissions": [
+      "hrm:employee-schedule:query"
+    ]
+  },
+  {
+    "menu": 6017,
+    "page": "鎺掔彮绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\schedule\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/schedule/index.ts",
+    "function": "saveEmployeeSchedule",
+    "method": "POST",
+    "url": "/hrm/employee-schedule/save",
+    "permissions": [
+      "hrm:employee-schedule:save"
+    ]
+  },
+  {
+    "menu": 6017,
+    "page": "鎺掔彮绠$悊",
+    "source": "mom-pro2-before\\src\\views\\hrm\\schedule\\index.vue",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getDeptList",
+    "method": "GET",
+    "url": "/system/dept/list",
+    "permissions": [
+      "system:dept:query"
+    ]
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\data.ts",
+    "api": "mom-pro2-before/src/api/hrm/employee/index.ts",
+    "function": "getEmployeeSimpleList",
+    "method": "GET",
+    "url": "/hrm/employee/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/calculation/index.ts",
+    "function": "confirmSalary",
+    "method": "POST",
+    "url": "/hrm/salary/calculation/confirm",
+    "permissions": [
+      "hrm:salary-calculation:confirm"
+    ]
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/calculation/index.ts",
+    "function": "deleteSalaryCalculation",
+    "method": "DELETE",
+    "url": "/hrm/salary/calculation/delete",
+    "permissions": [
+      "hrm:salary-calculation:delete"
+    ]
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/calculation/index.ts",
+    "function": "exportSalaryCalculation",
+    "method": "GET",
+    "url": "/hrm/salary/calculation/export-excel",
+    "permissions": [
+      "hrm:salary-calculation:export"
+    ]
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/calculation/index.ts",
+    "function": "getSalaryCalculationPage",
+    "method": "GET",
+    "url": "/hrm/salary/calculation/page",
+    "permissions": [
+      "hrm:salary-calculation:query"
+    ]
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/calculation/index.ts",
+    "function": "previewSalaryCalculation",
+    "method": "GET",
+    "url": "/hrm/salary/calculation/preview",
+    "permissions": [
+      "hrm:salary-calculation:query"
+    ]
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/calculation/index.ts",
+    "function": "revokeSalaryCalculation",
+    "method": "POST",
+    "url": "/hrm/salary/calculation/revoke",
+    "permissions": [
+      "hrm:salary-calculation:confirm"
+    ]
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/calculation/index.ts",
+    "function": "saveSalaryCalculation",
+    "method": "POST",
+    "url": "/hrm/salary/calculation/save",
+    "permissions": [
+      "hrm:salary-calculation:save"
+    ]
+  },
+  {
+    "menu": 6021,
+    "page": "钖叕鏍哥畻",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\calculation\\index.vue",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getDeptList",
+    "method": "GET",
+    "url": "/system/dept/list",
+    "permissions": [
+      "system:dept:query"
+    ]
+  },
+  {
+    "menu": 6022,
+    "page": "钖祫鍙戞斁",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/payment/index.ts",
+    "function": "generateSalaryPayment",
+    "method": "POST",
+    "url": "/hrm/salary/payment/generate",
+    "permissions": [
+      "hrm:salary-payment:generate"
+    ]
+  },
+  {
+    "menu": 6022,
+    "page": "钖祫鍙戞斁",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/payment/index.ts",
+    "function": "getSalaryPaymentPage",
+    "method": "GET",
+    "url": "/hrm/salary/payment/page",
+    "permissions": [
+      "hrm:salary-payment:query"
+    ]
+  },
+  {
+    "menu": 6022,
+    "page": "钖祫鍙戞斁",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/payment/index.ts",
+    "function": "paySalary",
+    "method": "POST",
+    "url": "/hrm/salary/payment/pay",
+    "permissions": [
+      "hrm:salary-payment:pay"
+    ]
+  },
+  {
+    "menu": 6022,
+    "page": "钖祫鍙戞斁",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\payment\\modules\\detail.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/payment/index.ts",
+    "function": "paySalaryDetail",
+    "method": "POST",
+    "url": "/hrm/salary/payment/pay-detail",
+    "permissions": [
+      "hrm:salary-payment:pay"
+    ]
+  },
+  {
+    "menu": 6023,
+    "page": "鍛樺伐绀句繚鍏Н閲戞。妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\employee-social-security\\data.ts",
+    "api": "mom-pro2-before/src/api/system/dept/index.ts",
+    "function": "getDeptList",
+    "method": "GET",
+    "url": "/system/dept/list",
+    "permissions": [
+      "system:dept:query"
+    ]
+  },
+  {
+    "menu": 6023,
+    "page": "鍛樺伐绀句繚鍏Н閲戞。妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\employee-social-security\\data.ts",
+    "api": "mom-pro2-before/src/api/hrm/employee/index.ts",
+    "function": "getEmployeeSimpleList",
+    "method": "GET",
+    "url": "/hrm/employee/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 6023,
+    "page": "鍛樺伐绀句繚鍏Н閲戞。妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\employee-social-security\\data.ts",
+    "api": "mom-pro2-before/src/api/hrm/salary/social-security-scheme/index.ts",
+    "function": "getSocialSecuritySchemeList",
+    "method": "GET",
+    "url": "/hrm/salary/social-security-scheme/list",
+    "permissions": [
+      "hrm:social-security-scheme:query"
+    ]
+  },
+  {
+    "menu": 6023,
+    "page": "鍛樺伐绀句繚鍏Н閲戞。妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\employee-social-security\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/employee-social-security/index.ts",
+    "function": "getEmployeeSocialSecurityPage",
+    "method": "GET",
+    "url": "/hrm/salary/employee-social-security/page",
+    "permissions": [
+      "hrm:employee-social-security:query"
+    ]
+  },
+  {
+    "menu": 6023,
+    "page": "鍛樺伐绀句繚鍏Н閲戞。妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\employee-social-security\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/employee-social-security/index.ts",
+    "function": "getEmployeeSocialSecurity",
+    "method": "GET",
+    "url": "/hrm/salary/employee-social-security/get",
+    "permissions": [
+      "hrm:employee-social-security:query"
+    ]
+  },
+  {
+    "menu": 6023,
+    "page": "鍛樺伐绀句繚鍏Н閲戞。妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\employee-social-security\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/employee-social-security/index.ts",
+    "function": "updateEmployeeSocialSecurity",
+    "method": "PUT",
+    "url": "/hrm/salary/employee-social-security/update",
+    "permissions": [
+      "hrm:employee-social-security:update"
+    ]
+  },
+  {
+    "menu": 6024,
+    "page": "涓◣绋庣巼閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\tax-rate-config\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/tax-rate-config/index.ts",
+    "function": "getTaxRateConfigList",
+    "method": "GET",
+    "url": "/hrm/salary/tax-rate-config/list",
+    "permissions": [
+      "hrm:tax-rate-config:query"
+    ]
+  },
+  {
+    "menu": 6024,
+    "page": "涓◣绋庣巼閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\tax-rate-config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/tax-rate-config/index.ts",
+    "function": "getTaxRateConfig",
+    "method": "GET",
+    "url": "/hrm/salary/tax-rate-config/get",
+    "permissions": [
+      "hrm:tax-rate-config:query"
+    ]
+  },
+  {
+    "menu": 6024,
+    "page": "涓◣绋庣巼閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\tax-rate-config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/tax-rate-config/index.ts",
+    "function": "updateTaxRateConfig",
+    "method": "PUT",
+    "url": "/hrm/salary/tax-rate-config/update",
+    "permissions": [
+      "hrm:tax-rate-config:update"
+    ]
+  },
+  {
+    "menu": 6510,
+    "page": "鏁版嵁缁熻",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\statistics\\components\\distribution-chart.vue",
+    "api": "mom-pro2-before/src/api/im/manager/statistics/index.ts",
+    "function": "getMessageTypeDistribution",
+    "method": "GET",
+    "url": "/im/manager/statistics/message-type-distribution",
+    "permissions": [
+      "im:manager:statistics:query"
+    ]
+  },
+  {
+    "menu": 6510,
+    "page": "鏁版嵁缁熻",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\statistics\\components\\distribution-chart.vue",
+    "api": "mom-pro2-before/src/api/im/manager/statistics/index.ts",
+    "function": "getTopSenders",
+    "method": "GET",
+    "url": "/im/manager/statistics/top-senders",
+    "permissions": [
+      "im:manager:statistics:query"
+    ]
+  },
+  {
+    "menu": 6510,
+    "page": "鏁版嵁缁熻",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\statistics\\components\\trend-chart.vue",
+    "api": "mom-pro2-before/src/api/im/manager/statistics/index.ts",
+    "function": "getUserTrend",
+    "method": "GET",
+    "url": "/im/manager/statistics/user-trend",
+    "permissions": [
+      "im:manager:statistics:query"
+    ]
+  },
+  {
+    "menu": 6540,
+    "page": "缇よ亰鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\group\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/group/index.ts",
+    "function": "getManagerGroupPage",
+    "method": "GET",
+    "url": "/im/manager/group/page",
+    "permissions": [
+      "im:manager:group:query"
+    ]
+  },
+  {
+    "menu": 6540,
+    "page": "缇よ亰鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\group\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/group/index.ts",
+    "function": "unbanManagerGroup",
+    "method": "PUT",
+    "url": "/im/manager/group/unban",
+    "permissions": [
+      "im:manager:group:ban"
+    ]
+  },
+  {
+    "menu": 6560,
+    "page": "鏁忔劅璇嶇鐞�",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\sensitiveword\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/sensitiveword/index.ts",
+    "function": "deleteManagerSensitiveWordList",
+    "method": "DELETE",
+    "url": "/im/manager/sensitive-word/delete-list",
+    "permissions": [
+      "im:manager:sensitive-word:delete"
+    ]
+  },
+  {
+    "menu": 6560,
+    "page": "鏁忔劅璇嶇鐞�",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\sensitiveword\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/sensitiveword/index.ts",
+    "function": "getManagerSensitiveWordPage",
+    "method": "GET",
+    "url": "/im/manager/sensitive-word/page",
+    "permissions": [
+      "im:manager:sensitive-word:query"
+    ]
+  },
+  {
+    "menu": 6560,
+    "page": "鏁忔劅璇嶇鐞�",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\sensitiveword\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/sensitiveword/index.ts",
+    "function": "getManagerSensitiveWord",
+    "method": "GET",
+    "url": "/im/manager/sensitive-word/get",
+    "permissions": [
+      "im:manager:sensitive-word:query"
+    ]
+  },
+  {
+    "menu": 6560,
+    "page": "鏁忔劅璇嶇鐞�",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\sensitiveword\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/sensitiveword/index.ts",
+    "function": "updateManagerSensitiveWord",
+    "method": "PUT",
+    "url": "/im/manager/sensitive-word/update",
+    "permissions": [
+      "im:manager:sensitive-word:update"
+    ]
+  },
+  {
+    "menu": 6571,
+    "page": "绯荤粺琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\pack\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/pack/index.ts",
+    "function": "deleteManagerFacePackList",
+    "method": "DELETE",
+    "url": "/im/manager/face-pack/delete-list",
+    "permissions": [
+      "im:manager:face-pack:delete"
+    ]
+  },
+  {
+    "menu": 6571,
+    "page": "绯荤粺琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\pack\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/pack/index.ts",
+    "function": "getManagerFacePackPage",
+    "method": "GET",
+    "url": "/im/manager/face-pack/page",
+    "permissions": [
+      "im:manager:face-pack:query"
+    ]
+  },
+  {
+    "menu": 6571,
+    "page": "绯荤粺琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\pack\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/pack/index.ts",
+    "function": "getManagerFacePack",
+    "method": "GET",
+    "url": "/im/manager/face-pack/get",
+    "permissions": [
+      "im:manager:face-pack:query"
+    ]
+  },
+  {
+    "menu": 6571,
+    "page": "绯荤粺琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\pack\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/pack/index.ts",
+    "function": "updateManagerFacePack",
+    "method": "PUT",
+    "url": "/im/manager/face-pack/update",
+    "permissions": [
+      "im:manager:face-pack:update"
+    ]
+  },
+  {
+    "menu": 6571,
+    "page": "绯荤粺琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\pack\\modules\\item-drawer.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/item/index.ts",
+    "function": "deleteManagerFacePackItemList",
+    "method": "DELETE",
+    "url": "/im/manager/face-pack-item/delete-list",
+    "permissions": [
+      "im:manager:face-pack-item:delete"
+    ]
+  },
+  {
+    "menu": 6571,
+    "page": "绯荤粺琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\pack\\modules\\item-drawer.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/item/index.ts",
+    "function": "getManagerFacePackItemPage",
+    "method": "GET",
+    "url": "/im/manager/face-pack-item/page",
+    "permissions": [
+      "im:manager:face-pack-item:query"
+    ]
+  },
+  {
+    "menu": 6571,
+    "page": "绯荤粺琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\pack\\modules\\item-form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/item/index.ts",
+    "function": "getManagerFacePackItem",
+    "method": "GET",
+    "url": "/im/manager/face-pack-item/get",
+    "permissions": [
+      "im:manager:face-pack-item:query"
+    ]
+  },
+  {
+    "menu": 6571,
+    "page": "绯荤粺琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\pack\\modules\\item-form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/item/index.ts",
+    "function": "updateManagerFacePackItem",
+    "method": "PUT",
+    "url": "/im/manager/face-pack-item/update",
+    "permissions": [
+      "im:manager:face-pack-item:update"
+    ]
+  },
+  {
+    "menu": 6580,
+    "page": "鐢ㄦ埛琛ㄦ儏",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\face\\userItem\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/face/userItem/index.ts",
+    "function": "getManagerFaceUserItemPage",
+    "method": "GET",
+    "url": "/im/manager/face-user-item/page",
+    "permissions": [
+      "im:manager:face-user-item:query"
+    ]
+  },
+  {
+    "menu": 6710,
+    "page": "棰戦亾鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\channel\\list\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/channel/index.ts",
+    "function": "getManagerChannelPage",
+    "method": "GET",
+    "url": "/im/manager/channel/page",
+    "permissions": [
+      "im:manager:channel:query"
+    ]
+  },
+  {
+    "menu": 6710,
+    "page": "棰戦亾鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\channel\\list\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/channel/index.ts",
+    "function": "getManagerChannel",
+    "method": "GET",
+    "url": "/im/manager/channel/get",
+    "permissions": [
+      "im:manager:channel:query"
+    ]
+  },
+  {
+    "menu": 6710,
+    "page": "棰戦亾鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\channel\\list\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/channel/index.ts",
+    "function": "updateManagerChannel",
+    "method": "PUT",
+    "url": "/im/manager/channel/update",
+    "permissions": [
+      "im:manager:channel:update"
+    ]
+  },
+  {
+    "menu": 6720,
+    "page": "棰戦亾绱犳潗",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\channel\\material\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/channel/material/index.ts",
+    "function": "getManagerChannelMaterialPage",
+    "method": "GET",
+    "url": "/im/manager/channel-material/page",
+    "permissions": [
+      "im:manager:channel-material:query"
+    ]
+  },
+  {
+    "menu": 6720,
+    "page": "棰戦亾绱犳潗",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\channel\\material\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/channel/material/index.ts",
+    "function": "getManagerChannelMaterial",
+    "method": "GET",
+    "url": "/im/manager/channel-material/get",
+    "permissions": [
+      "im:manager:channel-material:query"
+    ]
+  },
+  {
+    "menu": 6720,
+    "page": "棰戦亾绱犳潗",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\channel\\material\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/im/manager/channel/material/index.ts",
+    "function": "updateManagerChannelMaterial",
+    "method": "PUT",
+    "url": "/im/manager/channel-material/update",
+    "permissions": [
+      "im:manager:channel-material:update"
+    ]
+  },
+  {
+    "menu": 6730,
+    "page": "棰戦亾娑堟伅",
+    "source": "mom-pro2-before\\src\\views\\im\\manager\\channel\\message\\index.vue",
+    "api": "mom-pro2-before/src/api/im/manager/channel/message/index.ts",
+    "function": "getManagerChannelMessagePage",
+    "method": "GET",
+    "url": "/im/manager/channel-message/page",
+    "permissions": [
+      "im:manager:channel-message:query"
+    ]
+  },
+  {
+    "menu": 602445,
+    "page": "绀句繚鍏Н閲戞柟妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\social-security-scheme\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/social-security-scheme/index.ts",
+    "function": "getSocialSecuritySchemeList",
+    "method": "GET",
+    "url": "/hrm/salary/social-security-scheme/list",
+    "permissions": [
+      "hrm:social-security-scheme:query"
+    ]
+  },
+  {
+    "menu": 602445,
+    "page": "绀句繚鍏Н閲戞柟妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\social-security-scheme\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/social-security-scheme/index.ts",
+    "function": "getSocialSecurityScheme",
+    "method": "GET",
+    "url": "/hrm/salary/social-security-scheme/get",
+    "permissions": [
+      "hrm:social-security-scheme:query"
+    ]
+  },
+  {
+    "menu": 602445,
+    "page": "绀句繚鍏Н閲戞柟妗�",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\social-security-scheme\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/salary/social-security-scheme/index.ts",
+    "function": "updateSocialSecurityScheme",
+    "method": "PUT",
+    "url": "/hrm/salary/social-security-scheme/update",
+    "permissions": [
+      "hrm:social-security-scheme:update"
+    ]
+  },
+  {
+    "menu": 602449,
+    "page": "璇峰亣鎵f閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\leave-type-config\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/leave-type-config/index.ts",
+    "function": "getLeaveTypeConfigList",
+    "method": "GET",
+    "url": "/hrm/leave-type-config/list",
+    "permissions": [
+      "hrm:leave-type-config:query"
+    ]
+  },
+  {
+    "menu": 602449,
+    "page": "璇峰亣鎵f閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\hrm\\salary\\leave-type-config\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/leave-type-config/index.ts",
+    "function": "updateLeaveTypeConfig",
+    "method": "PUT",
+    "url": "/hrm/leave-type-config/update",
+    "permissions": [
+      "hrm:leave-type-config:update"
+    ]
+  },
+  {
+    "menu": 602452,
+    "page": "搴撳尯鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602452,
+    "page": "搴撳尯鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "deleteWarehouseLocation",
+    "method": "DELETE",
+    "url": "/mes/wm/warehouse-location/delete",
+    "permissions": [
+      "mes:wm-warehouse:delete"
+    ]
+  },
+  {
+    "menu": 602452,
+    "page": "搴撳尯鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocationPage",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/page",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 602452,
+    "page": "搴撳尯鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocation",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 602452,
+    "page": "搴撳尯鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "updateAreaByLocationId",
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-location/update-by-location-id",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ]
+  },
+  {
+    "menu": 602452,
+    "page": "搴撳尯鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\location\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "updateWarehouseLocation",
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-location/update",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ]
+  },
+  {
+    "menu": 602453,
+    "page": "搴撲綅鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602453,
+    "page": "搴撲綅鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocationSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602453,
+    "page": "搴撲綅鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/area/index.ts",
+    "function": "getWarehouseAreaPage",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/page",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 602453,
+    "page": "搴撲綅鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/location/index.ts",
+    "function": "getWarehouseLocation",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 602453,
+    "page": "搴撲綅鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/area/index.ts",
+    "function": "getWarehouseArea",
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ]
+  },
+  {
+    "menu": 602453,
+    "page": "搴撲綅鍒楄〃",
+    "source": "mom-pro2-before\\src\\views\\wls\\warehouse\\area\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/area/index.ts",
+    "function": "updateWarehouseArea",
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-area/update",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\components\\batch-config.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item-batch-config/index.ts",
+    "function": "saveItemBatchConfig",
+    "method": "POST",
+    "url": "/mes/md/item-batch-config/save",
+    "permissions": [
+      "mes:md-item:update"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/md/item/type/index.ts",
+    "function": "getItemTypeSimpleList",
+    "method": "GET",
+    "url": "/mes/md/item-type/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "getUnitPage",
+    "method": "GET",
+    "url": "/mdm/unit/page",
+    "permissions": [
+      "mdm:unit:query"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\data.ts",
+    "api": "mom-pro2-before/src/api/mes/wm/warehouse/index.ts",
+    "function": "getWarehouseSimpleList",
+    "method": "GET",
+    "url": "/mes/wm/warehouse/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "exportItem",
+    "method": "GET",
+    "url": "/mdm/item/export-excel",
+    "permissions": [
+      "mdm:item:export"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "getItemPage",
+    "method": "GET",
+    "url": "/mdm/item/page",
+    "permissions": [
+      "mdm:item:query"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "updateItemStatus",
+    "method": "PUT",
+    "url": "/mdm/item/update-status",
+    "permissions": [
+      "mdm:item:update"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "updateItemSync",
+    "method": "PUT",
+    "url": "/mdm/item/update-sync",
+    "permissions": [
+      "mdm:item:update"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "getItem",
+    "method": "GET",
+    "url": "/mdm/item/get",
+    "permissions": [
+      "mdm:item:query"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "updateItem",
+    "method": "PUT",
+    "url": "/mdm/item/update",
+    "permissions": [
+      "mdm:item:update"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mdm/item/index.ts",
+    "function": "importItemTemplate",
+    "method": "GET",
+    "url": "/mdm/item/get-import-template",
+    "permissions": [
+      "mdm:item:import"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "exportUnit",
+    "method": "GET",
+    "url": "/mdm/unit/export-excel",
+    "permissions": [
+      "mdm:unit:export"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "getUnit",
+    "method": "GET",
+    "url": "/mdm/unit/get",
+    "permissions": [
+      "mdm:unit:query"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "updateUnit",
+    "method": "PUT",
+    "url": "/mdm/unit/update",
+    "permissions": [
+      "mdm:unit:update"
+    ]
+  },
+  {
+    "menu": 602461,
+    "page": "鐗╂枡绠$悊",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "importUnitTemplate",
+    "method": "GET",
+    "url": "/mdm/unit/get-import-template",
+    "permissions": [
+      "mdm:unit:import"
+    ]
+  },
+  {
+    "menu": 602467,
+    "page": "璁¢噺鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "exportUnit",
+    "method": "GET",
+    "url": "/mdm/unit/export-excel",
+    "permissions": [
+      "mdm:unit:export"
+    ]
+  },
+  {
+    "menu": 602467,
+    "page": "璁¢噺鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\index.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "getUnitPage",
+    "method": "GET",
+    "url": "/mdm/unit/page",
+    "permissions": [
+      "mdm:unit:query"
+    ]
+  },
+  {
+    "menu": 602467,
+    "page": "璁¢噺鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "getUnit",
+    "method": "GET",
+    "url": "/mdm/unit/get",
+    "permissions": [
+      "mdm:unit:query"
+    ]
+  },
+  {
+    "menu": 602467,
+    "page": "璁¢噺鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "updateUnit",
+    "method": "PUT",
+    "url": "/mdm/unit/update",
+    "permissions": [
+      "mdm:unit:update"
+    ]
+  },
+  {
+    "menu": 602467,
+    "page": "璁¢噺鍗曚綅",
+    "source": "mom-pro2-before\\src\\views\\basicData\\mdm\\unit\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/mdm/unit/index.ts",
+    "function": "importUnitTemplate",
+    "method": "GET",
+    "url": "/mdm/unit/get-import-template",
+    "permissions": [
+      "mdm:unit:import"
+    ]
+  },
+  {
+    "menu": 602474,
+    "page": "鍩虹鍙傛暟",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\parameter\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/parameter/index.ts",
+    "function": "getParameterPage",
+    "method": "GET",
+    "url": "/mes/pd/process-param/page",
+    "permissions": [
+      "mes:pd-process-param:query"
+    ]
+  },
+  {
+    "menu": 602474,
+    "page": "鍩虹鍙傛暟",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\parameter\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/parameter/index.ts",
+    "function": "exportParameterExcel",
+    "method": "GET",
+    "url": "/mes/pd/process-param/export-excel",
+    "permissions": [
+      "mes:pd-process-param:export"
+    ]
+  },
+  {
+    "menu": 602474,
+    "page": "鍩虹鍙傛暟",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\parameter\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/parameter/index.ts",
+    "function": "getParameter",
+    "method": "GET",
+    "url": "/mes/pd/process-param/get",
+    "permissions": [
+      "mes:pd-process-param:query"
+    ]
+  },
+  {
+    "menu": 602474,
+    "page": "鍩虹鍙傛暟",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\parameter\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/parameter/index.ts",
+    "function": "updateParameter",
+    "method": "PUT",
+    "url": "/mes/pd/process-param/update",
+    "permissions": [
+      "mes:pd-process-param:update"
+    ]
+  },
+  {
+    "menu": 602475,
+    "page": "鍙傛暟妯℃澘",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/template/index.ts",
+    "function": "getTemplatePage",
+    "method": "GET",
+    "url": "/mes/pd/process-param-template/page",
+    "permissions": [
+      "mes:pd-process-param-template:query"
+    ]
+  },
+  {
+    "menu": 602475,
+    "page": "鍙傛暟妯℃澘",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/template/index.ts",
+    "function": "exportTemplateExcel",
+    "method": "GET",
+    "url": "/mes/pd/process-param-template/export-excel",
+    "permissions": [
+      "mes:pd-process-param-template:export"
+    ]
+  },
+  {
+    "menu": 602475,
+    "page": "鍙傛暟妯℃澘",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/template/index.ts",
+    "function": "getTemplate",
+    "method": "GET",
+    "url": "/mes/pd/process-param-template/get",
+    "permissions": [
+      "mes:pd-process-param-template:query"
+    ]
+  },
+  {
+    "menu": 602475,
+    "page": "鍙傛暟妯℃澘",
+    "source": "mom-pro2-before\\src\\views\\mes\\process-design\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/processdesign/template/index.ts",
+    "function": "updateTemplate",
+    "method": "PUT",
+    "url": "/mes/pd/process-param-template/update",
+    "permissions": [
+      "mes:pd-process-param-template:update"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/request/index.ts",
+    "function": "exportPurchaseRequest",
+    "method": "GET",
+    "url": "/erp/purchase-request/export-excel",
+    "permissions": [
+      "erp:purchase-request:export"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/request/index.ts",
+    "function": "getApproveProcessList",
+    "method": "GET",
+    "url": "/erp/purchase-request/approve-process-list",
+    "permissions": [
+      "erp:purchase-request:query"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/request/index.ts",
+    "function": "getPurchaseRequestPage",
+    "method": "GET",
+    "url": "/erp/purchase-request/page",
+    "permissions": [
+      "erp:purchase-request:query"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/request/index.ts",
+    "function": "submitPurchaseRequest",
+    "method": "PUT",
+    "url": "/erp/purchase-request/submit",
+    "permissions": [
+      "erp:purchase-request:submit"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/request/index.ts",
+    "function": "getPurchaseRequest",
+    "method": "GET",
+    "url": "/erp/purchase-request/get",
+    "permissions": [
+      "erp:purchase-request:query"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/request/index.ts",
+    "function": "resetPurchaseRequestStatus",
+    "method": "PUT",
+    "url": "/erp/purchase-request/reset-status",
+    "permissions": [
+      "erp:purchase-request:update"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/request/index.ts",
+    "function": "updatePurchaseRequest",
+    "method": "PUT",
+    "url": "/erp/purchase-request/update",
+    "permissions": [
+      "erp:purchase-request:update"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/request/index.ts",
+    "function": "importPurchaseRequestTemplate",
+    "method": "GET",
+    "url": "/erp/purchase-request/get-import-template",
+    "permissions": [
+      "erp:purchase-request:import"
+    ]
+  },
+  {
+    "menu": 602498,
+    "page": "閲囪喘鐢宠",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\request\\modules\\order-form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602504,
+    "page": "鐢熶骇璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\mps\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/mps/index.ts",
+    "function": "deleteMps",
+    "method": "DELETE",
+    "url": "/mes/pro-mps/delete",
+    "permissions": [
+      "mes:pro-mps:delete"
+    ]
+  },
+  {
+    "menu": 602504,
+    "page": "鐢熶骇璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\mps\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/mps/index.ts",
+    "function": "exportMps",
+    "method": "GET",
+    "url": "/mes/pro-mps/export-excel",
+    "permissions": [
+      "mes:pro-mps:export"
+    ]
+  },
+  {
+    "menu": 602504,
+    "page": "鐢熶骇璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\mps\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/mps/index.ts",
+    "function": "getMpsPage",
+    "method": "GET",
+    "url": "/mes/pro-mps/page",
+    "permissions": [
+      "mes:pro-mps:query"
+    ]
+  },
+  {
+    "menu": 602504,
+    "page": "鐢熶骇璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\mps\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/mps/index.ts",
+    "function": "issueMps",
+    "method": "POST",
+    "url": "/mes/pro-mps/issue",
+    "permissions": [
+      "mes:pro-mps:issue"
+    ]
+  },
+  {
+    "menu": 602504,
+    "page": "鐢熶骇璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\mps\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/mps/index.ts",
+    "function": "mergeIssueMps",
+    "method": "POST",
+    "url": "/mes/pro-mps/merge-issue",
+    "permissions": [
+      "mes:pro-mps:merge-issue"
+    ]
+  },
+  {
+    "menu": 602504,
+    "page": "鐢熶骇璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\mps\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/mps/index.ts",
+    "function": "getMps",
+    "method": "GET",
+    "url": "/mes/pro-mps/get",
+    "permissions": [
+      "mes:pro-mps:query"
+    ]
+  },
+  {
+    "menu": 602504,
+    "page": "鐢熶骇璁″垝",
+    "source": "mom-pro2-before\\src\\views\\mes\\pro\\mps\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pro/mps/index.ts",
+    "function": "updateMps",
+    "method": "PUT",
+    "url": "/mes/pro-mps/update",
+    "permissions": [
+      "mes:pro-mps:update"
+    ]
+  },
+  {
+    "menu": 602512,
+    "page": "閿�鍞姤浠�",
+    "source": "mom-pro2-before\\src\\views\\crm\\saleQuotation\\data.ts",
+    "api": "mom-pro2-before/src/api/crm/contact/index.ts",
+    "function": "getSimpleContactList",
+    "method": "GET",
+    "url": "/crm/contact/simple-all-list",
+    "permissions": [
+      "crm:contact:query"
+    ]
+  },
+  {
+    "menu": 602512,
+    "page": "閿�鍞姤浠�",
+    "source": "mom-pro2-before\\src\\views\\crm\\saleQuotation\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602512,
+    "page": "閿�鍞姤浠�",
+    "source": "mom-pro2-before\\src\\views\\crm\\saleQuotation\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/saleQuotation/index.ts",
+    "function": "deleteSaleQuotation",
+    "method": "DELETE",
+    "url": "/crm/sale-quotation/delete",
+    "permissions": [
+      "crm:sale-quotation:delete"
+    ]
+  },
+  {
+    "menu": 602512,
+    "page": "閿�鍞姤浠�",
+    "source": "mom-pro2-before\\src\\views\\crm\\saleQuotation\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/saleQuotation/index.ts",
+    "function": "getSaleQuotationPage",
+    "method": "GET",
+    "url": "/crm/sale-quotation/page",
+    "permissions": [
+      "crm:sale-quotation:query"
+    ]
+  },
+  {
+    "menu": 602512,
+    "page": "閿�鍞姤浠�",
+    "source": "mom-pro2-before\\src\\views\\crm\\saleQuotation\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/saleQuotation/index.ts",
+    "function": "getSaleQuotation",
+    "method": "GET",
+    "url": "/crm/sale-quotation/get",
+    "permissions": [
+      "crm:sale-quotation:query"
+    ]
+  },
+  {
+    "menu": 602512,
+    "page": "閿�鍞姤浠�",
+    "source": "mom-pro2-before\\src\\views\\crm\\saleQuotation\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/saleQuotation/index.ts",
+    "function": "updateSaleQuotation",
+    "method": "PUT",
+    "url": "/crm/sale-quotation/update",
+    "permissions": [
+      "crm:sale-quotation:update"
+    ]
+  },
+  {
+    "menu": 602512,
+    "page": "閿�鍞姤浠�",
+    "source": "mom-pro2-before\\src\\views\\crm\\saleQuotation\\modules\\ocr-upload.vue",
+    "api": "mom-pro2-before/src/api/system/storage/index.ts",
+    "function": "uploadFile",
+    "method": "POST",
+    "url": "/system/storage-blob/upload",
+    "permissions": []
+  },
+  {
+    "menu": 602525,
+    "page": "渚涘簲鍟嗘。妗�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplier\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "exportSupplierExcel",
+    "method": "GET",
+    "url": "/srm/supplier/export-excel",
+    "permissions": [
+      "srm:supplier:export"
+    ]
+  },
+  {
+    "menu": 602525,
+    "page": "渚涘簲鍟嗘。妗�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplier\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierPage",
+    "method": "GET",
+    "url": "/srm/supplier/page",
+    "permissions": [
+      "srm:supplier:query"
+    ]
+  },
+  {
+    "menu": 602525,
+    "page": "渚涘簲鍟嗘。妗�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplier\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplier",
+    "method": "GET",
+    "url": "/srm/supplier/get",
+    "permissions": [
+      "srm:supplier:query"
+    ]
+  },
+  {
+    "menu": 602525,
+    "page": "渚涘簲鍟嗘。妗�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplier\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "updateSupplier",
+    "method": "PUT",
+    "url": "/srm/supplier/update",
+    "permissions": [
+      "srm:supplier:update"
+    ]
+  },
+  {
+    "menu": 602525,
+    "page": "渚涘簲鍟嗘。妗�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplier\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "importSupplierExcel",
+    "method": "POST",
+    "url": "/srm/supplier/import-excel",
+    "permissions": [
+      "srm:supplier:import"
+    ]
+  },
+  {
+    "menu": 602530,
+    "page": "渚涘簲鍟嗗噯鍏�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierApply\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierApply/index.ts",
+    "function": "getApproveProcessList",
+    "method": "GET",
+    "url": "/srm/supplier-apply/approve-process-list",
+    "permissions": [
+      "srm:supplier-apply:query"
+    ]
+  },
+  {
+    "menu": 602530,
+    "page": "渚涘簲鍟嗗噯鍏�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierApply\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierApply/index.ts",
+    "function": "getApplyPage",
+    "method": "GET",
+    "url": "/srm/supplier-apply/page",
+    "permissions": [
+      "srm:supplier-apply:query"
+    ]
+  },
+  {
+    "menu": 602530,
+    "page": "渚涘簲鍟嗗噯鍏�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierApply\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierApply/index.ts",
+    "function": "getApply",
+    "method": "GET",
+    "url": "/srm/supplier-apply/get",
+    "permissions": [
+      "srm:supplier-apply:query"
+    ]
+  },
+  {
+    "menu": 602530,
+    "page": "渚涘簲鍟嗗噯鍏�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierApply\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierApply/index.ts",
+    "function": "updateApply",
+    "method": "PUT",
+    "url": "/srm/supplier-apply/update",
+    "permissions": [
+      "srm:supplier-apply:update"
+    ]
+  },
+  {
+    "menu": 602535,
+    "page": "渚涘簲鍟嗚祫璐�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierCertificate\\data.ts",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602535,
+    "page": "渚涘簲鍟嗚祫璐�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierCertificate\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierCertificate/index.ts",
+    "function": "getCertificatePage",
+    "method": "GET",
+    "url": "/srm/supplier-certificate/page",
+    "permissions": [
+      "srm:supplier-certificate:query"
+    ]
+  },
+  {
+    "menu": 602535,
+    "page": "渚涘簲鍟嗚祫璐�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierCertificate\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierCertificate/index.ts",
+    "function": "getExpiringCertificates",
+    "method": "GET",
+    "url": "/srm/supplier-certificate/expiring-list",
+    "permissions": [
+      "srm:supplier-certificate:query"
+    ]
+  },
+  {
+    "menu": 602535,
+    "page": "渚涘簲鍟嗚祫璐�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierCertificate\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierCertificate/index.ts",
+    "function": "getCertificate",
+    "method": "GET",
+    "url": "/srm/supplier-certificate/get",
+    "permissions": [
+      "srm:supplier-certificate:query"
+    ]
+  },
+  {
+    "menu": 602535,
+    "page": "渚涘簲鍟嗚祫璐�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierCertificate\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierCertificate/index.ts",
+    "function": "updateCertificate",
+    "method": "PUT",
+    "url": "/srm/supplier-certificate/update",
+    "permissions": [
+      "srm:supplier-certificate:update"
+    ]
+  },
+  {
+    "menu": 602540,
+    "page": "渚涘簲鍟嗙哗鏁�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierEvaluation\\data.ts",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602540,
+    "page": "渚涘簲鍟嗙哗鏁�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierEvaluation\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierEvaluation/index.ts",
+    "function": "getEvaluationPage",
+    "method": "GET",
+    "url": "/srm/supplier-evaluation/page",
+    "permissions": [
+      "srm:supplier-evaluation:query"
+    ]
+  },
+  {
+    "menu": 602540,
+    "page": "渚涘簲鍟嗙哗鏁�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierEvaluation\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierEvaluation/index.ts",
+    "function": "getEvaluation",
+    "method": "GET",
+    "url": "/srm/supplier-evaluation/get",
+    "permissions": [
+      "srm:supplier-evaluation:query"
+    ]
+  },
+  {
+    "menu": 602540,
+    "page": "渚涘簲鍟嗙哗鏁�",
+    "source": "mom-pro2-before\\src\\views\\srm\\supplierEvaluation\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/supplierEvaluation/index.ts",
+    "function": "updateEvaluation",
+    "method": "PUT",
+    "url": "/srm/supplier-evaluation/update",
+    "permissions": [
+      "srm:supplier-evaluation:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\config\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender-config/index.ts",
+    "function": "saveTenderConfig",
+    "method": "PUT",
+    "url": "/srm/tender-config/save",
+    "permissions": [
+      "srm:tender-config:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getMaterialList",
+    "method": "GET",
+    "url": "/srm/tender-project/material/list",
+    "permissions": [
+      "srm:tender-project:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "createMaterial",
+    "method": "POST",
+    "url": "/srm/tender-project/material/create",
+    "permissions": [
+      "srm:tender-project:create"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "updateMaterial",
+    "method": "PUT",
+    "url": "/srm/tender-project/material/update",
+    "permissions": [
+      "srm:tender-project:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "deleteMaterial",
+    "method": "DELETE",
+    "url": "/srm/tender-project/material/delete",
+    "permissions": [
+      "srm:tender-project:delete"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getBidListByProject",
+    "method": "GET",
+    "url": "/srm/tender-bid/list-by-project",
+    "permissions": [
+      "srm:tender-bid:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "createBid",
+    "method": "POST",
+    "url": "/srm/tender-bid/create",
+    "permissions": [
+      "srm:tender-bid:create"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "withdrawBid",
+    "method": "PUT",
+    "url": "/srm/tender-bid/withdraw",
+    "permissions": [
+      "srm:tender-bid:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "updateBidTotal",
+    "method": "PUT",
+    "url": "/srm/tender-bid/update-total",
+    "permissions": [
+      "srm:tender-bid:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getQuoteList",
+    "method": "GET",
+    "url": "/srm/tender-bid/quote/list-by-bid",
+    "permissions": [
+      "srm:supplier-quote:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "createQuote",
+    "method": "POST",
+    "url": "/srm/tender-bid/quote/create",
+    "permissions": [
+      "srm:supplier-quote:create"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "updateQuote",
+    "method": "PUT",
+    "url": "/srm/tender-bid/quote/update",
+    "permissions": [
+      "srm:supplier-quote:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "createBidOpen",
+    "method": "POST",
+    "url": "/srm/bid-evaluation/bid-open/create",
+    "permissions": [
+      "srm:bid-open:create"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getBidOpen",
+    "method": "GET",
+    "url": "/srm/bid-evaluation/bid-open/get",
+    "permissions": [
+      "srm:bid-open:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getEvaluationList",
+    "method": "GET",
+    "url": "/srm/bid-evaluation/list-by-project",
+    "permissions": [
+      "srm:bid-evaluation:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "createBidEvaluation",
+    "method": "POST",
+    "url": "/srm/bid-evaluation/create",
+    "permissions": [
+      "srm:bid-evaluation:create"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "updateBidEvaluation",
+    "method": "PUT",
+    "url": "/srm/bid-evaluation/update",
+    "permissions": [
+      "srm:bid-evaluation:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "calculateRanking",
+    "method": "PUT",
+    "url": "/srm/bid-evaluation/calculate-ranking",
+    "permissions": [
+      "srm:bid-evaluation:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "createAward",
+    "method": "POST",
+    "url": "/srm/bid-award/create",
+    "permissions": [
+      "srm:bid-award:create"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "deleteAward",
+    "method": "DELETE",
+    "url": "/srm/bid-award/delete",
+    "permissions": [
+      "srm:bid-award:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getAward",
+    "method": "GET",
+    "url": "/srm/bid-award/get",
+    "permissions": [
+      "srm:bid-award:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getAwardByProject",
+    "method": "GET",
+    "url": "/srm/bid-award/get-by-project",
+    "permissions": [
+      "srm:bid-award:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "approveAward",
+    "method": "PUT",
+    "url": "/srm/bid-award/approve",
+    "permissions": [
+      "srm:bid-award:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "generatePurchaseOrder",
+    "method": "PUT",
+    "url": "/srm/bid-award/generate-purchase-order/${id}",
+    "permissions": null
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "confirmTenderProject",
+    "method": "PUT",
+    "url": "/srm/tender-project/confirm",
+    "permissions": [
+      "srm:tender-project:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\detail.vue",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierList",
+    "method": "GET",
+    "url": "/srm/supplier/list",
+    "permissions": []
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "deleteTenderProject",
+    "method": "DELETE",
+    "url": "/srm/tender-project/delete",
+    "permissions": [
+      "srm:tender-project:delete"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getTenderProjectPage",
+    "method": "GET",
+    "url": "/srm/tender-project/page",
+    "permissions": [
+      "srm:tender-project:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "publishTender",
+    "method": "PUT",
+    "url": "/srm/tender-project/publish",
+    "permissions": [
+      "srm:tender-project:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "startBidding",
+    "method": "PUT",
+    "url": "/srm/tender-project/start-bidding",
+    "permissions": [
+      "srm:tender-project:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "startEvaluation",
+    "method": "PUT",
+    "url": "/srm/tender-project/start-evaluation",
+    "permissions": [
+      "srm:tender-project:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "startPriceComparing",
+    "method": "PUT",
+    "url": "/srm/tender-project/start-price-comparing",
+    "permissions": [
+      "srm:tender-project:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "getTenderProject",
+    "method": "GET",
+    "url": "/srm/tender-project/get",
+    "permissions": [
+      "srm:tender-project:query"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "updateTenderProject",
+    "method": "PUT",
+    "url": "/srm/tender-project/update",
+    "permissions": [
+      "srm:tender-project:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/tender/index.ts",
+    "function": "updateTenderProjectPartial",
+    "method": "PUT",
+    "url": "/srm/tender-project/update-info",
+    "permissions": [
+      "srm:tender-project:update"
+    ]
+  },
+  {
+    "menu": 602545,
+    "page": "鎷涙姇鏍囩鐞�",
+    "source": "mom-pro2-before\\src\\views\\srm\\tender\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/srm/tender-config/index.ts",
+    "function": "getTenderConfig",
+    "method": "GET",
+    "url": "/srm/tender-config/get",
+    "permissions": [
+      "srm:tender-config:query"
+    ]
+  },
+  {
+    "menu": 602569,
+    "page": "缁熻鍒嗘瀽",
+    "source": "mom-pro2-before\\src\\views\\srm\\statistics\\index.vue",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/project/index.ts",
+    "function": "getPdProject",
+    "method": "GET",
+    "url": "/mes/pd/project/get",
+    "permissions": [
+      "mes:pd-project:query"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/project/index.ts",
+    "function": "getPdProjectApproveProcessList",
+    "method": "GET",
+    "url": "/mes/pd/project/approve-process-list",
+    "permissions": [
+      "mes:pd-project:update"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/project/index.ts",
+    "function": "publishPdProject",
+    "method": "PUT",
+    "url": "/mes/pd/project/publish",
+    "permissions": [
+      "mes:pd-project:update"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/project/index.ts",
+    "function": "uploadPdProject",
+    "method": "PUT",
+    "url": "/mes/pd/project/upload",
+    "permissions": [
+      "mes:pd-project:update"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/project/index.ts",
+    "function": "deletePdProject",
+    "method": "DELETE",
+    "url": "/mes/pd/project/delete",
+    "permissions": [
+      "mes:pd-project:delete"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/project/index.ts",
+    "function": "exportPdProject",
+    "method": "GET",
+    "url": "/mes/pd/project/export-excel",
+    "permissions": [
+      "mes:pd-project:export"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/project/index.ts",
+    "function": "getPdProjectPage",
+    "method": "GET",
+    "url": "/mes/pd/project/page",
+    "permissions": [
+      "mes:pd-project:query"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\bom-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/bom/index.ts",
+    "function": "updatePdBomLine",
+    "method": "PUT",
+    "url": "/mes/pd/bom/update",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\bom-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/bom/index.ts",
+    "function": "getPdBomPage",
+    "method": "GET",
+    "url": "/mes/pd/bom/page",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\document-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/document/index.ts",
+    "function": "getPdDocument",
+    "method": "GET",
+    "url": "/mes/pd/document/get",
+    "permissions": [
+      "mes:pd-document:query"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\document-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/document/index.ts",
+    "function": "updatePdDocument",
+    "method": "PUT",
+    "url": "/mes/pd/document/update",
+    "permissions": [
+      "mes:pd-document:update"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\document-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/document/index.ts",
+    "function": "getPdDocumentPage",
+    "method": "GET",
+    "url": "/mes/pd/document/page",
+    "permissions": [
+      "mes:pd-document:query"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\drawing-review\\review-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/drawing-review/index.ts",
+    "function": "reviewPdDrawing",
+    "method": "PUT",
+    "url": "/mes/pd/drawing-review/review",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/project/index.ts",
+    "function": "updatePdProject",
+    "method": "PUT",
+    "url": "/mes/pd/project/update",
+    "permissions": [
+      "mes:pd-project:update"
+    ]
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\task\\task-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/task/index.ts",
+    "function": "dispatchPdTask",
+    "method": "PUT",
+    "url": "/mes/pd/task/dispatch",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\task\\task-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/task/index.ts",
+    "function": "getPdTask",
+    "method": "GET",
+    "url": "/mes/pd/task/get",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\task\\task-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/task/index.ts",
+    "function": "updatePdTask",
+    "method": "PUT",
+    "url": "/mes/pd/task/update",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\task\\task-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/task/index.ts",
+    "function": "deletePdTask",
+    "method": "DELETE",
+    "url": "/mes/pd/task/delete",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\task\\task-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/task/index.ts",
+    "function": "getPdTaskPage",
+    "method": "GET",
+    "url": "/mes/pd/task/page",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\version-change\\version-change-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/version-change/index.ts",
+    "function": "getPdVersionChange",
+    "method": "GET",
+    "url": "/mes/pd/version-change/get",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\version-change\\version-change-form.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/version-change/index.ts",
+    "function": "updatePdVersionChange",
+    "method": "PUT",
+    "url": "/mes/pd/version-change/update",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\version-change\\version-change-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/version-change/index.ts",
+    "function": "deletePdVersionChange",
+    "method": "DELETE",
+    "url": "/mes/pd/version-change/delete",
+    "permissions": null
+  },
+  {
+    "menu": 602572,
+    "page": "璁捐椤圭洰",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\project\\modules\\version-change\\version-change-list.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/version-change/index.ts",
+    "function": "getPdVersionChangePage",
+    "method": "GET",
+    "url": "/mes/pd/version-change/page",
+    "permissions": null
+  },
+  {
+    "menu": 602578,
+    "page": "璁捐褰掓。",
+    "source": "mom-pro2-before\\src\\views\\mes\\pd\\archive\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/pd/archive/index.ts",
+    "function": "getPdArchivePage",
+    "method": "GET",
+    "url": "/mes/pd/archive/page",
+    "permissions": [
+      "mes:pd-archive:query"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\index.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "cancelTicket",
+    "method": "PUT",
+    "url": "/aftersales/ticket/cancel",
+    "permissions": [
+      "aftersales:ticket:update"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "classifyTicket",
+    "method": "POST",
+    "url": "/aftersales/ticket/classify",
+    "permissions": [
+      "aftersales:ticket:update"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "closeTicket",
+    "method": "PUT",
+    "url": "/aftersales/ticket/close",
+    "permissions": [
+      "aftersales:ticket:update"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "getTicket",
+    "method": "GET",
+    "url": "/aftersales/ticket/get",
+    "permissions": [
+      "aftersales:ticket:query"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "resolveTicket",
+    "method": "PUT",
+    "url": "/aftersales/ticket/resolve",
+    "permissions": [
+      "aftersales:ticket:update"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\detail.vue",
+    "api": "mom-pro2-before/src/api/aftersales/visit.ts",
+    "function": "createVisit",
+    "method": "POST",
+    "url": "/aftersales/visit/create",
+    "permissions": [
+      "aftersales:visit:create"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\detail.vue",
+    "api": "mom-pro2-before/src/api/aftersales/visit.ts",
+    "function": "getVisitListByTicketId",
+    "method": "GET",
+    "url": "/aftersales/visit/list",
+    "permissions": [
+      "aftersales:visit:query"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\index.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "getTicketPage",
+    "method": "GET",
+    "url": "/aftersales/ticket/page",
+    "permissions": [
+      "aftersales:ticket:query"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "createTicket",
+    "method": "POST",
+    "url": "/aftersales/ticket/create",
+    "permissions": [
+      "aftersales:ticket:create"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "updateTicket",
+    "method": "PUT",
+    "url": "/aftersales/ticket/update",
+    "permissions": [
+      "aftersales:ticket:update"
+    ]
+  },
+  {
+    "menu": 602588,
+    "page": "鍞悗宸ュ崟",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\ticket\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/sale/order/index.ts",
+    "function": "getSaleOrder",
+    "method": "GET",
+    "url": "/erp/sale-order/get",
+    "permissions": [
+      "erp:sale-order:query"
+    ]
+  },
+  {
+    "menu": 602589,
+    "page": "閫�璐х敵璇�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\return\\detail.vue",
+    "api": "mom-pro2-before/src/api/aftersales/return.ts",
+    "function": "createReturn",
+    "method": "POST",
+    "url": "/aftersales/return/create",
+    "permissions": [
+      "aftersales:return:create"
+    ]
+  },
+  {
+    "menu": 602589,
+    "page": "閫�璐х敵璇�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\return\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/return.ts",
+    "function": "getReturn",
+    "method": "GET",
+    "url": "/aftersales/return/get",
+    "permissions": [
+      "aftersales:return:query"
+    ]
+  },
+  {
+    "menu": 602589,
+    "page": "閫�璐х敵璇�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\return\\detail.vue",
+    "api": "mom-pro2-before/src/api/aftersales/ticket.ts",
+    "function": "getTicket",
+    "method": "GET",
+    "url": "/aftersales/ticket/get",
+    "permissions": [
+      "aftersales:ticket:query"
+    ]
+  },
+  {
+    "menu": 602589,
+    "page": "閫�璐х敵璇�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\return\\index.vue",
+    "api": "mom-pro2-before/src/api/aftersales/return.ts",
+    "function": "getReturnPage",
+    "method": "GET",
+    "url": "/aftersales/return/page",
+    "permissions": [
+      "aftersales:return:query"
+    ]
+  },
+  {
+    "menu": 602596,
+    "page": "API瀵嗛挜绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\apiKey\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/model/apiKey/index.ts",
+    "function": "getApiKeyPage",
+    "method": "GET",
+    "url": "/ai/api-key/page",
+    "permissions": [
+      "ai:api-key:query"
+    ]
+  },
+  {
+    "menu": 602596,
+    "page": "API瀵嗛挜绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\apiKey\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/apiKey/index.ts",
+    "function": "getApiKey",
+    "method": "GET",
+    "url": "/ai/api-key/get",
+    "permissions": [
+      "ai:api-key:query"
+    ]
+  },
+  {
+    "menu": 602596,
+    "page": "API瀵嗛挜绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\apiKey\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/apiKey/index.ts",
+    "function": "updateApiKey",
+    "method": "PUT",
+    "url": "/ai/api-key/update",
+    "permissions": [
+      "ai:api-key:update"
+    ]
+  },
+  {
+    "menu": 602600,
+    "page": "妯″瀷绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\model\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/model/model/index.ts",
+    "function": "getModelPage",
+    "method": "GET",
+    "url": "/ai/model/page",
+    "permissions": [
+      "ai:model:query"
+    ]
+  },
+  {
+    "menu": 602600,
+    "page": "妯″瀷绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\model\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/model/index.ts",
+    "function": "getModel",
+    "method": "GET",
+    "url": "/ai/model/get",
+    "permissions": [
+      "ai:model:query"
+    ]
+  },
+  {
+    "menu": 602600,
+    "page": "妯″瀷绠$悊",
+    "source": "mom-pro2-before\\src\\views\\ai\\model\\model\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/model/model/index.ts",
+    "function": "updateModel",
+    "method": "PUT",
+    "url": "/ai/model/update",
+    "permissions": [
+      "ai:model:update"
+    ]
+  },
+  {
+    "menu": 602604,
+    "page": "鐭ヨ瘑搴撶鐞�",
+    "source": "mom-pro2-before\\src\\views\\ai\\knowledge\\knowledge\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/knowledge/knowledge/index.ts",
+    "function": "getKnowledgePage",
+    "method": "GET",
+    "url": "/ai/knowledge/page",
+    "permissions": [
+      "ai:knowledge:query"
+    ]
+  },
+  {
+    "menu": 602604,
+    "page": "鐭ヨ瘑搴撶鐞�",
+    "source": "mom-pro2-before\\src\\views\\ai\\knowledge\\knowledge\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/knowledge/knowledge/index.ts",
+    "function": "getKnowledge",
+    "method": "GET",
+    "url": "/ai/knowledge/get",
+    "permissions": [
+      "ai:knowledge:query"
+    ]
+  },
+  {
+    "menu": 602604,
+    "page": "鐭ヨ瘑搴撶鐞�",
+    "source": "mom-pro2-before\\src\\views\\ai\\knowledge\\knowledge\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/ai/knowledge/knowledge/index.ts",
+    "function": "updateKnowledge",
+    "method": "PUT",
+    "url": "/ai/knowledge/update",
+    "permissions": [
+      "ai:knowledge:update"
+    ]
+  },
+  {
+    "menu": 602604,
+    "page": "鐭ヨ瘑搴撶鐞�",
+    "source": "mom-pro2-before\\src\\views\\ai\\knowledge\\knowledge\\retrieval\\index.vue",
+    "api": "mom-pro2-before/src/api/ai/knowledge/segment/index.ts",
+    "function": "searchKnowledgeSegment",
+    "method": "POST",
+    "url": "/ai/knowledge/segment/search",
+    "permissions": [
+      "ai:knowledge:query"
+    ]
+  },
+  {
+    "menu": 1063007,
+    "page": "鍥捐〃閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\bi\\config\\chart\\index.vue",
+    "api": "mom-pro2-before/src/api/bi/chart-config.ts",
+    "function": "getChartConfigPage",
+    "method": "GET",
+    "url": "/bi/chart-config/page",
+    "permissions": [
+      "bi:chart-config:query"
+    ]
+  },
+  {
+    "menu": 1063007,
+    "page": "鍥捐〃閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\bi\\config\\chart\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bi/dashboard.ts",
+    "function": "getDashboardList",
+    "method": "GET",
+    "url": "/bi/dashboard/list",
+    "permissions": [
+      "bi:dashboard:query"
+    ]
+  },
+  {
+    "menu": 1063007,
+    "page": "鍥捐〃閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\bi\\config\\chart\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bi/chart-config.ts",
+    "function": "getChartConfig",
+    "method": "GET",
+    "url": "/bi/chart-config/get",
+    "permissions": [
+      "bi:chart-config:query"
+    ]
+  },
+  {
+    "menu": 1063007,
+    "page": "鍥捐〃閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\bi\\config\\chart\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bi/chart-config.ts",
+    "function": "updateChartConfig",
+    "method": "PUT",
+    "url": "/bi/chart-config/update",
+    "permissions": [
+      "bi:chart-config:update"
+    ]
+  },
+  {
+    "menu": 1063008,
+    "page": "鏁版嵁婧愰厤缃�",
+    "source": "mom-pro2-before\\src\\views\\bi\\config\\data-source\\index.vue",
+    "api": "mom-pro2-before/src/api/bi/data-source-config.ts",
+    "function": "getDataSourceConfigPage",
+    "method": "GET",
+    "url": "/bi/data-source-config/page",
+    "permissions": [
+      "bi:data-source-config:query"
+    ]
+  },
+  {
+    "menu": 1063008,
+    "page": "鏁版嵁婧愰厤缃�",
+    "source": "mom-pro2-before\\src\\views\\bi\\config\\data-source\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bi/data-source-config.ts",
+    "function": "getDataSourceConfig",
+    "method": "GET",
+    "url": "/bi/data-source-config/get",
+    "permissions": [
+      "bi:data-source-config:query"
+    ]
+  },
+  {
+    "menu": 1063008,
+    "page": "鏁版嵁婧愰厤缃�",
+    "source": "mom-pro2-before\\src\\views\\bi\\config\\data-source\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bi/data-source-config.ts",
+    "function": "updateDataSourceConfig",
+    "method": "PUT",
+    "url": "/bi/data-source-config/update",
+    "permissions": [
+      "bi:data-source-config:update"
+    ]
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\detail\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/operateLog/index.ts",
+    "function": "getOperateLogPage",
+    "method": "GET",
+    "url": "/crm/operate-log/page",
+    "permissions": []
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/invoice/index.ts",
+    "function": "exportInvoice",
+    "method": "GET",
+    "url": "/crm/invoice/export-excel",
+    "permissions": [
+      "crm:invoice:export"
+    ]
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/invoice/index.ts",
+    "function": "getInvoicePage",
+    "method": "GET",
+    "url": "/crm/invoice/page",
+    "permissions": [
+      "crm:invoice:query"
+    ]
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/invoice/index.ts",
+    "function": "submitInvoice",
+    "method": "PUT",
+    "url": "/crm/invoice/submit",
+    "permissions": [
+      "crm:invoice:update"
+    ]
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/invoice/index.ts",
+    "function": "createInvoice",
+    "method": "POST",
+    "url": "/crm/invoice/create",
+    "permissions": [
+      "crm:invoice:create"
+    ]
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/invoice/index.ts",
+    "function": "getInvoice",
+    "method": "GET",
+    "url": "/crm/invoice/get",
+    "permissions": [
+      "crm:invoice:query"
+    ]
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/invoice/index.ts",
+    "function": "updateInvoice",
+    "method": "PUT",
+    "url": "/crm/invoice/update",
+    "permissions": [
+      "crm:invoice:update"
+    ]
+  },
+  {
+    "menu": 1063093,
+    "page": "寮�绁ㄧ鐞�",
+    "source": "mom-pro2-before\\src\\views\\crm\\invoice\\modules\\import-form.vue",
+    "api": "mom-pro2-before/src/api/crm/invoice/index.ts",
+    "function": "importInvoiceTemplate",
+    "method": "GET",
+    "url": "/crm/invoice/get-import-template",
+    "permissions": [
+      "crm:invoice:import"
+    ]
+  },
+  {
+    "menu": 1063110,
+    "page": "閲囪喘鏉ョエ",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\invoice\\data.ts",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1063110,
+    "page": "閲囪喘鏉ョエ",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\invoice\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/invoice/index.ts",
+    "function": "exportPurchaseInvoice",
+    "method": "GET",
+    "url": "/erp/purchase-invoice/export-excel",
+    "permissions": [
+      "erp:purchase-invoice:export"
+    ]
+  },
+  {
+    "menu": 1063110,
+    "page": "閲囪喘鏉ョエ",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\invoice\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/invoice/index.ts",
+    "function": "getPurchaseInvoicePage",
+    "method": "GET",
+    "url": "/erp/purchase-invoice/page",
+    "permissions": [
+      "erp:purchase-invoice:query"
+    ]
+  },
+  {
+    "menu": 1063110,
+    "page": "閲囪喘鏉ョエ",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\invoice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/invoice/index.ts",
+    "function": "getPurchaseInvoice",
+    "method": "GET",
+    "url": "/erp/purchase-invoice/get",
+    "permissions": [
+      "erp:purchase-invoice:query"
+    ]
+  },
+  {
+    "menu": 1063110,
+    "page": "閲囪喘鏉ョエ",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\invoice\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/invoice/index.ts",
+    "function": "updatePurchaseInvoice",
+    "method": "PUT",
+    "url": "/erp/purchase-invoice/update",
+    "permissions": [
+      "erp:purchase-invoice:update"
+    ]
+  },
+  {
+    "menu": 1063110,
+    "page": "閲囪喘鏉ョエ",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\invoice\\modules\\ocr-upload.vue",
+    "api": "mom-pro2-before/src/api/system/storage/index.ts",
+    "function": "uploadFile",
+    "method": "POST",
+    "url": "/system/storage-blob/upload",
+    "permissions": []
+  },
+  {
+    "menu": 1063110,
+    "page": "閲囪喘鏉ョエ",
+    "source": "mom-pro2-before\\src\\views\\erp\\purchase\\invoice\\modules\\purchase-order-select.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/order/index.ts",
+    "function": "getPurchaseOrderPage",
+    "method": "GET",
+    "url": "/erp/purchase-order/page",
+    "permissions": [
+      "erp:purchase-order:query"
+    ]
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/purchase/invoice/index.ts",
+    "function": "getPurchaseInvoiceSimpleList",
+    "method": "GET",
+    "url": "/erp/purchase-invoice/simple-list",
+    "permissions": [
+      "erp:purchase-invoice:query"
+    ]
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\data.ts",
+    "api": "mom-pro2-before/src/api/srm/supplier/index.ts",
+    "function": "getSupplierSimpleList",
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "exportFinancePayment",
+    "method": "GET",
+    "url": "/erp/finance-payment/export-excel",
+    "permissions": [
+      "erp:finance-payment:export"
+    ]
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "getFinancePaymentApproveProcessList",
+    "method": "GET",
+    "url": "/erp/finance-payment/approve-process-list",
+    "permissions": [
+      "erp:finance-payment:query"
+    ]
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\index.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "getFinancePaymentPage",
+    "method": "GET",
+    "url": "/erp/finance-payment/page",
+    "permissions": [
+      "erp:finance-payment:query"
+    ]
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "createFinancePayment",
+    "method": "POST",
+    "url": "/erp/finance-payment/create",
+    "permissions": [
+      "erp:finance-payment:create"
+    ]
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "getFinancePayment",
+    "method": "GET",
+    "url": "/erp/finance-payment/get",
+    "permissions": [
+      "erp:finance-payment:query"
+    ]
+  },
+  {
+    "menu": 1063116,
+    "page": "浠樻",
+    "source": "mom-pro2-before\\src\\views\\erp\\finance\\payment\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/erp/finance/payment/index.ts",
+    "function": "updateFinancePayment",
+    "method": "PUT",
+    "url": "/erp/finance-payment/update",
+    "permissions": [
+      "erp:finance-payment:update"
+    ]
+  },
+  {
+    "menu": 1065000,
+    "page": "閿�鍞鍒�",
+    "source": "mom-pro2-before\\src\\views\\crm\\salesTarget\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1065000,
+    "page": "閿�鍞鍒�",
+    "source": "mom-pro2-before\\src\\views\\crm\\salesTarget\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/salesTarget/index.ts",
+    "function": "deleteSalesTarget",
+    "method": "DELETE",
+    "url": "/crm/sales-target/delete",
+    "permissions": [
+      "crm:sales-target:delete"
+    ]
+  },
+  {
+    "menu": 1065000,
+    "page": "閿�鍞鍒�",
+    "source": "mom-pro2-before\\src\\views\\crm\\salesTarget\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/salesTarget/index.ts",
+    "function": "exportSalesTarget",
+    "method": "GET",
+    "url": "/crm/sales-target/export-excel",
+    "permissions": [
+      "crm:sales-target:export"
+    ]
+  },
+  {
+    "menu": 1065000,
+    "page": "閿�鍞鍒�",
+    "source": "mom-pro2-before\\src\\views\\crm\\salesTarget\\index.vue",
+    "api": "mom-pro2-before/src/api/crm/salesTarget/index.ts",
+    "function": "getSalesTargetPage",
+    "method": "GET",
+    "url": "/crm/sales-target/page",
+    "permissions": [
+      "crm:sales-target:query"
+    ]
+  },
+  {
+    "menu": 1065000,
+    "page": "閿�鍞鍒�",
+    "source": "mom-pro2-before\\src\\views\\crm\\salesTarget\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/salesTarget/index.ts",
+    "function": "getSalesTarget",
+    "method": "GET",
+    "url": "/crm/sales-target/get",
+    "permissions": [
+      "crm:sales-target:query"
+    ]
+  },
+  {
+    "menu": 1065000,
+    "page": "閿�鍞鍒�",
+    "source": "mom-pro2-before\\src\\views\\crm\\salesTarget\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/crm/salesTarget/index.ts",
+    "function": "updateSalesTarget",
+    "method": "PUT",
+    "url": "/crm/sales-target/update",
+    "permissions": [
+      "crm:sales-target:update"
+    ]
+  },
+  {
+    "menu": 1065211,
+    "page": "鍔犵彮鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\overtime\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/overtime/index.ts",
+    "function": "deleteOvertime",
+    "method": "DELETE",
+    "url": "/hrm/overtime/delete",
+    "permissions": [
+      "hrm:overtime:delete"
+    ]
+  },
+  {
+    "menu": 1065211,
+    "page": "鍔犵彮鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\overtime\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/overtime/index.ts",
+    "function": "getOvertimeApproveProcessDefinitionList",
+    "method": "GET",
+    "url": "/hrm/overtime/approve-process-definition-list",
+    "permissions": [
+      "hrm:overtime:query"
+    ]
+  },
+  {
+    "menu": 1065211,
+    "page": "鍔犵彮鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\overtime\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/overtime/index.ts",
+    "function": "getOvertimePage",
+    "method": "GET",
+    "url": "/hrm/overtime/page",
+    "permissions": [
+      "hrm:overtime:query"
+    ]
+  },
+  {
+    "menu": 1065211,
+    "page": "鍔犵彮鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\overtime\\index.vue",
+    "api": "mom-pro2-before/src/api/hrm/overtime/index.ts",
+    "function": "submitOvertime",
+    "method": "POST",
+    "url": "/hrm/overtime/submit",
+    "permissions": [
+      "hrm:overtime:submit"
+    ]
+  },
+  {
+    "menu": 1065211,
+    "page": "鍔犵彮鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\overtime\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/overtime/index.ts",
+    "function": "getCurrentOvertimeApplicant",
+    "method": "GET",
+    "url": "/hrm/overtime/current-applicant",
+    "permissions": [
+      "hrm:overtime:create"
+    ]
+  },
+  {
+    "menu": 1065211,
+    "page": "鍔犵彮鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\overtime\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/overtime/index.ts",
+    "function": "getOvertime",
+    "method": "GET",
+    "url": "/hrm/overtime/get",
+    "permissions": [
+      "hrm:overtime:query",
+      "bpm:task:query"
+    ]
+  },
+  {
+    "menu": 1065211,
+    "page": "鍔犵彮鐢宠",
+    "source": "mom-pro2-before\\src\\views\\hrm\\overtime\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/hrm/overtime/index.ts",
+    "function": "updateOvertime",
+    "method": "PUT",
+    "url": "/hrm/overtime/update",
+    "permissions": [
+      "hrm:overtime:update"
+    ]
+  },
+  {
+    "menu": 1075305,
+    "page": "涓氬姟闄勪欢閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\bpm\\businessAttach\\index.vue",
+    "api": "mom-pro2-before/src/api/bpm/businessAttach/index.ts",
+    "function": "getBusinessAttachPage",
+    "method": "GET",
+    "url": "/bpm/business-attach/page",
+    "permissions": [
+      "bpm:business-attach:query"
+    ]
+  },
+  {
+    "menu": 1075305,
+    "page": "涓氬姟闄勪欢閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\bpm\\businessAttach\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/businessAttach/index.ts",
+    "function": "getBusinessAttach",
+    "method": "GET",
+    "url": "/bpm/business-attach/get",
+    "permissions": [
+      "bpm:business-attach:query"
+    ]
+  },
+  {
+    "menu": 1075305,
+    "page": "涓氬姟闄勪欢閰嶇疆",
+    "source": "mom-pro2-before\\src\\views\\bpm\\businessAttach\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/bpm/businessAttach/index.ts",
+    "function": "updateBusinessAttach",
+    "method": "PUT",
+    "url": "/bpm/business-attach/update",
+    "permissions": [
+      "bpm:business-attach:update"
+    ]
+  },
+  {
+    "menu": 1075318,
+    "page": "闂搴�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\problem\\index.vue",
+    "api": "mom-pro2-before/src/api/aftersales/problem.ts",
+    "function": "disableProblem",
+    "method": "PUT",
+    "url": "/aftersales/problem/disable",
+    "permissions": [
+      "aftersales:problem:disable"
+    ]
+  },
+  {
+    "menu": 1075318,
+    "page": "闂搴�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\problem\\index.vue",
+    "api": "mom-pro2-before/src/api/aftersales/problem.ts",
+    "function": "getProblemPage",
+    "method": "GET",
+    "url": "/aftersales/problem/page",
+    "permissions": [
+      "aftersales:problem:query"
+    ]
+  },
+  {
+    "menu": 1075318,
+    "page": "闂搴�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\problem\\index.vue",
+    "api": "mom-pro2-before/src/api/aftersales/problem.ts",
+    "function": "publishProblem",
+    "method": "PUT",
+    "url": "/aftersales/problem/publish",
+    "permissions": [
+      "aftersales:problem:publish"
+    ]
+  },
+  {
+    "menu": 1075318,
+    "page": "闂搴�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\problem\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/problem.ts",
+    "function": "getProblem",
+    "method": "GET",
+    "url": "/aftersales/problem/get",
+    "permissions": [
+      "aftersales:problem:query"
+    ]
+  },
+  {
+    "menu": 1075318,
+    "page": "闂搴�",
+    "source": "mom-pro2-before\\src\\views\\aftersales\\problem\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/aftersales/problem.ts",
+    "function": "updateProblem",
+    "method": "PUT",
+    "url": "/aftersales/problem/update",
+    "permissions": [
+      "aftersales:problem:update"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\designer\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/version/index.ts",
+    "function": "getVersion",
+    "method": "GET",
+    "url": "/qc-report/template-version/get",
+    "permissions": [
+      "qc-report:template:query"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\designer\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/version/index.ts",
+    "function": "getVersionListByTemplate",
+    "method": "GET",
+    "url": "/qc-report/template-version/list-by-template",
+    "permissions": [
+      "qc-report:template:query"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\designer\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/version/index.ts",
+    "function": "publishVersion",
+    "method": "POST",
+    "url": "/qc-report/template-version/publish",
+    "permissions": [
+      "qc-report:template:publish"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\designer\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/version/index.ts",
+    "function": "updateVersion",
+    "method": "PUT",
+    "url": "/qc-report/template-version/update",
+    "permissions": [
+      "qc-report:template:update"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/template/index.ts",
+    "function": "getTemplate",
+    "method": "GET",
+    "url": "/qc-report/template/get",
+    "permissions": [
+      "qc-report:template:query"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\modules\\form.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/template/index.ts",
+    "function": "updateTemplate",
+    "method": "PUT",
+    "url": "/qc-report/template/update",
+    "permissions": [
+      "qc-report:template:update"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\designer\\modules\\ai-import-modal.vue",
+    "api": "mom-pro2-before/src/api/system/storage/index.ts",
+    "function": "bindAttachments",
+    "method": "POST",
+    "url": "/system/storage-attachment/bind",
+    "permissions": [
+      "system:storage-attachment:create"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\designer\\modules\\ai-import-modal.vue",
+    "api": "mom-pro2-before/src/api/system/storage/index.ts",
+    "function": "deleteAttachments",
+    "method": "DELETE",
+    "url": "/system/storage-attachment/delete",
+    "permissions": [
+      "system:storage-attachment:delete"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\designer\\modules\\ai-import-modal.vue",
+    "api": "mom-pro2-before/src/api/system/storage/index.ts",
+    "function": "listAttachments",
+    "method": "GET",
+    "url": "/system/storage-attachment/list",
+    "permissions": [
+      "system:storage-attachment:query"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\designer\\modules\\ai-import-modal.vue",
+    "api": "mom-pro2-before/src/api/system/storage/index.ts",
+    "function": "uploadFile",
+    "method": "POST",
+    "url": "/system/storage-blob/upload",
+    "permissions": []
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/template/index.ts",
+    "function": "deleteTemplate",
+    "method": "DELETE",
+    "url": "/qc-report/template/delete",
+    "permissions": [
+      "qc-report:template:delete"
+    ]
+  },
+  {
+    "menu": 1075400,
+    "page": "鎶ュ憡妯℃澘璁捐",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\template\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/template/index.ts",
+    "function": "getTemplatePage",
+    "method": "GET",
+    "url": "/qc-report/template/page",
+    "permissions": [
+      "qc-report:template:query"
+    ]
+  },
+  {
+    "menu": 1075410,
+    "page": "鎶ュ憡瀹炰緥",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\instance\\data.ts",
+    "api": "mom-pro2-before/src/api/system/user/index.ts",
+    "function": "getSimpleUserList",
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": []
+  },
+  {
+    "menu": 1075410,
+    "page": "鎶ュ憡瀹炰緥",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\instance\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/instance/index.ts",
+    "function": "getInstancePage",
+    "method": "GET",
+    "url": "/qc-report/instance/page",
+    "permissions": [
+      "qc-report:instance:query"
+    ]
+  },
+  {
+    "menu": 1075410,
+    "page": "鎶ュ憡瀹炰緥",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\instance\\modules\\detail.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/instance/index.ts",
+    "function": "getInstance",
+    "method": "GET",
+    "url": "/qc-report/instance/get",
+    "permissions": [
+      "qc-report:instance:query"
+    ]
+  },
+  {
+    "menu": 1075410,
+    "page": "鎶ュ憡瀹炰緥",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\report\\instance\\modules\\detail.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/report/instance/index.ts",
+    "function": "getInstanceSnapshot",
+    "method": "GET",
+    "url": "/qc-report/instance/snapshot",
+    "permissions": [
+      "qc-report:instance:query"
+    ]
+  },
+  {
+    "menu": 1075421,
+    "page": "妫�娴嬬粨鏋滃彴璐�",
+    "source": "mom-pro2-before\\src\\views\\mes\\qc\\ledger\\index.vue",
+    "api": "mom-pro2-before/src/api/mes/qc/ledger/index.ts",
+    "function": "getInspectionLedgerPage",
+    "method": "GET",
+    "url": "/mes/qc/inspection-ledger/page",
+    "permissions": [
+      "mes:qc-inspection-ledger:query"
+    ]
+  },
+  {
+    "menu": 1075426,
+    "page": "鑳借�楄褰�",
+    "source": "mom-pro2-before\\src\\views\\energy\\record\\index.vue",
+    "api": "mom-pro2-before/src/api/energy/index.ts",
+    "function": "deleteEnergyRecord",
+    "method": "DELETE",
+    "url": "/energy/record/delete",
+    "permissions": [
+      "energy:record:delete"
+    ]
+  },
+  {
+    "menu": 1075426,
+    "page": "鑳借�楄褰�",
+    "source": "mom-pro2-before\\src\\views\\energy\\record\\index.vue",
+    "api": "mom-pro2-before/src/api/energy/index.ts",
+    "function": "getEnergyRecord",
+    "method": "GET",
+    "url": "/energy/record/get",
+    "permissions": [
+      "energy:record:query"
+    ]
+  },
+  {
+    "menu": 1075426,
+    "page": "鑳借�楄褰�",
+    "source": "mom-pro2-before\\src\\views\\energy\\record\\index.vue",
+    "api": "mom-pro2-before/src/api/energy/index.ts",
+    "function": "getEnergyRecordPage",
+    "method": "GET",
+    "url": "/energy/record/page",
+    "permissions": [
+      "energy:record:query"
+    ]
+  },
+  {
+    "menu": 1075426,
+    "page": "鑳借�楄褰�",
+    "source": "mom-pro2-before\\src\\views\\energy\\record\\index.vue",
+    "api": "mom-pro2-before/src/api/energy/index.ts",
+    "function": "updateEnergyRecord",
+    "method": "PUT",
+    "url": "/energy/record/update",
+    "permissions": [
+      "energy:record:update"
+    ]
+  }
+]
\ No newline at end of file
diff --git a/scripts/permission-audit-report.json b/scripts/permission-audit-report.json
new file mode 100644
index 0000000..959dae1
--- /dev/null
+++ b/scripts/permission-audit-report.json
@@ -0,0 +1,5246 @@
+{
+  "counts": {
+    "backend": 946,
+    "frontend": 836,
+    "database": 972
+  },
+  "frontendWithoutBackend": [
+    {
+      "key": "ai:chat-conversation:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/chat/manager/modules/conversation-list.vue"
+      ],
+      "menus": [
+        {
+          "id": 2780,
+          "name": "浼氳瘽鍒犻櫎",
+          "parent_id": 2778
+        }
+      ]
+    },
+    {
+      "key": "ai:chat-message:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/chat/manager/modules/message-list.vue"
+      ],
+      "menus": [
+        {
+          "id": 2782,
+          "name": "娑堟伅鍒犻櫎",
+          "parent_id": 2778
+        }
+      ]
+    },
+    {
+      "key": "ai:image:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/image/manager/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2786,
+          "name": "缁樼敾鍒犻櫎",
+          "parent_id": 2784
+        }
+      ]
+    },
+    {
+      "key": "ai:mind-map:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/mindmap/manager/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2801,
+          "name": "鎬濈淮瀵煎浘鍒犻櫎",
+          "parent_id": 2799
+        }
+      ]
+    },
+    {
+      "key": "ai:chat-role:create",
+      "files": [
+        "mom-pro2-before/src/views/ai/model/chatRole/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2775,
+          "name": "鑱婂ぉ瑙掕壊鍒涘缓",
+          "parent_id": 2773
+        }
+      ]
+    },
+    {
+      "key": "ai:chat-role:update",
+      "files": [
+        "mom-pro2-before/src/views/ai/model/chatRole/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2776,
+          "name": "鑱婂ぉ瑙掕壊鏇存柊",
+          "parent_id": 2773
+        }
+      ]
+    },
+    {
+      "key": "ai:chat-role:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/model/chatRole/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2777,
+          "name": "鑱婂ぉ瑙掕壊鍒犻櫎",
+          "parent_id": 2773
+        }
+      ]
+    },
+    {
+      "key": "ai:tool:create",
+      "files": [
+        "mom-pro2-before/src/views/ai/model/tool/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2922,
+          "name": "宸ュ叿鍒涘缓",
+          "parent_id": 2920
+        }
+      ]
+    },
+    {
+      "key": "ai:tool:update",
+      "files": [
+        "mom-pro2-before/src/views/ai/model/tool/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2923,
+          "name": "宸ュ叿鏇存柊",
+          "parent_id": 2920
+        }
+      ]
+    },
+    {
+      "key": "ai:tool:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/model/tool/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2924,
+          "name": "宸ュ叿鍒犻櫎",
+          "parent_id": 2920
+        }
+      ]
+    },
+    {
+      "key": "ai:music:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/music/manager/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2791,
+          "name": "闊充箰鍒犻櫎",
+          "parent_id": 2788
+        }
+      ]
+    },
+    {
+      "key": "ai:workflow:test",
+      "files": [
+        "mom-pro2-before/src/views/ai/workflow/form/modules/workflow-design.vue"
+      ],
+      "menus": [
+        {
+          "id": 5005,
+          "name": "AI 宸ヤ綔娴佹祴璇�",
+          "parent_id": 5000
+        }
+      ]
+    },
+    {
+      "key": "ai:workflow:create",
+      "files": [
+        "mom-pro2-before/src/views/ai/workflow/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 5002,
+          "name": "AI 宸ヤ綔娴佸垱寤�",
+          "parent_id": 5000
+        }
+      ]
+    },
+    {
+      "key": "ai:workflow:update",
+      "files": [
+        "mom-pro2-before/src/views/ai/workflow/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 5003,
+          "name": "AI 宸ヤ綔娴佹洿鏂�",
+          "parent_id": 5000
+        }
+      ]
+    },
+    {
+      "key": "ai:workflow:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/workflow/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 5004,
+          "name": "AI 宸ヤ綔娴佸垹闄�",
+          "parent_id": 5000
+        }
+      ]
+    },
+    {
+      "key": "ai:write:delete",
+      "files": [
+        "mom-pro2-before/src/views/ai/write/manager/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2795,
+          "name": "AI 鍐欎綔鍒犻櫎",
+          "parent_id": 2793
+        }
+      ]
+    },
+    {
+      "key": "bpm:process-instance:create",
+      "files": [
+        "mom-pro2-before/src/views/bpm/processInstance/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 1219,
+          "name": "娴佺▼瀹炰緥鐨勫垱寤�",
+          "parent_id": 1201
+        }
+      ]
+    },
+    {
+      "key": "crm:product-category:create",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/category/index.vue",
+        "mom-pro2-before/src/views/crm/product/category/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "crm:product-category:update",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/category/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "crm:product-category:delete",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/category/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "crm:product:create",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "crm:product:export",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "crm:product:update",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "crm:product:delete",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:product-category:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/category/index.vue",
+        "mom-pro2-before/src/views/erp/product/category/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2573,
+          "name": "鍒嗙被鍒涘缓",
+          "parent_id": 2571
+        }
+      ]
+    },
+    {
+      "key": "erp:product-category:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/category/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2576,
+          "name": "鍒嗙被瀵煎嚭",
+          "parent_id": 2571
+        }
+      ]
+    },
+    {
+      "key": "erp:product-category:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/category/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2574,
+          "name": "鍒嗙被鏇存柊",
+          "parent_id": 2571
+        }
+      ]
+    },
+    {
+      "key": "erp:product-category:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/category/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2575,
+          "name": "鍒嗙被鍒犻櫎",
+          "parent_id": 2571
+        }
+      ]
+    },
+    {
+      "key": "erp:product:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/product/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2567,
+          "name": "浜у搧鍒涘缓",
+          "parent_id": 2565
+        }
+      ]
+    },
+    {
+      "key": "erp:product:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/product/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2570,
+          "name": "浜у搧瀵煎嚭",
+          "parent_id": 2565
+        }
+      ]
+    },
+    {
+      "key": "erp:product:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/product/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2568,
+          "name": "浜у搧鏇存柊",
+          "parent_id": 2565
+        }
+      ]
+    },
+    {
+      "key": "erp:product:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/product/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2569,
+          "name": "浜у搧鍒犻櫎",
+          "parent_id": 2565
+        }
+      ]
+    },
+    {
+      "key": "erp:product-unit:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/unit/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2579,
+          "name": "鍗曚綅鍒涘缓",
+          "parent_id": 2577
+        }
+      ]
+    },
+    {
+      "key": "erp:product-unit:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/unit/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2582,
+          "name": "鍗曚綅瀵煎嚭",
+          "parent_id": 2577
+        }
+      ]
+    },
+    {
+      "key": "erp:product-unit:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/unit/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2580,
+          "name": "鍗曚綅鏇存柊",
+          "parent_id": 2577
+        }
+      ]
+    },
+    {
+      "key": "erp:product-unit:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/product/unit/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2581,
+          "name": "鍗曚綅鍒犻櫎",
+          "parent_id": 2577
+        }
+      ]
+    },
+    {
+      "key": "erp:purchase-in:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-in:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-in:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue",
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-in:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-in:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-in:inspect",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-in:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-return:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-return:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-return:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue",
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-return:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-return:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:purchase-return:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:customer:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/customer/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2620,
+          "name": "瀹㈡埛鍒涘缓",
+          "parent_id": 2618
+        }
+      ]
+    },
+    {
+      "key": "erp:customer:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/customer/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2623,
+          "name": "瀹㈡埛瀵煎嚭",
+          "parent_id": 2618
+        }
+      ]
+    },
+    {
+      "key": "erp:customer:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/customer/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2621,
+          "name": "瀹㈡埛鏇存柊",
+          "parent_id": 2618
+        }
+      ]
+    },
+    {
+      "key": "erp:customer:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/customer/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2622,
+          "name": "瀹㈡埛鍒犻櫎",
+          "parent_id": 2618
+        }
+      ]
+    },
+    {
+      "key": "erp:sale-out:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-out:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-out:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue",
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-out:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-out:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-out:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-return:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-return:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-return:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue",
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-return:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-return:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:sale-return:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "erp:stock-check:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/check/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2633,
+          "name": "搴撳瓨鐩樼偣鍗曞垱寤�",
+          "parent_id": 2631
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-check:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/check/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2636,
+          "name": "搴撳瓨鐩樼偣鍗曞鍑�",
+          "parent_id": 2631
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-check:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/check/index.vue",
+        "mom-pro2-before/src/views/erp/stock/check/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2635,
+          "name": "搴撳瓨鐩樼偣鍗曞垹闄�",
+          "parent_id": 2631
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-check:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/check/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2632,
+          "name": "搴撳瓨鐩樼偣鍗曟煡璇�",
+          "parent_id": 2631
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-check:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/check/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2634,
+          "name": "搴撳瓨鐩樼偣鍗曟洿鏂�",
+          "parent_id": 2631
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-check:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/check/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2637,
+          "name": "搴撳瓨鐩樼偣鍗曞鎵�",
+          "parent_id": 2631
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-in:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/in/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2598,
+          "name": "鍏跺畠鍏ュ簱鍗曞垱寤�",
+          "parent_id": 2596
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-in:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/in/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2601,
+          "name": "鍏跺畠鍏ュ簱鍗曞鍑�",
+          "parent_id": 2596
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-in:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/in/index.vue",
+        "mom-pro2-before/src/views/erp/stock/in/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2600,
+          "name": "鍏跺畠鍏ュ簱鍗曞垹闄�",
+          "parent_id": 2596
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-in:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/in/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2597,
+          "name": "鍏跺畠鍏ュ簱鍗曟煡璇�",
+          "parent_id": 2596
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-in:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/in/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2599,
+          "name": "鍏跺畠鍏ュ簱鍗曟洿鏂�",
+          "parent_id": 2596
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-in:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/in/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2609,
+          "name": "鍏跺畠鍏ュ簱鍗曞鎵�",
+          "parent_id": 2596
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-move:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/move/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2626,
+          "name": "搴撳瓨璋冨害鍗曞垱寤�",
+          "parent_id": 2624
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-move:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/move/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2629,
+          "name": "搴撳瓨璋冨害鍗曞鍑�",
+          "parent_id": 2624
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-move:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/move/index.vue",
+        "mom-pro2-before/src/views/erp/stock/move/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2628,
+          "name": "搴撳瓨璋冨害鍗曞垹闄�",
+          "parent_id": 2624
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-move:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/move/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2625,
+          "name": "搴撳瓨璋冨害鍗曟煡璇�",
+          "parent_id": 2624
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-move:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/move/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2627,
+          "name": "搴撳瓨璋冨害鍗曟洿鏂�",
+          "parent_id": 2624
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-move:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/move/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2630,
+          "name": "搴撳瓨璋冨害鍗曞鎵�",
+          "parent_id": 2624
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-out:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/out/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2612,
+          "name": "鍏跺畠鍑哄簱鍗曞垱寤�",
+          "parent_id": 2610
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-out:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/out/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2615,
+          "name": "鍏跺畠鍑哄簱鍗曞鍑�",
+          "parent_id": 2610
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-out:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/out/index.vue",
+        "mom-pro2-before/src/views/erp/stock/out/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2614,
+          "name": "鍏跺畠鍑哄簱鍗曞垹闄�",
+          "parent_id": 2610
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-out:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/out/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2611,
+          "name": "鍏跺畠鍑哄簱鍗曟煡璇�",
+          "parent_id": 2610
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-out:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/out/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2613,
+          "name": "鍏跺畠鍑哄簱鍗曟洿鏂�",
+          "parent_id": 2610
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-out:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/out/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2616,
+          "name": "鍏跺畠鍑哄簱鍗曞鎵�",
+          "parent_id": 2610
+        }
+      ]
+    },
+    {
+      "key": "erp:stock-record:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/record/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2595,
+          "name": "搴撳瓨鏄庣粏瀵煎嚭",
+          "parent_id": 2593
+        }
+      ]
+    },
+    {
+      "key": "erp:stock:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/stock/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2592,
+          "name": "搴撳瓨瀵煎嚭",
+          "parent_id": 2590
+        }
+      ]
+    },
+    {
+      "key": "erp:warehouse:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/warehouse/index.vue",
+        "mom-pro2-before/src/views/erp/stock/warehouseMapping/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2586,
+          "name": "浠撳簱鍒涘缓",
+          "parent_id": 2584
+        }
+      ]
+    },
+    {
+      "key": "erp:warehouse:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/warehouse/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2589,
+          "name": "浠撳簱瀵煎嚭",
+          "parent_id": 2584
+        }
+      ]
+    },
+    {
+      "key": "erp:warehouse:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/warehouse/index.vue",
+        "mom-pro2-before/src/views/erp/stock/warehouseMapping/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2587,
+          "name": "浠撳簱鏇存柊",
+          "parent_id": 2584
+        }
+      ]
+    },
+    {
+      "key": "erp:warehouse:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/stock/warehouse/index.vue",
+        "mom-pro2-before/src/views/erp/stock/warehouseMapping/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 2588,
+          "name": "浠撳簱鍒犻櫎",
+          "parent_id": 2584
+        }
+      ]
+    },
+    {
+      "key": "hrm:leave:cancel",
+      "files": [
+        "mom-pro2-before/src/views/hrm/leave/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 60242,
+          "name": "鎾ら攢",
+          "parent_id": 6003
+        }
+      ]
+    },
+    {
+      "key": "hrm:resignation:cancel",
+      "files": [
+        "mom-pro2-before/src/views/hrm/resignation/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 60051,
+          "name": "绂昏亴鐢宠鎾ら攢",
+          "parent_id": 6005
+        }
+      ]
+    },
+    {
+      "key": "hrm:resignation:handover",
+      "files": [
+        "mom-pro2-before/src/views/hrm/resignation/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "hrm:salary-payment:export",
+      "files": [
+        "mom-pro2-before/src/views/hrm/salary/payment/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 60245,
+          "name": "瀵煎嚭",
+          "parent_id": 6022
+        }
+      ]
+    },
+    {
+      "key": "hrm:transfer:cancel",
+      "files": [
+        "mom-pro2-before/src/views/hrm/transfer/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 60041,
+          "name": "璋冨矖鐢宠鎾ら攢",
+          "parent_id": 6004
+        }
+      ]
+    },
+    {
+      "key": "im:aside",
+      "files": [
+        "mom-pro2-before/src/views/im/utils/db.ts"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-project:archive",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602586,
+          "name": "褰掓。",
+          "parent_id": 602572
+        }
+      ]
+    },
+    {
+      "key": "mes:pd-drawing-review:review",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/drawing-review/review-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-task:create",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-task:dispatch",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-task:update",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-task:complete",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-task:delete",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-version-change:create",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/version-change/version-change-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-version-change:update",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/version-change/version-change-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-version-change:approve",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/version-change/version-change-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd-version-change:delete",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/version-change/version-change-list.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:pd:parameter:create",
+      "files": [
+        "mom-pro2-before/src/views/mes/process-design/parameter/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602480,
+          "name": "鍒涘缓宸ヨ壓鍙傛暟",
+          "parent_id": 602474
+        }
+      ]
+    },
+    {
+      "key": "mes:pd:parameter:export",
+      "files": [
+        "mom-pro2-before/src/views/mes/process-design/parameter/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602483,
+          "name": "瀵煎嚭宸ヨ壓鍙傛暟",
+          "parent_id": 602474
+        }
+      ]
+    },
+    {
+      "key": "mes:pd:parameter:update",
+      "files": [
+        "mom-pro2-before/src/views/mes/process-design/parameter/index.vue",
+        "mom-pro2-before/src/views/mes/process-design/parameter/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602481,
+          "name": "缂栬緫宸ヨ壓鍙傛暟",
+          "parent_id": 602474
+        }
+      ]
+    },
+    {
+      "key": "mes:pd:parameter:delete",
+      "files": [
+        "mom-pro2-before/src/views/mes/process-design/parameter/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602482,
+          "name": "鍒犻櫎宸ヨ壓鍙傛暟",
+          "parent_id": 602474
+        }
+      ]
+    },
+    {
+      "key": "mes:pd:template:create",
+      "files": [
+        "mom-pro2-before/src/views/mes/process-design/template/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602484,
+          "name": "鍒涘缓宸ヨ壓鍙傛暟妯℃澘",
+          "parent_id": 602475
+        }
+      ]
+    },
+    {
+      "key": "mes:pd:template:export",
+      "files": [
+        "mom-pro2-before/src/views/mes/process-design/template/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602487,
+          "name": "瀵煎嚭宸ヨ壓鍙傛暟妯℃澘",
+          "parent_id": 602475
+        }
+      ]
+    },
+    {
+      "key": "mes:pd:template:update",
+      "files": [
+        "mom-pro2-before/src/views/mes/process-design/template/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602485,
+          "name": "缂栬緫宸ヨ壓鍙傛暟妯℃澘",
+          "parent_id": 602475
+        }
+      ]
+    },
+    {
+      "key": "mes:pd:template:delete",
+      "files": [
+        "mom-pro2-before/src/views/mes/process-design/template/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602486,
+          "name": "鍒犻櫎宸ヨ壓鍙傛暟妯℃澘",
+          "parent_id": 602475
+        }
+      ]
+    },
+    {
+      "key": "system:notify-template:export",
+      "files": [
+        "mom-pro2-before/src/views/system/notify/template/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:wm-approval:save",
+      "files": [
+        "mom-pro2-before/src/views/wls/approval/config/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:wm-material-stock:move",
+      "files": [
+        "mom-pro2-before/src/views/wls/materialstock/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 602523,
+          "name": "绉诲簱",
+          "parent_id": 5786
+        }
+      ]
+    },
+    {
+      "key": "mes:wm-misc-receipt:create",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:wm-misc-receipt:export",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:wm-misc-receipt:update",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:wm-misc-receipt:delete",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:wm-misc-receipt:finish",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:wm-misc-receipt:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "mes:wm-return-vendor:update-status",
+      "files": [
+        "mom-pro2-before/src/views/wls/returnvendor/index.vue"
+      ],
+      "menus": [
+        {
+          "id": 5836,
+          "name": "渚涘簲鍟嗛��璐у崟鐘舵�佸彉鏇�",
+          "parent_id": 5830
+        }
+      ]
+    },
+    {
+      "key": "wms:item-brand:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/brand/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item-brand:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/brand/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item-brand:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/brand/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item-brand:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/brand/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item-category:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/category/index.vue",
+        "mom-pro2-before/src/views/wms/md/item/category/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item-category:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/category/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item-category:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/category/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:item:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:merchant:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/merchant/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:merchant:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/merchant/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:merchant:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/merchant/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:merchant:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/merchant/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:warehouse:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/warehouse/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:warehouse:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/warehouse/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:warehouse:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/warehouse/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:warehouse:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/warehouse/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:check-order:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:check-order:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:check-order:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:check-order:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:check-order:query",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:check-order:complete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/modules/form.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:check-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/modules/form.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:movement-order:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:movement-order:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:movement-order:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:movement-order:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:movement-order:query",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:movement-order:complete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/modules/form.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:movement-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/modules/form.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:receipt-order:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:receipt-order:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:receipt-order:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:receipt-order:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:receipt-order:query",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:receipt-order:complete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/modules/form.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:receipt-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/modules/form.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:shipment-order:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:shipment-order:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:shipment-order:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:shipment-order:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:shipment-order:query",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:shipment-order:complete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/modules/form.vue"
+      ],
+      "menus": []
+    },
+    {
+      "key": "wms:shipment-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/modules/form.vue"
+      ],
+      "menus": []
+    }
+  ],
+  "frontendWithoutMenu": [
+    {
+      "key": "bpm:oa-notice:query",
+      "files": [
+        "mom-pro2-before/src/views/bpm/oa/notice/index.vue"
+      ]
+    },
+    {
+      "key": "crm:product-category:create",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/category/index.vue",
+        "mom-pro2-before/src/views/crm/product/category/index.vue"
+      ]
+    },
+    {
+      "key": "crm:product-category:update",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/category/index.vue"
+      ]
+    },
+    {
+      "key": "crm:product-category:delete",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/category/index.vue"
+      ]
+    },
+    {
+      "key": "crm:product:create",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/index.vue"
+      ]
+    },
+    {
+      "key": "crm:product:export",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/index.vue"
+      ]
+    },
+    {
+      "key": "crm:product:update",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/index.vue"
+      ]
+    },
+    {
+      "key": "crm:product:delete",
+      "files": [
+        "mom-pro2-before/src/views/crm/product/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-in:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-in:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-in:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue",
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-in:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-in:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-in:inspect",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-in:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/in/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-order:import",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/order/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-request:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/request/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-request:generate-order",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/request/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-return:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-return:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-return:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue",
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-return:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-return:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:purchase-return:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:supplier:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/supplier/index.vue"
+      ]
+    },
+    {
+      "key": "erp:supplier:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/supplier/index.vue"
+      ]
+    },
+    {
+      "key": "erp:supplier:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/supplier/index.vue"
+      ]
+    },
+    {
+      "key": "erp:supplier:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/purchase/supplier/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-order:import",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/order/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/order/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-order:enable",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/order/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-out:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-out:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-out:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue",
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-out:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-out:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-out:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/out/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-return:create",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-return:export",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-return:delete",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue",
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-return:query",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-return:update",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ]
+    },
+    {
+      "key": "erp:sale-return:update-status",
+      "files": [
+        "mom-pro2-before/src/views/erp/sale/return/index.vue"
+      ]
+    },
+    {
+      "key": "hrm:employee-contract:import",
+      "files": [
+        "mom-pro2-before/src/views/hrm/employee/contract/index.vue"
+      ]
+    },
+    {
+      "key": "hrm:resignation:handover",
+      "files": [
+        "mom-pro2-before/src/views/hrm/resignation/index.vue"
+      ]
+    },
+    {
+      "key": "hrm:salary-calculation:save",
+      "files": [
+        "mom-pro2-before/src/views/hrm/salary/calculation/index.vue"
+      ]
+    },
+    {
+      "key": "hrm:salary-calculation:delete",
+      "files": [
+        "mom-pro2-before/src/views/hrm/salary/calculation/index.vue"
+      ]
+    },
+    {
+      "key": "hrm:salary-payment:generate",
+      "files": [
+        "mom-pro2-before/src/views/hrm/salary/payment/index.vue"
+      ]
+    },
+    {
+      "key": "hrm:salary-structure:create",
+      "files": [
+        "mom-pro2-before/src/views/hrm/salary/structure/index.vue"
+      ]
+    },
+    {
+      "key": "hrm:salary-structure:update",
+      "files": [
+        "mom-pro2-before/src/views/hrm/salary/structure/index.vue"
+      ]
+    },
+    {
+      "key": "hrm:salary-structure:delete",
+      "files": [
+        "mom-pro2-before/src/views/hrm/salary/structure/index.vue"
+      ]
+    },
+    {
+      "key": "im:aside",
+      "files": [
+        "mom-pro2-before/src/views/im/utils/db.ts"
+      ]
+    },
+    {
+      "key": "mes:dv-metering:import",
+      "files": [
+        "mom-pro2-before/src/views/mes/dv/metering/index.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-drawing-review:review",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/drawing-review/review-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-task:create",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-task:dispatch",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-task:update",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-task:complete",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-task:delete",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/task/task-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-version-change:create",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/version-change/version-change-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-version-change:update",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/version-change/version-change-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-version-change:approve",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/version-change/version-change-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pd-version-change:delete",
+      "files": [
+        "mom-pro2-before/src/views/mes/pd/project/modules/version-change/version-change-list.vue"
+      ]
+    },
+    {
+      "key": "mes:pro-mps:query",
+      "files": [
+        "mom-pro2-before/src/views/mes/pro/mps/index.vue"
+      ]
+    },
+    {
+      "key": "system:notify-template:export",
+      "files": [
+        "mom-pro2-before/src/views/system/notify/template/index.vue"
+      ]
+    },
+    {
+      "key": "mes:wm-approval:save",
+      "files": [
+        "mom-pro2-before/src/views/wls/approval/config/index.vue"
+      ]
+    },
+    {
+      "key": "mes:wm-misc-receipt:create",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ]
+    },
+    {
+      "key": "mes:wm-misc-receipt:export",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ]
+    },
+    {
+      "key": "mes:wm-misc-receipt:update",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ]
+    },
+    {
+      "key": "mes:wm-misc-receipt:delete",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ]
+    },
+    {
+      "key": "mes:wm-misc-receipt:finish",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ]
+    },
+    {
+      "key": "mes:wm-misc-receipt:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wls/miscreceipt/index.vue"
+      ]
+    },
+    {
+      "key": "mes:wm-outsource-issue:finish",
+      "files": [
+        "mom-pro2-before/src/views/wls/outsourceissue/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item-brand:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/brand/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item-brand:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/brand/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item-brand:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/brand/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item-brand:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/brand/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item-category:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/category/index.vue",
+        "mom-pro2-before/src/views/wms/md/item/category/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item-category:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/category/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item-category:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/category/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/index.vue"
+      ]
+    },
+    {
+      "key": "wms:item:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/item/index.vue"
+      ]
+    },
+    {
+      "key": "wms:merchant:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/merchant/index.vue"
+      ]
+    },
+    {
+      "key": "wms:merchant:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/merchant/index.vue"
+      ]
+    },
+    {
+      "key": "wms:merchant:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/merchant/index.vue"
+      ]
+    },
+    {
+      "key": "wms:merchant:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/merchant/index.vue"
+      ]
+    },
+    {
+      "key": "wms:warehouse:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/warehouse/index.vue"
+      ]
+    },
+    {
+      "key": "wms:warehouse:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/warehouse/index.vue"
+      ]
+    },
+    {
+      "key": "wms:warehouse:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/warehouse/index.vue"
+      ]
+    },
+    {
+      "key": "wms:warehouse:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/md/warehouse/index.vue"
+      ]
+    },
+    {
+      "key": "wms:check-order:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ]
+    },
+    {
+      "key": "wms:check-order:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ]
+    },
+    {
+      "key": "wms:check-order:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ]
+    },
+    {
+      "key": "wms:check-order:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ]
+    },
+    {
+      "key": "wms:check-order:query",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/index.vue"
+      ]
+    },
+    {
+      "key": "wms:check-order:complete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/modules/form.vue"
+      ]
+    },
+    {
+      "key": "wms:check-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/check/modules/form.vue"
+      ]
+    },
+    {
+      "key": "wms:movement-order:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ]
+    },
+    {
+      "key": "wms:movement-order:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ]
+    },
+    {
+      "key": "wms:movement-order:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ]
+    },
+    {
+      "key": "wms:movement-order:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ]
+    },
+    {
+      "key": "wms:movement-order:query",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/index.vue"
+      ]
+    },
+    {
+      "key": "wms:movement-order:complete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/modules/form.vue"
+      ]
+    },
+    {
+      "key": "wms:movement-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/movement/modules/form.vue"
+      ]
+    },
+    {
+      "key": "wms:receipt-order:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ]
+    },
+    {
+      "key": "wms:receipt-order:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ]
+    },
+    {
+      "key": "wms:receipt-order:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ]
+    },
+    {
+      "key": "wms:receipt-order:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ]
+    },
+    {
+      "key": "wms:receipt-order:query",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/index.vue"
+      ]
+    },
+    {
+      "key": "wms:receipt-order:complete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/modules/form.vue"
+      ]
+    },
+    {
+      "key": "wms:receipt-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/receipt/modules/form.vue"
+      ]
+    },
+    {
+      "key": "wms:shipment-order:create",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ]
+    },
+    {
+      "key": "wms:shipment-order:export",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ]
+    },
+    {
+      "key": "wms:shipment-order:update",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ]
+    },
+    {
+      "key": "wms:shipment-order:delete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ]
+    },
+    {
+      "key": "wms:shipment-order:query",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/index.vue"
+      ]
+    },
+    {
+      "key": "wms:shipment-order:complete",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/modules/form.vue"
+      ]
+    },
+    {
+      "key": "wms:shipment-order:cancel",
+      "files": [
+        "mom-pro2-before/src/views/wms/order/shipment/modules/form.vue"
+      ]
+    }
+  ],
+  "backendWithoutMenu": [
+    {
+      "key": "bi:dashboard:query",
+      "files": [
+        "yudao-module-bi/src/main/java/cn/iocoder/yudao/module/bi/controller/admin/dashboard/DashboardController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "bpm:oa-notice:query",
+      "files": [
+        "yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOANoticeController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "crm:invoice:query",
+      "files": [
+        "yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/invoice/CrmInvoiceController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "crm:sale-quotation:query",
+      "files": [
+        "yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/quotation/CrmSaleQuotationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "crm:sale-quotation:export",
+      "files": [
+        "yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/quotation/CrmSaleQuotationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "crm:sale-quotation:convert-contract",
+      "files": [
+        "yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/quotation/CrmSaleQuotationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "erp:purchase-order:import",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:purchase-request:query",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:purchase-request:submit",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "erp:purchase-request:generate-order",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:supplier:create",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpSupplierController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:supplier:update",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpSupplierController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:supplier:delete",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpSupplierController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:supplier:query",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpSupplierController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "erp:supplier:export",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpSupplierController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:sale-order:cancel",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/sale/ErpSaleOrderController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:sale-order:enable",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/sale/ErpSaleOrderController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "erp:sale-order:import",
+      "files": [
+        "yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/sale/ErpSaleOrderController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "hrm:leave:export",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmLeaveApplicationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:overtime:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmOvertimeApplicationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:resignation:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmResignationApplicationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:resignation:export",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmResignationApplicationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:transfer:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmTransferApplicationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:transfer:export",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmTransferApplicationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:attendance-exception:update",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:attendance-exception:delete",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:attendance-exception:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceExceptionController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:attendance-holiday:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceHolidayController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:attendance-record:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:attendance-rule:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRuleController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:attendance-summary:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceSummaryController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:employee-contract:import",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/employee/HrmEmployeeContractController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "hrm:employee-social-security:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmEmployeeSocialSecurityController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:salary-calculation:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:salary-calculation:delete",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "hrm:salary-calculation:save",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryCalculationController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "hrm:salary-payment:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryPaymentController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:salary-payment:generate",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryPaymentController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "hrm:salary-payment:delete",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryPaymentController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:salary-structure:create",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryStructureController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "hrm:salary-structure:update",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryStructureController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "hrm:salary-structure:delete",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryStructureController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "hrm:salary-structure:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSalaryStructureController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:social-security:create",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:social-security:update",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:social-security:delete",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:social-security:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecurityConfigController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:social-security-scheme:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmSocialSecuritySchemeController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "hrm:tax-rate-config:query",
+      "files": [
+        "yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/HrmTaxRateConfigController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:brand:create",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/brand/MdmBrandController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:brand:update",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/brand/MdmBrandController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:brand:delete",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/brand/MdmBrandController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:brand:query",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/brand/MdmBrandController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:item-category:create",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/category/MdmItemCategoryController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:item-category:update",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/category/MdmItemCategoryController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:item-category:delete",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/category/MdmItemCategoryController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:item-category:query",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/category/MdmItemCategoryController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:warehouse:create",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/warehouse/MdmWarehouseController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:warehouse:update",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/warehouse/MdmWarehouseController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:warehouse:delete",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/warehouse/MdmWarehouseController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mdm:warehouse:query",
+      "files": [
+        "yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/controller/admin/warehouse/MdmWarehouseController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:user:query",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/address/AddressController.java",
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/MemberUserController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:config:save",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/config/MemberConfigController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:config:query",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/config/MemberConfigController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:group:create",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/MemberGroupController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:group:update",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/MemberGroupController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:group:delete",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/MemberGroupController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:group:query",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/MemberGroupController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:experience-record:query",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/MemberExperienceRecordController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:level:create",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/MemberLevelController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:level:update",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/MemberLevelController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:level:delete",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/MemberLevelController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:level:query",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/MemberLevelController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:level-record:query",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/MemberLevelRecordController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:tag:create",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/tag/MemberTagController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:tag:update",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/tag/MemberTagController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:tag:delete",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/tag/MemberTagController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:tag:query",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/tag/MemberTagController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:user:update",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/MemberUserController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:user:update-level",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/MemberUserController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "member:user:update-point",
+      "files": [
+        "yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/MemberUserController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:dv-metering:import",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/metering/MesDvMeteringController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "mes:md-unit-measure:create",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/unitmeasure/MesMdUnitMeasureController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:md-unit-measure:update",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/unitmeasure/MesMdUnitMeasureController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:md-unit-measure:delete",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/unitmeasure/MesMdUnitMeasureController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:md-unit-measure:query",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/unitmeasure/MesMdUnitMeasureController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:md-unit-measure:export",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/unitmeasure/MesMdUnitMeasureController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:md-workshop:export",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-archive:create",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/archive/MesPdArchiveController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document:create",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/document/MesPdDocumentController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document:update",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/document/MesPdDocumentController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document:delete",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/document/MesPdDocumentController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document:query",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/document/MesPdDocumentController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document:export",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/document/MesPdDocumentController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document-audit:create",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/documentaudit/MesPdDocumentAuditController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document-audit:update",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/documentaudit/MesPdDocumentAuditController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document-audit:delete",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/documentaudit/MesPdDocumentAuditController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document-audit:query",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/documentaudit/MesPdDocumentAuditController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-document-audit:export",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/documentaudit/MesPdDocumentAuditController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param:create",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparam/MesPdProcessParamController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param:update",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparam/MesPdProcessParamController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param:delete",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparam/MesPdProcessParamController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param:query",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparam/MesPdProcessParamController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param:export",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparam/MesPdProcessParamController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param-template:create",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparamtemplate/MesPdProcessParamTemplateController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param-template:update",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparamtemplate/MesPdProcessParamTemplateController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param-template:delete",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparamtemplate/MesPdProcessParamTemplateController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param-template:query",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparamtemplate/MesPdProcessParamTemplateController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pd-process-param-template:export",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pd/processparamtemplate/MesPdProcessParamTemplateController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pro-mps:query",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/mps/MesProMpsController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "mes:pro-task-issue:create",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/MesProTaskIssueController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pro-task-issue:update",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/MesProTaskIssueController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pro-task-issue:delete",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/MesProTaskIssueController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:pro-task-issue:query",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/MesProTaskIssueController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:qc:update",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/ai/MesQcAiController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:qc-ipqc:finish",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/ipqc/MesQcIpqcController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:qc-iqc:finish",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/iqc/MesQcIqcController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:qc-oqc:finish",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/MesQcOqcController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:qc-rqc:finish",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/rqc/MesQcRqcController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:wm-outsource-issue:finish",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/outsourceissue/MesWmOutsourceIssueController.java"
+      ],
+      "usedInFrontend": true
+    },
+    {
+      "key": "mes:wm-product-produce:query",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productproduce/MesWmProductProduceLineController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:wm-return-vendor:finish",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/returnvendor/MesWmReturnVendorController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "mes:wm-stock-taking-task:finish",
+      "files": [
+        "yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/stocktaking/task/MesWmStockTakingTaskController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "srm:supplier-contact:create",
+      "files": [
+        "yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/supplier/SrmSupplierContactController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "srm:supplier-contact:update",
+      "files": [
+        "yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/supplier/SrmSupplierContactController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "srm:supplier-contact:delete",
+      "files": [
+        "yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/supplier/SrmSupplierContactController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "srm:supplier-contact:query",
+      "files": [
+        "yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/supplier/SrmSupplierContactController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "srm:tender-config:query",
+      "files": [
+        "yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/tender/SrmTenderConfigController.java"
+      ],
+      "usedInFrontend": false
+    },
+    {
+      "key": "srm:tender-config:update",
+      "files": [
+        "yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/controller/admin/tender/SrmTenderConfigController.java"
+      ],
+      "usedInFrontend": false
+    }
+  ],
+  "menuWithoutBackend": [
+    {
+      "id": 100,
+      "name": "鐢ㄦ埛绠$悊",
+      "permission": "system:user:list",
+      "parent_id": 1,
+      "type": 2,
+      "component": "system/user/index",
+      "component_name": "SystemUser",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 114,
+      "name": "琛ㄥ崟鏋勫缓",
+      "permission": "infra:build:list",
+      "parent_id": 2,
+      "type": 2,
+      "component": "infra/build/index",
+      "component_name": "InfraBuild",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 116,
+      "name": "API 鎺ュ彛",
+      "permission": "infra:swagger:list",
+      "parent_id": 2,
+      "type": 2,
+      "component": "infra/swagger/index",
+      "component_name": "InfraSwagger",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1067,
+      "name": "鑾峰緱 Redis Key 鍒楄〃",
+      "permission": "infra:redis:get-key-list",
+      "parent_id": 113,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1192,
+      "name": "琛ㄥ崟瀵煎嚭",
+      "permission": "bpm:form:export",
+      "parent_id": 1187,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1216,
+      "name": "娴佺▼浠诲姟鍒嗛厤瑙勫垯鏌ヨ",
+      "permission": "bpm:task-assign-rule:query",
+      "parent_id": 1193,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1217,
+      "name": "娴佺▼浠诲姟鍒嗛厤瑙勫垯鍒涘缓",
+      "permission": "bpm:task-assign-rule:create",
+      "parent_id": 1193,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1218,
+      "name": "娴佺▼浠诲姟鍒嗛厤瑙勫垯鏇存柊",
+      "permission": "bpm:task-assign-rule:update",
+      "parent_id": 1193,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1219,
+      "name": "娴佺▼瀹炰緥鐨勫垱寤�",
+      "permission": "bpm:process-instance:create",
+      "parent_id": 1201,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1242,
+      "name": "鏂囦欢閰嶇疆瀵煎嚭",
+      "permission": "infra:file-config:export",
+      "parent_id": 1237,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1260,
+      "name": "鏁版嵁婧愰厤缃鍑�",
+      "permission": "infra:data-source-config:export",
+      "parent_id": 1255,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2154,
+      "name": "鍒涘缓椤圭洰",
+      "permission": "report:go-view-project:create",
+      "parent_id": 2153,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2155,
+      "name": "鏇存柊椤圭洰",
+      "permission": "report:go-view-project:update",
+      "parent_id": 2153,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2156,
+      "name": "鏌ヨ椤圭洰",
+      "permission": "report:go-view-project:query",
+      "parent_id": 2153,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2157,
+      "name": "浣跨敤 SQL 鏌ヨ鏁版嵁",
+      "permission": "report:go-view-data:get-by-sql",
+      "parent_id": 2153,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2158,
+      "name": "浣跨敤 HTTP 鏌ヨ鏁版嵁",
+      "permission": "report:go-view-data:get-by-http",
+      "parent_id": 2153,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2523,
+      "name": "瀹㈡埛闄愬埗閰嶇疆瀵煎嚭",
+      "permission": "crm:customer-limit-config:export",
+      "parent_id": 2518,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2566,
+      "name": "浜у搧鏌ヨ",
+      "permission": "erp:product:query",
+      "parent_id": 2565,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2567,
+      "name": "浜у搧鍒涘缓",
+      "permission": "erp:product:create",
+      "parent_id": 2565,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2568,
+      "name": "浜у搧鏇存柊",
+      "permission": "erp:product:update",
+      "parent_id": 2565,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2569,
+      "name": "浜у搧鍒犻櫎",
+      "permission": "erp:product:delete",
+      "parent_id": 2565,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2570,
+      "name": "浜у搧瀵煎嚭",
+      "permission": "erp:product:export",
+      "parent_id": 2565,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2572,
+      "name": "鍒嗙被鏌ヨ",
+      "permission": "erp:product-category:query",
+      "parent_id": 2571,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2573,
+      "name": "鍒嗙被鍒涘缓",
+      "permission": "erp:product-category:create",
+      "parent_id": 2571,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2574,
+      "name": "鍒嗙被鏇存柊",
+      "permission": "erp:product-category:update",
+      "parent_id": 2571,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2575,
+      "name": "鍒嗙被鍒犻櫎",
+      "permission": "erp:product-category:delete",
+      "parent_id": 2571,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2576,
+      "name": "鍒嗙被瀵煎嚭",
+      "permission": "erp:product-category:export",
+      "parent_id": 2571,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2578,
+      "name": "鍗曚綅鏌ヨ",
+      "permission": "erp:product-unit:query",
+      "parent_id": 2577,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2579,
+      "name": "鍗曚綅鍒涘缓",
+      "permission": "erp:product-unit:create",
+      "parent_id": 2577,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2580,
+      "name": "鍗曚綅鏇存柊",
+      "permission": "erp:product-unit:update",
+      "parent_id": 2577,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2581,
+      "name": "鍗曚綅鍒犻櫎",
+      "permission": "erp:product-unit:delete",
+      "parent_id": 2577,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2582,
+      "name": "鍗曚綅瀵煎嚭",
+      "permission": "erp:product-unit:export",
+      "parent_id": 2577,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2585,
+      "name": "浠撳簱鏌ヨ",
+      "permission": "erp:warehouse:query",
+      "parent_id": 2584,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2586,
+      "name": "浠撳簱鍒涘缓",
+      "permission": "erp:warehouse:create",
+      "parent_id": 2584,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2587,
+      "name": "浠撳簱鏇存柊",
+      "permission": "erp:warehouse:update",
+      "parent_id": 2584,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2588,
+      "name": "浠撳簱鍒犻櫎",
+      "permission": "erp:warehouse:delete",
+      "parent_id": 2584,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2589,
+      "name": "浠撳簱瀵煎嚭",
+      "permission": "erp:warehouse:export",
+      "parent_id": 2584,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2591,
+      "name": "搴撳瓨鏌ヨ",
+      "permission": "erp:stock:query",
+      "parent_id": 2590,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2592,
+      "name": "搴撳瓨瀵煎嚭",
+      "permission": "erp:stock:export",
+      "parent_id": 2590,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2594,
+      "name": "搴撳瓨鏄庣粏鏌ヨ",
+      "permission": "erp:stock-record:query",
+      "parent_id": 2593,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2595,
+      "name": "搴撳瓨鏄庣粏瀵煎嚭",
+      "permission": "erp:stock-record:export",
+      "parent_id": 2593,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2597,
+      "name": "鍏跺畠鍏ュ簱鍗曟煡璇�",
+      "permission": "erp:stock-in:query",
+      "parent_id": 2596,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2598,
+      "name": "鍏跺畠鍏ュ簱鍗曞垱寤�",
+      "permission": "erp:stock-in:create",
+      "parent_id": 2596,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2599,
+      "name": "鍏跺畠鍏ュ簱鍗曟洿鏂�",
+      "permission": "erp:stock-in:update",
+      "parent_id": 2596,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2600,
+      "name": "鍏跺畠鍏ュ簱鍗曞垹闄�",
+      "permission": "erp:stock-in:delete",
+      "parent_id": 2596,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2601,
+      "name": "鍏跺畠鍏ュ簱鍗曞鍑�",
+      "permission": "erp:stock-in:export",
+      "parent_id": 2596,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2609,
+      "name": "鍏跺畠鍏ュ簱鍗曞鎵�",
+      "permission": "erp:stock-in:update-status",
+      "parent_id": 2596,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2611,
+      "name": "鍏跺畠鍑哄簱鍗曟煡璇�",
+      "permission": "erp:stock-out:query",
+      "parent_id": 2610,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2612,
+      "name": "鍏跺畠鍑哄簱鍗曞垱寤�",
+      "permission": "erp:stock-out:create",
+      "parent_id": 2610,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2613,
+      "name": "鍏跺畠鍑哄簱鍗曟洿鏂�",
+      "permission": "erp:stock-out:update",
+      "parent_id": 2610,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2614,
+      "name": "鍏跺畠鍑哄簱鍗曞垹闄�",
+      "permission": "erp:stock-out:delete",
+      "parent_id": 2610,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2615,
+      "name": "鍏跺畠鍑哄簱鍗曞鍑�",
+      "permission": "erp:stock-out:export",
+      "parent_id": 2610,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2616,
+      "name": "鍏跺畠鍑哄簱鍗曞鎵�",
+      "permission": "erp:stock-out:update-status",
+      "parent_id": 2610,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2619,
+      "name": "瀹㈡埛鏌ヨ",
+      "permission": "erp:customer:query",
+      "parent_id": 2618,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2620,
+      "name": "瀹㈡埛鍒涘缓",
+      "permission": "erp:customer:create",
+      "parent_id": 2618,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2621,
+      "name": "瀹㈡埛鏇存柊",
+      "permission": "erp:customer:update",
+      "parent_id": 2618,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2622,
+      "name": "瀹㈡埛鍒犻櫎",
+      "permission": "erp:customer:delete",
+      "parent_id": 2618,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2623,
+      "name": "瀹㈡埛瀵煎嚭",
+      "permission": "erp:customer:export",
+      "parent_id": 2618,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2625,
+      "name": "搴撳瓨璋冨害鍗曟煡璇�",
+      "permission": "erp:stock-move:query",
+      "parent_id": 2624,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2626,
+      "name": "搴撳瓨璋冨害鍗曞垱寤�",
+      "permission": "erp:stock-move:create",
+      "parent_id": 2624,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2627,
+      "name": "搴撳瓨璋冨害鍗曟洿鏂�",
+      "permission": "erp:stock-move:update",
+      "parent_id": 2624,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2628,
+      "name": "搴撳瓨璋冨害鍗曞垹闄�",
+      "permission": "erp:stock-move:delete",
+      "parent_id": 2624,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2629,
+      "name": "搴撳瓨璋冨害鍗曞鍑�",
+      "permission": "erp:stock-move:export",
+      "parent_id": 2624,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2630,
+      "name": "搴撳瓨璋冨害鍗曞鎵�",
+      "permission": "erp:stock-move:update-status",
+      "parent_id": 2624,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2632,
+      "name": "搴撳瓨鐩樼偣鍗曟煡璇�",
+      "permission": "erp:stock-check:query",
+      "parent_id": 2631,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2633,
+      "name": "搴撳瓨鐩樼偣鍗曞垱寤�",
+      "permission": "erp:stock-check:create",
+      "parent_id": 2631,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2634,
+      "name": "搴撳瓨鐩樼偣鍗曟洿鏂�",
+      "permission": "erp:stock-check:update",
+      "parent_id": 2631,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2635,
+      "name": "搴撳瓨鐩樼偣鍗曞垹闄�",
+      "permission": "erp:stock-check:delete",
+      "parent_id": 2631,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2636,
+      "name": "搴撳瓨鐩樼偣鍗曞鍑�",
+      "permission": "erp:stock-check:export",
+      "parent_id": 2631,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2637,
+      "name": "搴撳瓨鐩樼偣鍗曞鎵�",
+      "permission": "erp:stock-check:update-status",
+      "parent_id": 2631,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2693,
+      "name": "浠樻鍗曞鎵�",
+      "permission": "erp:finance-payment:update-status",
+      "parent_id": 2687,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2755,
+      "name": "鍒犻櫎椤圭洰",
+      "permission": "report:go-view-project:delete",
+      "parent_id": 2153,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2774,
+      "name": "鑱婂ぉ瑙掕壊鏌ヨ",
+      "permission": "ai:chat-role:query",
+      "parent_id": 2773,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2775,
+      "name": "鑱婂ぉ瑙掕壊鍒涘缓",
+      "permission": "ai:chat-role:create",
+      "parent_id": 2773,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2776,
+      "name": "鑱婂ぉ瑙掕壊鏇存柊",
+      "permission": "ai:chat-role:update",
+      "parent_id": 2773,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2777,
+      "name": "鑱婂ぉ瑙掕壊鍒犻櫎",
+      "permission": "ai:chat-role:delete",
+      "parent_id": 2773,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2779,
+      "name": "浼氳瘽鏌ヨ",
+      "permission": "ai:chat-conversation:query",
+      "parent_id": 2778,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2780,
+      "name": "浼氳瘽鍒犻櫎",
+      "permission": "ai:chat-conversation:delete",
+      "parent_id": 2778,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2781,
+      "name": "娑堟伅鏌ヨ",
+      "permission": "ai:chat-message:query",
+      "parent_id": 2778,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2782,
+      "name": "娑堟伅鍒犻櫎",
+      "permission": "ai:chat-message:delete",
+      "parent_id": 2778,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2785,
+      "name": "缁樼敾鏌ヨ",
+      "permission": "ai:image:query",
+      "parent_id": 2784,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2786,
+      "name": "缁樼敾鍒犻櫎",
+      "permission": "ai:image:delete",
+      "parent_id": 2784,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2787,
+      "name": "缁樺浘鏇存柊",
+      "permission": "ai:image:update",
+      "parent_id": 2784,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2789,
+      "name": "闊充箰鏌ヨ",
+      "permission": "ai:music:query",
+      "parent_id": 2788,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2790,
+      "name": "闊充箰鏇存柊",
+      "permission": "ai:music:update",
+      "parent_id": 2788,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2791,
+      "name": "闊充箰鍒犻櫎",
+      "permission": "ai:music:delete",
+      "parent_id": 2788,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2794,
+      "name": "AI 鍐欎綔鏌ヨ",
+      "permission": "ai:write:query",
+      "parent_id": 2793,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2795,
+      "name": "AI 鍐欎綔鍒犻櫎",
+      "permission": "ai:write:delete",
+      "parent_id": 2793,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2800,
+      "name": "鎬濈淮瀵煎浘鏌ヨ",
+      "permission": "ai:mind-map:query",
+      "parent_id": 2799,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2801,
+      "name": "鎬濈淮瀵煎浘鍒犻櫎",
+      "permission": "ai:mind-map:delete",
+      "parent_id": 2799,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2921,
+      "name": "宸ュ叿鏌ヨ",
+      "permission": "ai:tool:query",
+      "parent_id": 2920,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2922,
+      "name": "宸ュ叿鍒涘缓",
+      "permission": "ai:tool:create",
+      "parent_id": 2920,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2923,
+      "name": "宸ュ叿鏇存柊",
+      "permission": "ai:tool:update",
+      "parent_id": 2920,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 2924,
+      "name": "宸ュ叿鍒犻櫎",
+      "permission": "ai:tool:delete",
+      "parent_id": 2920,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5001,
+      "name": "AI 宸ヤ綔娴佹煡璇�",
+      "permission": "ai:workflow:query",
+      "parent_id": 5000,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5002,
+      "name": "AI 宸ヤ綔娴佸垱寤�",
+      "permission": "ai:workflow:create",
+      "parent_id": 5000,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5003,
+      "name": "AI 宸ヤ綔娴佹洿鏂�",
+      "permission": "ai:workflow:update",
+      "parent_id": 5000,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5004,
+      "name": "AI 宸ヤ綔娴佸垹闄�",
+      "permission": "ai:workflow:delete",
+      "parent_id": 5000,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5005,
+      "name": "AI 宸ヤ綔娴佹祴璇�",
+      "permission": "ai:workflow:test",
+      "parent_id": 5000,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5010,
+      "name": "绉熸埛鍒囨崲",
+      "permission": "system:tenant:visit",
+      "parent_id": 1138,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5126,
+      "name": "鐗╂枡瀵煎叆",
+      "permission": "mes:md-item:import",
+      "parent_id": 5120,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5253,
+      "name": "鍋囨湡鏇存柊",
+      "permission": "mes:cal-holiday:update",
+      "parent_id": 5250,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5254,
+      "name": "鍋囨湡鍒犻櫎",
+      "permission": "mes:cal-holiday:delete",
+      "parent_id": 5250,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5255,
+      "name": "鍋囨湡瀵煎嚭",
+      "permission": "mes:cal-holiday:export",
+      "parent_id": 5250,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5315,
+      "name": "绫诲瀷瀵煎嚭",
+      "permission": "mes:dv-machinery-type:export",
+      "parent_id": 5310,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5788,
+      "name": "搴撳瓨鍙拌处鍒涘缓",
+      "permission": "mes:wm-material-stock:create",
+      "parent_id": 5786,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5790,
+      "name": "搴撳瓨鍙拌处鍒犻櫎",
+      "permission": "mes:wm-material-stock:delete",
+      "parent_id": 5786,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5836,
+      "name": "渚涘簲鍟嗛��璐у崟鐘舵�佸彉鏇�",
+      "permission": "mes:wm-return-vendor:update-status",
+      "parent_id": 5830,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5887,
+      "name": "澶栧崗鍙戞枡鍗曟墽琛屽嚭搴�",
+      "permission": "mes:wm-outsource-issue:execute",
+      "parent_id": 5881,
+      "type": 3,
+      "component": "",
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5928,
+      "name": "璋冩嫧鍗曟彁浜�",
+      "permission": "mes:wm-transfer:submit",
+      "parent_id": 5922,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5929,
+      "name": "璋冩嫧鍗曠‘璁�",
+      "permission": "mes:wm-transfer:confirm",
+      "parent_id": 5922,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 5931,
+      "name": "璋冩嫧鍗曞彇娑�",
+      "permission": "mes:wm-transfer:cancel",
+      "parent_id": 5922,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 6520,
+      "name": "濂藉弸鍒楄〃",
+      "permission": "im:manager:friend:list",
+      "parent_id": 6600,
+      "type": 2,
+      "component": "im/manager/friend/index",
+      "component_name": "ImFriend",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 6530,
+      "name": "濂藉弸娑堟伅",
+      "permission": "im:manager:message:private:list",
+      "parent_id": 6600,
+      "type": 2,
+      "component": "im/manager/message/private/index",
+      "component_name": "ImPrivateMessage",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 6540,
+      "name": "缇よ亰鍒楄〃",
+      "permission": "im:manager:group:list",
+      "parent_id": 6610,
+      "type": 2,
+      "component": "im/manager/group/index",
+      "component_name": "ImGroup",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 6550,
+      "name": "缇よ亰娑堟伅",
+      "permission": "im:manager:message:group:list",
+      "parent_id": 6610,
+      "type": 2,
+      "component": "im/manager/message/group/index",
+      "component_name": "ImGroupMessage",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 6560,
+      "name": "鏁忔劅璇嶇鐞�",
+      "permission": "im:manager:sensitive-word:list",
+      "parent_id": 6500,
+      "type": 2,
+      "component": "im/manager/sensitiveword/index",
+      "component_name": "ImSensitiveWord",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 6571,
+      "name": "绯荤粺琛ㄦ儏",
+      "permission": "im:manager:face-pack:list",
+      "parent_id": 6570,
+      "type": 2,
+      "component": "im/manager/face/pack/index",
+      "component_name": "ImManagerFacePack",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 6580,
+      "name": "鐢ㄦ埛琛ㄦ儏",
+      "permission": "im:manager:face-user-item:list",
+      "parent_id": 6570,
+      "type": 2,
+      "component": "im/manager/face/userItem/index",
+      "component_name": "ImManagerFaceUserItem",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 60041,
+      "name": "璋冨矖鐢宠鎾ら攢",
+      "permission": "hrm:transfer:cancel",
+      "parent_id": 6004,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 60051,
+      "name": "绂昏亴鐢宠鎾ら攢",
+      "permission": "hrm:resignation:cancel",
+      "parent_id": 6005,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 60242,
+      "name": "鎾ら攢",
+      "permission": "hrm:leave:cancel",
+      "parent_id": 6003,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 60245,
+      "name": "瀵煎嚭",
+      "permission": "hrm:salary-payment:export",
+      "parent_id": 6022,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602480,
+      "name": "鍒涘缓宸ヨ壓鍙傛暟",
+      "permission": "mes:pd:parameter:create",
+      "parent_id": 602474,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602481,
+      "name": "缂栬緫宸ヨ壓鍙傛暟",
+      "permission": "mes:pd:parameter:update",
+      "parent_id": 602474,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602482,
+      "name": "鍒犻櫎宸ヨ壓鍙傛暟",
+      "permission": "mes:pd:parameter:delete",
+      "parent_id": 602474,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602483,
+      "name": "瀵煎嚭宸ヨ壓鍙傛暟",
+      "permission": "mes:pd:parameter:export",
+      "parent_id": 602474,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602484,
+      "name": "鍒涘缓宸ヨ壓鍙傛暟妯℃澘",
+      "permission": "mes:pd:template:create",
+      "parent_id": 602475,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602485,
+      "name": "缂栬緫宸ヨ壓鍙傛暟妯℃澘",
+      "permission": "mes:pd:template:update",
+      "parent_id": 602475,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602486,
+      "name": "鍒犻櫎宸ヨ壓鍙傛暟妯℃澘",
+      "permission": "mes:pd:template:delete",
+      "parent_id": 602475,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602487,
+      "name": "瀵煎嚭宸ヨ壓鍙傛暟妯℃澘",
+      "permission": "mes:pd:template:export",
+      "parent_id": 602475,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602518,
+      "name": "鏂囦欢涓婁紶",
+      "permission": "system:storage-blob:upload",
+      "parent_id": 602517,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602519,
+      "name": "鍏叡鏂囦欢涓婁紶",
+      "permission": "system:storage-blob:public-upload",
+      "parent_id": 602517,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602523,
+      "name": "绉诲簱",
+      "permission": "mes:wm-material-stock:move",
+      "parent_id": 5786,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602583,
+      "name": "鏌ョ湅鍏ㄩ儴瀹㈡埛",
+      "permission": "crm:customer:view-all",
+      "parent_id": 2546,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602585,
+      "name": "瀹℃牳",
+      "permission": "mes:pd-project:audit",
+      "parent_id": 602572,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602586,
+      "name": "褰掓。",
+      "permission": "mes:pd-project:archive",
+      "parent_id": 602572,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 602595,
+      "name": "鏌ョ湅鍏ㄩ儴",
+      "permission": "aftersales:admin",
+      "parent_id": 602588,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1063091,
+      "name": "浠撳簱鍧愭爣鏌ヨ",
+      "permission": "bi:warehouse-coordinate:query",
+      "parent_id": 1063009,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1063122,
+      "name": "浠樻鍗曞鎵�",
+      "permission": "erp:finance-payment:update-status",
+      "parent_id": 1063116,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075401,
+      "name": "鎶ュ憡妯℃澘鏌ヨ",
+      "permission": "qc-report:template:query",
+      "parent_id": 1075400,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075402,
+      "name": "鎶ュ憡妯℃澘鍒涘缓",
+      "permission": "qc-report:template:create",
+      "parent_id": 1075400,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075403,
+      "name": "鎶ュ憡妯℃澘鏇存柊",
+      "permission": "qc-report:template:update",
+      "parent_id": 1075400,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075404,
+      "name": "鎶ュ憡妯℃澘鍒犻櫎",
+      "permission": "qc-report:template:delete",
+      "parent_id": 1075400,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075405,
+      "name": "鎶ュ憡妯℃澘鍙戝竷",
+      "permission": "qc-report:template:publish",
+      "parent_id": 1075400,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075411,
+      "name": "鎶ュ憡瀹炰緥鏌ヨ",
+      "permission": "qc-report:instance:query",
+      "parent_id": 1075410,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075412,
+      "name": "鎶ュ憡瀹炰緥鍑轰欢",
+      "permission": "qc-report:instance:create",
+      "parent_id": 1075410,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075413,
+      "name": "鎶ュ憡瀹炰緥瀵煎嚭PDF",
+      "permission": "qc-report:instance:export",
+      "parent_id": 1075410,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075414,
+      "name": "鎶ュ憡瀹炰緥鍒犻櫎",
+      "permission": "qc-report:instance:delete",
+      "parent_id": 1075410,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075415,
+      "name": "鎶ュ憡妯℃澘AI瀵煎叆",
+      "permission": "qc-report:template:ai-import",
+      "parent_id": 1075400,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075416,
+      "name": "鎶ュ憡瀹炰緥璐ㄦ鍗曞嚭浠�",
+      "permission": "qc-report:instance:generate",
+      "parent_id": 1075410,
+      "type": 3,
+      "component": null,
+      "component_name": null,
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075426,
+      "name": "鑳借�楄褰�",
+      "permission": "energy:record:query",
+      "parent_id": 1075425,
+      "type": 2,
+      "component": "energy/record/index",
+      "component_name": "EnergyRecord",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075427,
+      "name": "鏁版嵁鍒嗘瀽",
+      "permission": "energy:analysis:query",
+      "parent_id": 1075425,
+      "type": 2,
+      "component": "energy/analysis/index",
+      "component_name": "EnergyAnalysis",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075428,
+      "name": "鏂板鑳借�楄褰�",
+      "permission": "energy:record:create",
+      "parent_id": 1075426,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075429,
+      "name": "淇敼鑳借�楄褰�",
+      "permission": "energy:record:update",
+      "parent_id": 1075426,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    },
+    {
+      "id": 1075430,
+      "name": "鍒犻櫎鑳借�楄褰�",
+      "permission": "energy:record:delete",
+      "parent_id": 1075426,
+      "type": 3,
+      "component": "",
+      "component_name": "",
+      "status": 0,
+      "deleted": 0
+    }
+  ],
+  "duplicatePermissions": [
+    {
+      "key": "infra:job:update",
+      "menus": [
+        1051,
+        1053
+      ]
+    },
+    {
+      "key": "infra:api-error-log:query",
+      "menus": [
+        1084,
+        1089
+      ]
+    },
+    {
+      "key": "erp:finance-payment:query",
+      "menus": [
+        2688,
+        1063117
+      ]
+    },
+    {
+      "key": "erp:finance-payment:create",
+      "menus": [
+        2689,
+        1063118
+      ]
+    },
+    {
+      "key": "erp:finance-payment:update",
+      "menus": [
+        2690,
+        1063119
+      ]
+    },
+    {
+      "key": "erp:finance-payment:delete",
+      "menus": [
+        2691,
+        1063120
+      ]
+    },
+    {
+      "key": "erp:finance-payment:export",
+      "menus": [
+        2692,
+        1063121
+      ]
+    },
+    {
+      "key": "erp:finance-payment:update-status",
+      "menus": [
+        2693,
+        1063122
+      ]
+    },
+    {
+      "key": "ai:api-key:create",
+      "menus": [
+        2763,
+        602597
+      ]
+    },
+    {
+      "key": "ai:api-key:update",
+      "menus": [
+        2764,
+        602598
+      ]
+    },
+    {
+      "key": "ai:api-key:delete",
+      "menus": [
+        2765,
+        602599
+      ]
+    },
+    {
+      "key": "ai:model:create",
+      "menus": [
+        2769,
+        602601
+      ]
+    },
+    {
+      "key": "ai:model:update",
+      "menus": [
+        2770,
+        602602
+      ]
+    },
+    {
+      "key": "ai:model:delete",
+      "menus": [
+        2771,
+        602603
+      ]
+    },
+    {
+      "key": "ai:knowledge:create",
+      "menus": [
+        2917,
+        602605
+      ]
+    },
+    {
+      "key": "ai:knowledge:update",
+      "menus": [
+        2918,
+        602606
+      ]
+    },
+    {
+      "key": "ai:knowledge:delete",
+      "menus": [
+        2919,
+        602607
+      ]
+    },
+    {
+      "key": "mes:dv-repair:export",
+      "menus": [
+        5366,
+        5375
+      ]
+    },
+    {
+      "key": "im:manager:message:query",
+      "menus": [
+        6531,
+        6551
+      ]
+    },
+    {
+      "key": "hrm:leave-type-config:update",
+      "menus": [
+        602450,
+        1065204
+      ]
+    },
+    {
+      "key": "crm:sale-quotation:update",
+      "menus": [
+        602514,
+        602515
+      ]
+    },
+    {
+      "key": "mes:pd-project:update",
+      "menus": [
+        602575,
+        602584
+      ]
+    },
+    {
+      "key": "crm:sales-target:query",
+      "menus": [
+        1065001,
+        1065101
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/scripts/permission-audit-summary.json b/scripts/permission-audit-summary.json
new file mode 100644
index 0000000..90fc23e
--- /dev/null
+++ b/scripts/permission-audit-summary.json
@@ -0,0 +1,1276 @@
+{
+  "counts": {
+    "backend": 946,
+    "frontend": 836,
+    "database": 972
+  },
+  "frontendWithoutBackend": [
+    "ai:chat-conversation:delete",
+    "ai:chat-message:delete",
+    "ai:image:delete",
+    "ai:mind-map:delete",
+    "ai:chat-role:create",
+    "ai:chat-role:update",
+    "ai:chat-role:delete",
+    "ai:tool:create",
+    "ai:tool:update",
+    "ai:tool:delete",
+    "ai:music:delete",
+    "ai:workflow:test",
+    "ai:workflow:create",
+    "ai:workflow:update",
+    "ai:workflow:delete",
+    "ai:write:delete",
+    "bpm:process-instance:create",
+    "crm:product-category:create",
+    "crm:product-category:update",
+    "crm:product-category:delete",
+    "crm:product:create",
+    "crm:product:export",
+    "crm:product:update",
+    "crm:product:delete",
+    "erp:product-category:create",
+    "erp:product-category:export",
+    "erp:product-category:update",
+    "erp:product-category:delete",
+    "erp:product:create",
+    "erp:product:export",
+    "erp:product:update",
+    "erp:product:delete",
+    "erp:product-unit:create",
+    "erp:product-unit:export",
+    "erp:product-unit:update",
+    "erp:product-unit:delete",
+    "erp:purchase-in:create",
+    "erp:purchase-in:export",
+    "erp:purchase-in:delete",
+    "erp:purchase-in:query",
+    "erp:purchase-in:update",
+    "erp:purchase-in:inspect",
+    "erp:purchase-in:update-status",
+    "erp:purchase-return:create",
+    "erp:purchase-return:export",
+    "erp:purchase-return:delete",
+    "erp:purchase-return:query",
+    "erp:purchase-return:update",
+    "erp:purchase-return:update-status",
+    "erp:customer:create",
+    "erp:customer:export",
+    "erp:customer:update",
+    "erp:customer:delete",
+    "erp:sale-out:create",
+    "erp:sale-out:export",
+    "erp:sale-out:delete",
+    "erp:sale-out:query",
+    "erp:sale-out:update",
+    "erp:sale-out:update-status",
+    "erp:sale-return:create",
+    "erp:sale-return:export",
+    "erp:sale-return:delete",
+    "erp:sale-return:query",
+    "erp:sale-return:update",
+    "erp:sale-return:update-status",
+    "erp:stock-check:create",
+    "erp:stock-check:export",
+    "erp:stock-check:delete",
+    "erp:stock-check:query",
+    "erp:stock-check:update",
+    "erp:stock-check:update-status",
+    "erp:stock-in:create",
+    "erp:stock-in:export",
+    "erp:stock-in:delete",
+    "erp:stock-in:query",
+    "erp:stock-in:update",
+    "erp:stock-in:update-status",
+    "erp:stock-move:create",
+    "erp:stock-move:export",
+    "erp:stock-move:delete",
+    "erp:stock-move:query",
+    "erp:stock-move:update",
+    "erp:stock-move:update-status",
+    "erp:stock-out:create",
+    "erp:stock-out:export",
+    "erp:stock-out:delete",
+    "erp:stock-out:query",
+    "erp:stock-out:update",
+    "erp:stock-out:update-status",
+    "erp:stock-record:export",
+    "erp:stock:export",
+    "erp:warehouse:create",
+    "erp:warehouse:export",
+    "erp:warehouse:update",
+    "erp:warehouse:delete",
+    "hrm:leave:cancel",
+    "hrm:resignation:cancel",
+    "hrm:resignation:handover",
+    "hrm:salary-payment:export",
+    "hrm:transfer:cancel",
+    "im:aside",
+    "mes:pd-project:archive",
+    "mes:pd-drawing-review:review",
+    "mes:pd-task:create",
+    "mes:pd-task:dispatch",
+    "mes:pd-task:update",
+    "mes:pd-task:complete",
+    "mes:pd-task:delete",
+    "mes:pd-version-change:create",
+    "mes:pd-version-change:update",
+    "mes:pd-version-change:approve",
+    "mes:pd-version-change:delete",
+    "mes:pd:parameter:create",
+    "mes:pd:parameter:export",
+    "mes:pd:parameter:update",
+    "mes:pd:parameter:delete",
+    "mes:pd:template:create",
+    "mes:pd:template:export",
+    "mes:pd:template:update",
+    "mes:pd:template:delete",
+    "system:notify-template:export",
+    "mes:wm-approval:save",
+    "mes:wm-material-stock:move",
+    "mes:wm-misc-receipt:create",
+    "mes:wm-misc-receipt:export",
+    "mes:wm-misc-receipt:update",
+    "mes:wm-misc-receipt:delete",
+    "mes:wm-misc-receipt:finish",
+    "mes:wm-misc-receipt:cancel",
+    "mes:wm-return-vendor:update-status",
+    "wms:item-brand:create",
+    "wms:item-brand:export",
+    "wms:item-brand:update",
+    "wms:item-brand:delete",
+    "wms:item-category:create",
+    "wms:item-category:update",
+    "wms:item-category:delete",
+    "wms:item:create",
+    "wms:item:export",
+    "wms:item:update",
+    "wms:item:delete",
+    "wms:merchant:create",
+    "wms:merchant:export",
+    "wms:merchant:update",
+    "wms:merchant:delete",
+    "wms:warehouse:create",
+    "wms:warehouse:export",
+    "wms:warehouse:update",
+    "wms:warehouse:delete",
+    "wms:check-order:create",
+    "wms:check-order:export",
+    "wms:check-order:update",
+    "wms:check-order:delete",
+    "wms:check-order:query",
+    "wms:check-order:complete",
+    "wms:check-order:cancel",
+    "wms:movement-order:create",
+    "wms:movement-order:export",
+    "wms:movement-order:update",
+    "wms:movement-order:delete",
+    "wms:movement-order:query",
+    "wms:movement-order:complete",
+    "wms:movement-order:cancel",
+    "wms:receipt-order:create",
+    "wms:receipt-order:export",
+    "wms:receipt-order:update",
+    "wms:receipt-order:delete",
+    "wms:receipt-order:query",
+    "wms:receipt-order:complete",
+    "wms:receipt-order:cancel",
+    "wms:shipment-order:create",
+    "wms:shipment-order:export",
+    "wms:shipment-order:update",
+    "wms:shipment-order:delete",
+    "wms:shipment-order:query",
+    "wms:shipment-order:complete",
+    "wms:shipment-order:cancel"
+  ],
+  "frontendWithoutMenu": [
+    "bpm:oa-notice:query",
+    "crm:product-category:create",
+    "crm:product-category:update",
+    "crm:product-category:delete",
+    "crm:product:create",
+    "crm:product:export",
+    "crm:product:update",
+    "crm:product:delete",
+    "erp:purchase-in:create",
+    "erp:purchase-in:export",
+    "erp:purchase-in:delete",
+    "erp:purchase-in:query",
+    "erp:purchase-in:update",
+    "erp:purchase-in:inspect",
+    "erp:purchase-in:update-status",
+    "erp:purchase-order:import",
+    "erp:purchase-request:query",
+    "erp:purchase-request:generate-order",
+    "erp:purchase-return:create",
+    "erp:purchase-return:export",
+    "erp:purchase-return:delete",
+    "erp:purchase-return:query",
+    "erp:purchase-return:update",
+    "erp:purchase-return:update-status",
+    "erp:supplier:create",
+    "erp:supplier:export",
+    "erp:supplier:update",
+    "erp:supplier:delete",
+    "erp:sale-order:import",
+    "erp:sale-order:cancel",
+    "erp:sale-order:enable",
+    "erp:sale-out:create",
+    "erp:sale-out:export",
+    "erp:sale-out:delete",
+    "erp:sale-out:query",
+    "erp:sale-out:update",
+    "erp:sale-out:update-status",
+    "erp:sale-return:create",
+    "erp:sale-return:export",
+    "erp:sale-return:delete",
+    "erp:sale-return:query",
+    "erp:sale-return:update",
+    "erp:sale-return:update-status",
+    "hrm:employee-contract:import",
+    "hrm:resignation:handover",
+    "hrm:salary-calculation:save",
+    "hrm:salary-calculation:delete",
+    "hrm:salary-payment:generate",
+    "hrm:salary-structure:create",
+    "hrm:salary-structure:update",
+    "hrm:salary-structure:delete",
+    "im:aside",
+    "mes:dv-metering:import",
+    "mes:pd-drawing-review:review",
+    "mes:pd-task:create",
+    "mes:pd-task:dispatch",
+    "mes:pd-task:update",
+    "mes:pd-task:complete",
+    "mes:pd-task:delete",
+    "mes:pd-version-change:create",
+    "mes:pd-version-change:update",
+    "mes:pd-version-change:approve",
+    "mes:pd-version-change:delete",
+    "mes:pro-mps:query",
+    "system:notify-template:export",
+    "mes:wm-approval:save",
+    "mes:wm-misc-receipt:create",
+    "mes:wm-misc-receipt:export",
+    "mes:wm-misc-receipt:update",
+    "mes:wm-misc-receipt:delete",
+    "mes:wm-misc-receipt:finish",
+    "mes:wm-misc-receipt:cancel",
+    "mes:wm-outsource-issue:finish",
+    "wms:item-brand:create",
+    "wms:item-brand:export",
+    "wms:item-brand:update",
+    "wms:item-brand:delete",
+    "wms:item-category:create",
+    "wms:item-category:update",
+    "wms:item-category:delete",
+    "wms:item:create",
+    "wms:item:export",
+    "wms:item:update",
+    "wms:item:delete",
+    "wms:merchant:create",
+    "wms:merchant:export",
+    "wms:merchant:update",
+    "wms:merchant:delete",
+    "wms:warehouse:create",
+    "wms:warehouse:export",
+    "wms:warehouse:update",
+    "wms:warehouse:delete",
+    "wms:check-order:create",
+    "wms:check-order:export",
+    "wms:check-order:update",
+    "wms:check-order:delete",
+    "wms:check-order:query",
+    "wms:check-order:complete",
+    "wms:check-order:cancel",
+    "wms:movement-order:create",
+    "wms:movement-order:export",
+    "wms:movement-order:update",
+    "wms:movement-order:delete",
+    "wms:movement-order:query",
+    "wms:movement-order:complete",
+    "wms:movement-order:cancel",
+    "wms:receipt-order:create",
+    "wms:receipt-order:export",
+    "wms:receipt-order:update",
+    "wms:receipt-order:delete",
+    "wms:receipt-order:query",
+    "wms:receipt-order:complete",
+    "wms:receipt-order:cancel",
+    "wms:shipment-order:create",
+    "wms:shipment-order:export",
+    "wms:shipment-order:update",
+    "wms:shipment-order:delete",
+    "wms:shipment-order:query",
+    "wms:shipment-order:complete",
+    "wms:shipment-order:cancel"
+  ],
+  "backendWithoutMenuUsedInFrontend": [
+    "bpm:oa-notice:query",
+    "erp:purchase-order:import",
+    "erp:purchase-request:query",
+    "erp:purchase-request:generate-order",
+    "erp:supplier:create",
+    "erp:supplier:update",
+    "erp:supplier:delete",
+    "erp:supplier:export",
+    "erp:sale-order:cancel",
+    "erp:sale-order:enable",
+    "erp:sale-order:import",
+    "hrm:employee-contract:import",
+    "hrm:salary-calculation:delete",
+    "hrm:salary-calculation:save",
+    "hrm:salary-payment:generate",
+    "hrm:salary-structure:create",
+    "hrm:salary-structure:update",
+    "hrm:salary-structure:delete",
+    "mes:dv-metering:import",
+    "mes:pro-mps:query",
+    "mes:wm-outsource-issue:finish"
+  ],
+  "menuWithoutBackend": [
+    {
+      "id": 100,
+      "permission": "system:user:list",
+      "parent": 1
+    },
+    {
+      "id": 114,
+      "permission": "infra:build:list",
+      "parent": 2
+    },
+    {
+      "id": 116,
+      "permission": "infra:swagger:list",
+      "parent": 2
+    },
+    {
+      "id": 1067,
+      "permission": "infra:redis:get-key-list",
+      "parent": 113
+    },
+    {
+      "id": 1192,
+      "permission": "bpm:form:export",
+      "parent": 1187
+    },
+    {
+      "id": 1216,
+      "permission": "bpm:task-assign-rule:query",
+      "parent": 1193
+    },
+    {
+      "id": 1217,
+      "permission": "bpm:task-assign-rule:create",
+      "parent": 1193
+    },
+    {
+      "id": 1218,
+      "permission": "bpm:task-assign-rule:update",
+      "parent": 1193
+    },
+    {
+      "id": 1219,
+      "permission": "bpm:process-instance:create",
+      "parent": 1201
+    },
+    {
+      "id": 1242,
+      "permission": "infra:file-config:export",
+      "parent": 1237
+    },
+    {
+      "id": 1260,
+      "permission": "infra:data-source-config:export",
+      "parent": 1255
+    },
+    {
+      "id": 2154,
+      "permission": "report:go-view-project:create",
+      "parent": 2153
+    },
+    {
+      "id": 2155,
+      "permission": "report:go-view-project:update",
+      "parent": 2153
+    },
+    {
+      "id": 2156,
+      "permission": "report:go-view-project:query",
+      "parent": 2153
+    },
+    {
+      "id": 2157,
+      "permission": "report:go-view-data:get-by-sql",
+      "parent": 2153
+    },
+    {
+      "id": 2158,
+      "permission": "report:go-view-data:get-by-http",
+      "parent": 2153
+    },
+    {
+      "id": 2523,
+      "permission": "crm:customer-limit-config:export",
+      "parent": 2518
+    },
+    {
+      "id": 2566,
+      "permission": "erp:product:query",
+      "parent": 2565
+    },
+    {
+      "id": 2567,
+      "permission": "erp:product:create",
+      "parent": 2565
+    },
+    {
+      "id": 2568,
+      "permission": "erp:product:update",
+      "parent": 2565
+    },
+    {
+      "id": 2569,
+      "permission": "erp:product:delete",
+      "parent": 2565
+    },
+    {
+      "id": 2570,
+      "permission": "erp:product:export",
+      "parent": 2565
+    },
+    {
+      "id": 2572,
+      "permission": "erp:product-category:query",
+      "parent": 2571
+    },
+    {
+      "id": 2573,
+      "permission": "erp:product-category:create",
+      "parent": 2571
+    },
+    {
+      "id": 2574,
+      "permission": "erp:product-category:update",
+      "parent": 2571
+    },
+    {
+      "id": 2575,
+      "permission": "erp:product-category:delete",
+      "parent": 2571
+    },
+    {
+      "id": 2576,
+      "permission": "erp:product-category:export",
+      "parent": 2571
+    },
+    {
+      "id": 2578,
+      "permission": "erp:product-unit:query",
+      "parent": 2577
+    },
+    {
+      "id": 2579,
+      "permission": "erp:product-unit:create",
+      "parent": 2577
+    },
+    {
+      "id": 2580,
+      "permission": "erp:product-unit:update",
+      "parent": 2577
+    },
+    {
+      "id": 2581,
+      "permission": "erp:product-unit:delete",
+      "parent": 2577
+    },
+    {
+      "id": 2582,
+      "permission": "erp:product-unit:export",
+      "parent": 2577
+    },
+    {
+      "id": 2585,
+      "permission": "erp:warehouse:query",
+      "parent": 2584
+    },
+    {
+      "id": 2586,
+      "permission": "erp:warehouse:create",
+      "parent": 2584
+    },
+    {
+      "id": 2587,
+      "permission": "erp:warehouse:update",
+      "parent": 2584
+    },
+    {
+      "id": 2588,
+      "permission": "erp:warehouse:delete",
+      "parent": 2584
+    },
+    {
+      "id": 2589,
+      "permission": "erp:warehouse:export",
+      "parent": 2584
+    },
+    {
+      "id": 2591,
+      "permission": "erp:stock:query",
+      "parent": 2590
+    },
+    {
+      "id": 2592,
+      "permission": "erp:stock:export",
+      "parent": 2590
+    },
+    {
+      "id": 2594,
+      "permission": "erp:stock-record:query",
+      "parent": 2593
+    },
+    {
+      "id": 2595,
+      "permission": "erp:stock-record:export",
+      "parent": 2593
+    },
+    {
+      "id": 2597,
+      "permission": "erp:stock-in:query",
+      "parent": 2596
+    },
+    {
+      "id": 2598,
+      "permission": "erp:stock-in:create",
+      "parent": 2596
+    },
+    {
+      "id": 2599,
+      "permission": "erp:stock-in:update",
+      "parent": 2596
+    },
+    {
+      "id": 2600,
+      "permission": "erp:stock-in:delete",
+      "parent": 2596
+    },
+    {
+      "id": 2601,
+      "permission": "erp:stock-in:export",
+      "parent": 2596
+    },
+    {
+      "id": 2609,
+      "permission": "erp:stock-in:update-status",
+      "parent": 2596
+    },
+    {
+      "id": 2611,
+      "permission": "erp:stock-out:query",
+      "parent": 2610
+    },
+    {
+      "id": 2612,
+      "permission": "erp:stock-out:create",
+      "parent": 2610
+    },
+    {
+      "id": 2613,
+      "permission": "erp:stock-out:update",
+      "parent": 2610
+    },
+    {
+      "id": 2614,
+      "permission": "erp:stock-out:delete",
+      "parent": 2610
+    },
+    {
+      "id": 2615,
+      "permission": "erp:stock-out:export",
+      "parent": 2610
+    },
+    {
+      "id": 2616,
+      "permission": "erp:stock-out:update-status",
+      "parent": 2610
+    },
+    {
+      "id": 2619,
+      "permission": "erp:customer:query",
+      "parent": 2618
+    },
+    {
+      "id": 2620,
+      "permission": "erp:customer:create",
+      "parent": 2618
+    },
+    {
+      "id": 2621,
+      "permission": "erp:customer:update",
+      "parent": 2618
+    },
+    {
+      "id": 2622,
+      "permission": "erp:customer:delete",
+      "parent": 2618
+    },
+    {
+      "id": 2623,
+      "permission": "erp:customer:export",
+      "parent": 2618
+    },
+    {
+      "id": 2625,
+      "permission": "erp:stock-move:query",
+      "parent": 2624
+    },
+    {
+      "id": 2626,
+      "permission": "erp:stock-move:create",
+      "parent": 2624
+    },
+    {
+      "id": 2627,
+      "permission": "erp:stock-move:update",
+      "parent": 2624
+    },
+    {
+      "id": 2628,
+      "permission": "erp:stock-move:delete",
+      "parent": 2624
+    },
+    {
+      "id": 2629,
+      "permission": "erp:stock-move:export",
+      "parent": 2624
+    },
+    {
+      "id": 2630,
+      "permission": "erp:stock-move:update-status",
+      "parent": 2624
+    },
+    {
+      "id": 2632,
+      "permission": "erp:stock-check:query",
+      "parent": 2631
+    },
+    {
+      "id": 2633,
+      "permission": "erp:stock-check:create",
+      "parent": 2631
+    },
+    {
+      "id": 2634,
+      "permission": "erp:stock-check:update",
+      "parent": 2631
+    },
+    {
+      "id": 2635,
+      "permission": "erp:stock-check:delete",
+      "parent": 2631
+    },
+    {
+      "id": 2636,
+      "permission": "erp:stock-check:export",
+      "parent": 2631
+    },
+    {
+      "id": 2637,
+      "permission": "erp:stock-check:update-status",
+      "parent": 2631
+    },
+    {
+      "id": 2693,
+      "permission": "erp:finance-payment:update-status",
+      "parent": 2687
+    },
+    {
+      "id": 2755,
+      "permission": "report:go-view-project:delete",
+      "parent": 2153
+    },
+    {
+      "id": 2774,
+      "permission": "ai:chat-role:query",
+      "parent": 2773
+    },
+    {
+      "id": 2775,
+      "permission": "ai:chat-role:create",
+      "parent": 2773
+    },
+    {
+      "id": 2776,
+      "permission": "ai:chat-role:update",
+      "parent": 2773
+    },
+    {
+      "id": 2777,
+      "permission": "ai:chat-role:delete",
+      "parent": 2773
+    },
+    {
+      "id": 2779,
+      "permission": "ai:chat-conversation:query",
+      "parent": 2778
+    },
+    {
+      "id": 2780,
+      "permission": "ai:chat-conversation:delete",
+      "parent": 2778
+    },
+    {
+      "id": 2781,
+      "permission": "ai:chat-message:query",
+      "parent": 2778
+    },
+    {
+      "id": 2782,
+      "permission": "ai:chat-message:delete",
+      "parent": 2778
+    },
+    {
+      "id": 2785,
+      "permission": "ai:image:query",
+      "parent": 2784
+    },
+    {
+      "id": 2786,
+      "permission": "ai:image:delete",
+      "parent": 2784
+    },
+    {
+      "id": 2787,
+      "permission": "ai:image:update",
+      "parent": 2784
+    },
+    {
+      "id": 2789,
+      "permission": "ai:music:query",
+      "parent": 2788
+    },
+    {
+      "id": 2790,
+      "permission": "ai:music:update",
+      "parent": 2788
+    },
+    {
+      "id": 2791,
+      "permission": "ai:music:delete",
+      "parent": 2788
+    },
+    {
+      "id": 2794,
+      "permission": "ai:write:query",
+      "parent": 2793
+    },
+    {
+      "id": 2795,
+      "permission": "ai:write:delete",
+      "parent": 2793
+    },
+    {
+      "id": 2800,
+      "permission": "ai:mind-map:query",
+      "parent": 2799
+    },
+    {
+      "id": 2801,
+      "permission": "ai:mind-map:delete",
+      "parent": 2799
+    },
+    {
+      "id": 2921,
+      "permission": "ai:tool:query",
+      "parent": 2920
+    },
+    {
+      "id": 2922,
+      "permission": "ai:tool:create",
+      "parent": 2920
+    },
+    {
+      "id": 2923,
+      "permission": "ai:tool:update",
+      "parent": 2920
+    },
+    {
+      "id": 2924,
+      "permission": "ai:tool:delete",
+      "parent": 2920
+    },
+    {
+      "id": 5001,
+      "permission": "ai:workflow:query",
+      "parent": 5000
+    },
+    {
+      "id": 5002,
+      "permission": "ai:workflow:create",
+      "parent": 5000
+    },
+    {
+      "id": 5003,
+      "permission": "ai:workflow:update",
+      "parent": 5000
+    },
+    {
+      "id": 5004,
+      "permission": "ai:workflow:delete",
+      "parent": 5000
+    },
+    {
+      "id": 5005,
+      "permission": "ai:workflow:test",
+      "parent": 5000
+    },
+    {
+      "id": 5010,
+      "permission": "system:tenant:visit",
+      "parent": 1138
+    },
+    {
+      "id": 5126,
+      "permission": "mes:md-item:import",
+      "parent": 5120
+    },
+    {
+      "id": 5253,
+      "permission": "mes:cal-holiday:update",
+      "parent": 5250
+    },
+    {
+      "id": 5254,
+      "permission": "mes:cal-holiday:delete",
+      "parent": 5250
+    },
+    {
+      "id": 5255,
+      "permission": "mes:cal-holiday:export",
+      "parent": 5250
+    },
+    {
+      "id": 5315,
+      "permission": "mes:dv-machinery-type:export",
+      "parent": 5310
+    },
+    {
+      "id": 5788,
+      "permission": "mes:wm-material-stock:create",
+      "parent": 5786
+    },
+    {
+      "id": 5790,
+      "permission": "mes:wm-material-stock:delete",
+      "parent": 5786
+    },
+    {
+      "id": 5836,
+      "permission": "mes:wm-return-vendor:update-status",
+      "parent": 5830
+    },
+    {
+      "id": 5887,
+      "permission": "mes:wm-outsource-issue:execute",
+      "parent": 5881
+    },
+    {
+      "id": 5928,
+      "permission": "mes:wm-transfer:submit",
+      "parent": 5922
+    },
+    {
+      "id": 5929,
+      "permission": "mes:wm-transfer:confirm",
+      "parent": 5922
+    },
+    {
+      "id": 5931,
+      "permission": "mes:wm-transfer:cancel",
+      "parent": 5922
+    },
+    {
+      "id": 6520,
+      "permission": "im:manager:friend:list",
+      "parent": 6600
+    },
+    {
+      "id": 6530,
+      "permission": "im:manager:message:private:list",
+      "parent": 6600
+    },
+    {
+      "id": 6540,
+      "permission": "im:manager:group:list",
+      "parent": 6610
+    },
+    {
+      "id": 6550,
+      "permission": "im:manager:message:group:list",
+      "parent": 6610
+    },
+    {
+      "id": 6560,
+      "permission": "im:manager:sensitive-word:list",
+      "parent": 6500
+    },
+    {
+      "id": 6571,
+      "permission": "im:manager:face-pack:list",
+      "parent": 6570
+    },
+    {
+      "id": 6580,
+      "permission": "im:manager:face-user-item:list",
+      "parent": 6570
+    },
+    {
+      "id": 60041,
+      "permission": "hrm:transfer:cancel",
+      "parent": 6004
+    },
+    {
+      "id": 60051,
+      "permission": "hrm:resignation:cancel",
+      "parent": 6005
+    },
+    {
+      "id": 60242,
+      "permission": "hrm:leave:cancel",
+      "parent": 6003
+    },
+    {
+      "id": 60245,
+      "permission": "hrm:salary-payment:export",
+      "parent": 6022
+    },
+    {
+      "id": 602480,
+      "permission": "mes:pd:parameter:create",
+      "parent": 602474
+    },
+    {
+      "id": 602481,
+      "permission": "mes:pd:parameter:update",
+      "parent": 602474
+    },
+    {
+      "id": 602482,
+      "permission": "mes:pd:parameter:delete",
+      "parent": 602474
+    },
+    {
+      "id": 602483,
+      "permission": "mes:pd:parameter:export",
+      "parent": 602474
+    },
+    {
+      "id": 602484,
+      "permission": "mes:pd:template:create",
+      "parent": 602475
+    },
+    {
+      "id": 602485,
+      "permission": "mes:pd:template:update",
+      "parent": 602475
+    },
+    {
+      "id": 602486,
+      "permission": "mes:pd:template:delete",
+      "parent": 602475
+    },
+    {
+      "id": 602487,
+      "permission": "mes:pd:template:export",
+      "parent": 602475
+    },
+    {
+      "id": 602518,
+      "permission": "system:storage-blob:upload",
+      "parent": 602517
+    },
+    {
+      "id": 602519,
+      "permission": "system:storage-blob:public-upload",
+      "parent": 602517
+    },
+    {
+      "id": 602523,
+      "permission": "mes:wm-material-stock:move",
+      "parent": 5786
+    },
+    {
+      "id": 602583,
+      "permission": "crm:customer:view-all",
+      "parent": 2546
+    },
+    {
+      "id": 602585,
+      "permission": "mes:pd-project:audit",
+      "parent": 602572
+    },
+    {
+      "id": 602586,
+      "permission": "mes:pd-project:archive",
+      "parent": 602572
+    },
+    {
+      "id": 602595,
+      "permission": "aftersales:admin",
+      "parent": 602588
+    },
+    {
+      "id": 1063091,
+      "permission": "bi:warehouse-coordinate:query",
+      "parent": 1063009
+    },
+    {
+      "id": 1063122,
+      "permission": "erp:finance-payment:update-status",
+      "parent": 1063116
+    },
+    {
+      "id": 1075401,
+      "permission": "qc-report:template:query",
+      "parent": 1075400
+    },
+    {
+      "id": 1075402,
+      "permission": "qc-report:template:create",
+      "parent": 1075400
+    },
+    {
+      "id": 1075403,
+      "permission": "qc-report:template:update",
+      "parent": 1075400
+    },
+    {
+      "id": 1075404,
+      "permission": "qc-report:template:delete",
+      "parent": 1075400
+    },
+    {
+      "id": 1075405,
+      "permission": "qc-report:template:publish",
+      "parent": 1075400
+    },
+    {
+      "id": 1075411,
+      "permission": "qc-report:instance:query",
+      "parent": 1075410
+    },
+    {
+      "id": 1075412,
+      "permission": "qc-report:instance:create",
+      "parent": 1075410
+    },
+    {
+      "id": 1075413,
+      "permission": "qc-report:instance:export",
+      "parent": 1075410
+    },
+    {
+      "id": 1075414,
+      "permission": "qc-report:instance:delete",
+      "parent": 1075410
+    },
+    {
+      "id": 1075415,
+      "permission": "qc-report:template:ai-import",
+      "parent": 1075400
+    },
+    {
+      "id": 1075416,
+      "permission": "qc-report:instance:generate",
+      "parent": 1075410
+    },
+    {
+      "id": 1075426,
+      "permission": "energy:record:query",
+      "parent": 1075425
+    },
+    {
+      "id": 1075427,
+      "permission": "energy:analysis:query",
+      "parent": 1075425
+    },
+    {
+      "id": 1075428,
+      "permission": "energy:record:create",
+      "parent": 1075426
+    },
+    {
+      "id": 1075429,
+      "permission": "energy:record:update",
+      "parent": 1075426
+    },
+    {
+      "id": 1075430,
+      "permission": "energy:record:delete",
+      "parent": 1075426
+    }
+  ],
+  "duplicatePermissions": [
+    {
+      "key": "infra:job:update",
+      "menus": [
+        1051,
+        1053
+      ]
+    },
+    {
+      "key": "infra:api-error-log:query",
+      "menus": [
+        1084,
+        1089
+      ]
+    },
+    {
+      "key": "erp:finance-payment:query",
+      "menus": [
+        2688,
+        1063117
+      ]
+    },
+    {
+      "key": "erp:finance-payment:create",
+      "menus": [
+        2689,
+        1063118
+      ]
+    },
+    {
+      "key": "erp:finance-payment:update",
+      "menus": [
+        2690,
+        1063119
+      ]
+    },
+    {
+      "key": "erp:finance-payment:delete",
+      "menus": [
+        2691,
+        1063120
+      ]
+    },
+    {
+      "key": "erp:finance-payment:export",
+      "menus": [
+        2692,
+        1063121
+      ]
+    },
+    {
+      "key": "erp:finance-payment:update-status",
+      "menus": [
+        2693,
+        1063122
+      ]
+    },
+    {
+      "key": "ai:api-key:create",
+      "menus": [
+        2763,
+        602597
+      ]
+    },
+    {
+      "key": "ai:api-key:update",
+      "menus": [
+        2764,
+        602598
+      ]
+    },
+    {
+      "key": "ai:api-key:delete",
+      "menus": [
+        2765,
+        602599
+      ]
+    },
+    {
+      "key": "ai:model:create",
+      "menus": [
+        2769,
+        602601
+      ]
+    },
+    {
+      "key": "ai:model:update",
+      "menus": [
+        2770,
+        602602
+      ]
+    },
+    {
+      "key": "ai:model:delete",
+      "menus": [
+        2771,
+        602603
+      ]
+    },
+    {
+      "key": "ai:knowledge:create",
+      "menus": [
+        2917,
+        602605
+      ]
+    },
+    {
+      "key": "ai:knowledge:update",
+      "menus": [
+        2918,
+        602606
+      ]
+    },
+    {
+      "key": "ai:knowledge:delete",
+      "menus": [
+        2919,
+        602607
+      ]
+    },
+    {
+      "key": "mes:dv-repair:export",
+      "menus": [
+        5366,
+        5375
+      ]
+    },
+    {
+      "key": "im:manager:message:query",
+      "menus": [
+        6531,
+        6551
+      ]
+    },
+    {
+      "key": "hrm:leave-type-config:update",
+      "menus": [
+        602450,
+        1065204
+      ]
+    },
+    {
+      "key": "crm:sale-quotation:update",
+      "menus": [
+        602514,
+        602515
+      ]
+    },
+    {
+      "key": "mes:pd-project:update",
+      "menus": [
+        602575,
+        602584
+      ]
+    },
+    {
+      "key": "crm:sales-target:query",
+      "menus": [
+        1065001,
+        1065101
+      ]
+    }
+  ]
+}
diff --git a/scripts/permission-endpoints.json b/scripts/permission-endpoints.json
new file mode 100644
index 0000000..a4272a3
--- /dev/null
+++ b/scripts/permission-endpoints.json
@@ -0,0 +1,16743 @@
+[
+  {
+    "method": "POST",
+    "url": "/aftersales/problem/create",
+    "permissions": [
+      "aftersales:problem:create"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\problem\\AfterSaleProblemController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/aftersales/problem/update",
+    "permissions": [
+      "aftersales:problem:update"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\problem\\AfterSaleProblemController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/aftersales/problem/delete",
+    "permissions": [
+      "aftersales:problem:delete"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\problem\\AfterSaleProblemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/problem/get",
+    "permissions": [
+      "aftersales:problem:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\problem\\AfterSaleProblemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/problem/page",
+    "permissions": [
+      "aftersales:problem:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\problem\\AfterSaleProblemController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/aftersales/problem/publish",
+    "permissions": [
+      "aftersales:problem:publish"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\problem\\AfterSaleProblemController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/aftersales/problem/disable",
+    "permissions": [
+      "aftersales:problem:disable"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\problem\\AfterSaleProblemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/problem/reference",
+    "permissions": [
+      "aftersales:problem:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\problem\\AfterSaleProblemController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/aftersales/return/create",
+    "permissions": [
+      "aftersales:return:create"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\returnobj\\AfterSaleReturnController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/aftersales/return/approve",
+    "permissions": [
+      "aftersales:return:approve"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\returnobj\\AfterSaleReturnController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/return/get",
+    "permissions": [
+      "aftersales:return:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\returnobj\\AfterSaleReturnController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/return/page",
+    "permissions": [
+      "aftersales:return:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\returnobj\\AfterSaleReturnController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/aftersales/ticket/create",
+    "permissions": [
+      "aftersales:ticket:create"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/aftersales/ticket/update",
+    "permissions": [
+      "aftersales:ticket:update"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/aftersales/ticket/delete",
+    "permissions": [
+      "aftersales:ticket:delete"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/ticket/get",
+    "permissions": [
+      "aftersales:ticket:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/ticket/page",
+    "permissions": [
+      "aftersales:ticket:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/aftersales/ticket/assign",
+    "permissions": [
+      "aftersales:ticket:update"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/aftersales/ticket/classify",
+    "permissions": [
+      "aftersales:ticket:update"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/aftersales/ticket/resolve",
+    "permissions": [
+      "aftersales:ticket:update"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/aftersales/ticket/close",
+    "permissions": [
+      "aftersales:ticket:update"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/aftersales/ticket/cancel",
+    "permissions": [
+      "aftersales:ticket:update"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\ticket\\AfterSaleTicketController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/aftersales/visit/create",
+    "permissions": [
+      "aftersales:visit:create"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\visit\\AfterSaleVisitController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/visit/get",
+    "permissions": [
+      "aftersales:visit:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\visit\\AfterSaleVisitController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/visit/list",
+    "permissions": [
+      "aftersales:visit:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\visit\\AfterSaleVisitController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/aftersales/visit/page",
+    "permissions": [
+      "aftersales:visit:query"
+    ],
+    "file": "yudao-module-aftersales\\src\\main\\java\\cn\\iocoder\\yudao\\module\\aftersales\\controller\\admin\\visit\\AfterSaleVisitController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/ai/knowledge/create",
+    "permissions": [
+      "ai:knowledge:create"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/ai/knowledge/update",
+    "permissions": [
+      "ai:knowledge:update"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/ai/knowledge/delete",
+    "permissions": [
+      "ai:knowledge:delete"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/get",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/page",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/ai/knowledge/document/create",
+    "permissions": [
+      "ai:knowledge:create"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/ai/knowledge/document/create-list",
+    "permissions": [
+      "ai:knowledge:create"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeDocumentController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/ai/knowledge/document/update",
+    "permissions": [
+      "ai:knowledge:update"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeDocumentController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/ai/knowledge/document/delete",
+    "permissions": [
+      "ai:knowledge:delete"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeDocumentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/document/get",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeDocumentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/document/page",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeDocumentController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/ai/knowledge/document/update-status",
+    "permissions": [
+      "ai:knowledge:update"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeDocumentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/ai/knowledge/document/process/{id}",
+    "permissions": [
+      "ai:knowledge:update"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeDocumentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/document/progress",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeDocumentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/segment/split",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/segment/get",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/segment/page",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/ai/knowledge/segment/create",
+    "permissions": [
+      "ai:knowledge:create"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/ai/knowledge/segment/update",
+    "permissions": [
+      "ai:knowledge:update"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/ai/knowledge/segment/delete",
+    "permissions": [
+      "ai:knowledge:delete"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/ai/knowledge/segment/update-status",
+    "permissions": [
+      "ai:knowledge:update"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/knowledge/segment/get-process-list",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/ai/knowledge/segment/search",
+    "permissions": [
+      "ai:knowledge:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\knowledge\\AiKnowledgeSegmentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/ai/api-key/create",
+    "permissions": [
+      "ai:api-key:create"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiApiKeyController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/ai/api-key/update",
+    "permissions": [
+      "ai:api-key:update"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiApiKeyController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/ai/api-key/delete",
+    "permissions": [
+      "ai:api-key:delete"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiApiKeyController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/api-key/get",
+    "permissions": [
+      "ai:api-key:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiApiKeyController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/api-key/page",
+    "permissions": [
+      "ai:api-key:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiApiKeyController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/ai/model/create",
+    "permissions": [
+      "ai:model:create"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiModelController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/ai/model/update",
+    "permissions": [
+      "ai:model:update"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiModelController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/ai/model/delete",
+    "permissions": [
+      "ai:model:delete"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiModelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/model/get",
+    "permissions": [
+      "ai:model:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiModelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/model/page",
+    "permissions": [
+      "ai:model:query"
+    ],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiModelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/ai/model/simple-list",
+    "permissions": [],
+    "file": "yudao-module-ai\\src\\main\\java\\cn\\iocoder\\yudao\\module\\ai\\controller\\admin\\model\\AiModelController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bi/chart-config/create",
+    "permissions": [
+      "bi:chart-config:create"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiChartConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bi/chart-config/update",
+    "permissions": [
+      "bi:chart-config:update"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiChartConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bi/chart-config/delete",
+    "permissions": [
+      "bi:chart-config:delete"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiChartConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bi/chart-config/get",
+    "permissions": [
+      "bi:chart-config:query"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiChartConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bi/chart-config/page",
+    "permissions": [
+      "bi:chart-config:query"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiChartConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bi/data-source-config/create",
+    "permissions": [
+      "bi:data-source-config:create"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiDataSourceConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bi/data-source-config/update",
+    "permissions": [
+      "bi:data-source-config:update"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiDataSourceConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bi/data-source-config/delete",
+    "permissions": [
+      "bi:data-source-config:delete"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiDataSourceConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bi/data-source-config/get",
+    "permissions": [
+      "bi:data-source-config:query"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiDataSourceConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bi/data-source-config/page",
+    "permissions": [
+      "bi:data-source-config:query"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiDataSourceConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bi/warehouse-coordinate/list",
+    "permissions": [],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiWarehouseCoordinateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bi/warehouse-coordinate/batch-save",
+    "permissions": [
+      "bi:warehouse-coordinate:update"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\config\\BiWarehouseCoordinateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bi/dashboard/list",
+    "permissions": [
+      "bi:dashboard:query"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\dashboard\\DashboardController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bi/dashboard/{dashboardCode}/data",
+    "permissions": [
+      "bi:dashboard:query"
+    ],
+    "file": "yudao-module-bi\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bi\\controller\\admin\\dashboard\\DashboardController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/business-attach/create",
+    "permissions": [
+      "bpm:business-attach:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\attach\\BpmBusinessAttachController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/business-attach/update",
+    "permissions": [
+      "bpm:business-attach:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\attach\\BpmBusinessAttachController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/business-attach/delete",
+    "permissions": [
+      "bpm:business-attach:delete"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\attach\\BpmBusinessAttachController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/business-attach/get",
+    "permissions": [
+      "bpm:business-attach:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\attach\\BpmBusinessAttachController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/business-attach/page",
+    "permissions": [
+      "bpm:business-attach:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\attach\\BpmBusinessAttachController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/category/create",
+    "permissions": [
+      "bpm:category:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmCategoryController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/category/update",
+    "permissions": [
+      "bpm:category:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmCategoryController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/category/update-sort-batch",
+    "permissions": [
+      "bpm:category:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmCategoryController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/category/delete",
+    "permissions": [
+      "bpm:category:delete"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmCategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/category/get",
+    "permissions": [
+      "bpm:category:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmCategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/category/page",
+    "permissions": [
+      "bpm:category:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmCategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/category/simple-list",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmCategoryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/form/create",
+    "permissions": [
+      "bpm:form:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmFormController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/form/update",
+    "permissions": [
+      "bpm:form:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmFormController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/form/delete",
+    "permissions": [
+      "bpm:form:delete"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmFormController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/form/get",
+    "permissions": [
+      "bpm:form:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmFormController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/form/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmFormController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/form/simple-list",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmFormController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/form/page",
+    "permissions": [
+      "bpm:form:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmFormController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/model/list",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/model/get",
+    "permissions": [
+      "bpm:model:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/model/create",
+    "permissions": [
+      "bpm:model:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/model/update",
+    "permissions": [
+      "bpm:model:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/model/update-sort-batch",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/model/deploy",
+    "permissions": [
+      "bpm:model:deploy"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/model/update-state",
+    "permissions": [
+      "bpm:model:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/model/update-bpmn",
+    "permissions": [
+      "bpm:model:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/model/delete",
+    "permissions": [
+      "bpm:model:delete"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/model/clean",
+    "permissions": [
+      "bpm:model:clean"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/model/simple/get",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/model/simple/update",
+    "permissions": [
+      "bpm:model:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmModelController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/process-auto-approve/update-by-key",
+    "permissions": [
+      "bpm:process-auto-approve:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessAutoApproveController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/process-auto-approve/update-global",
+    "permissions": [
+      "bpm:process-auto-approve:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessAutoApproveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-auto-approve/global",
+    "permissions": [
+      "bpm:process-auto-approve:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessAutoApproveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-auto-approve/list",
+    "permissions": [
+      "bpm:process-auto-approve:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessAutoApproveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-auto-approve/page",
+    "permissions": [
+      "bpm:process-auto-approve:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessAutoApproveController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/process-auto-approve/create",
+    "permissions": [
+      "bpm:process-auto-approve:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessAutoApproveController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/process-auto-approve/update",
+    "permissions": [
+      "bpm:process-auto-approve:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessAutoApproveController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/process-auto-approve/delete",
+    "permissions": [
+      "bpm:process-auto-approve:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessAutoApproveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-definition/page",
+    "permissions": [
+      "bpm:process-definition:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessDefinitionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-definition/simple-list",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessDefinitionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/process-expression/create",
+    "permissions": [
+      "bpm:process-expression:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessExpressionController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/process-expression/update",
+    "permissions": [
+      "bpm:process-expression:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessExpressionController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/process-expression/delete",
+    "permissions": [
+      "bpm:process-expression:delete"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessExpressionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-expression/get",
+    "permissions": [
+      "bpm:process-expression:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessExpressionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-expression/page",
+    "permissions": [
+      "bpm:process-expression:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessExpressionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/process-listener/create",
+    "permissions": [
+      "bpm:process-listener:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessListenerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/process-listener/update",
+    "permissions": [
+      "bpm:process-listener:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessListenerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/process-listener/delete",
+    "permissions": [
+      "bpm:process-listener:delete"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessListenerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-listener/get",
+    "permissions": [
+      "bpm:process-listener:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessListenerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-listener/page",
+    "permissions": [
+      "bpm:process-listener:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmProcessListenerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/user-group/create",
+    "permissions": [
+      "bpm:user-group:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmUserGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/user-group/update",
+    "permissions": [
+      "bpm:user-group:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmUserGroupController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/user-group/delete",
+    "permissions": [
+      "bpm:user-group:delete"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmUserGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/user-group/get",
+    "permissions": [
+      "bpm:user-group:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmUserGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/user-group/page",
+    "permissions": [
+      "bpm:user-group:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmUserGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/user-group/simple-list",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\definition\\BpmUserGroupController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/oa/leave/create",
+    "permissions": [
+      "bpm:oa-leave:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOALeaveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/oa/leave/get",
+    "permissions": [
+      "bpm:oa-leave:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOALeaveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/oa/leave/page",
+    "permissions": [
+      "bpm:oa-leave:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOALeaveController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/oa/notice/create",
+    "permissions": [
+      "bpm:oa-notice:create"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOANoticeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/oa/notice/update",
+    "permissions": [
+      "bpm:oa-notice:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOANoticeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/oa/notice/delete",
+    "permissions": [
+      "bpm:oa-notice:delete"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOANoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/oa/notice/page",
+    "permissions": [
+      "bpm:oa-notice:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOANoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/oa/notice/get",
+    "permissions": [
+      "bpm:oa-notice:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOANoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/oa/notice/my-unread-count",
+    "permissions": [],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\oa\\BpmOANoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-instance/my-page",
+    "permissions": [
+      "bpm:process-instance:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-instance/manager-page",
+    "permissions": [
+      "bpm:process-instance:manager-query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/bpm/process-instance/create",
+    "permissions": [
+      "bpm:process-instance:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-instance/get",
+    "permissions": [
+      "bpm:process-instance:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/process-instance/cancel-by-start-user",
+    "permissions": [
+      "bpm:process-instance:cancel"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/process-instance/cancel-by-admin",
+    "permissions": [
+      "bpm:process-instance:cancel-by-admin"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-instance/get-approval-detail",
+    "permissions": [
+      "bpm:process-instance:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-instance/get-next-approval-nodes",
+    "permissions": [
+      "bpm:process-instance:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-instance/get-bpmn-model-view",
+    "permissions": [
+      "bpm:process-instance:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-instance/get-print-data",
+    "permissions": [
+      "bpm:process-instance:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/process-instance/copy/page",
+    "permissions": [
+      "bpm:process-instance-cc:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmProcessInstanceCopyController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/task/todo-page",
+    "permissions": [
+      "bpm:task:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/task/done-page",
+    "permissions": [
+      "bpm:task:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/task/manager-page",
+    "permissions": [
+      "bpm:task:manager-query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/task/list-by-process-instance-id",
+    "permissions": [
+      "bpm:task:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/task/approve",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/task/reject",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/task/list-by-return",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/task/return",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/task/delegate",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/task/transfer",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/task/create-sign",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/bpm/task/delete-sign",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/task/copy",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/bpm/task/withdraw",
+    "permissions": [
+      "bpm:task:update"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/bpm/task/list-by-parent-task-id",
+    "permissions": [
+      "bpm:task:query"
+    ],
+    "file": "yudao-module-bpm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\bpm\\controller\\admin\\task\\BpmTaskController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/business/create",
+    "permissions": [
+      "crm:business:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/business/update",
+    "permissions": [
+      "crm:business:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/business/update-status",
+    "permissions": [
+      "crm:business:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/business/delete",
+    "permissions": [
+      "crm:business:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business/get",
+    "permissions": [
+      "crm:business:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business/simple-all-list",
+    "permissions": [
+      "crm:business:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business/list-by-customer",
+    "permissions": [
+      "crm:business:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business/list-by-contact",
+    "permissions": [
+      "crm:business:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business/page",
+    "permissions": [
+      "crm:business:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business/page-by-customer",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business/page-by-contact",
+    "permissions": [
+      "crm:business:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business/export-excel",
+    "permissions": [
+      "crm:business:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/business/transfer",
+    "permissions": [
+      "crm:business:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/business-status/create",
+    "permissions": [
+      "crm:business-status:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessStatusController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/business-status/update",
+    "permissions": [
+      "crm:business-status:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessStatusController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/business-status/delete",
+    "permissions": [
+      "crm:business-status:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessStatusController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business-status/get",
+    "permissions": [
+      "crm:business-status:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessStatusController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business-status/page",
+    "permissions": [
+      "crm:business-status:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessStatusController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business-status/type-simple-list",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessStatusController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/business-status/status-simple-list",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\business\\CrmBusinessStatusController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/clue/create",
+    "permissions": [
+      "crm:clue:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/clue/update",
+    "permissions": [
+      "crm:clue:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/clue/delete",
+    "permissions": [
+      "crm:clue:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/clue/get",
+    "permissions": [
+      "crm:clue:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/clue/page",
+    "permissions": [
+      "crm:clue:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/clue/export-excel",
+    "permissions": [
+      "crm:clue:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/clue/transfer",
+    "permissions": [
+      "crm:clue:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/clue/transform",
+    "permissions": [
+      "crm:clue:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/clue/follow-count",
+    "permissions": [
+      "crm:clue:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\clue\\CrmClueController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/contact/create",
+    "permissions": [
+      "crm:contact:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/contact/update",
+    "permissions": [
+      "crm:contact:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/contact/delete",
+    "permissions": [
+      "crm:contact:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contact/get",
+    "permissions": [
+      "crm:contact:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contact/simple-all-list",
+    "permissions": [
+      "crm:contact:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contact/list-by-customer",
+    "permissions": [
+      "crm:contact:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contact/page",
+    "permissions": [
+      "crm:contact:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contact/page-by-customer",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contact/page-by-business",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contact/export-excel",
+    "permissions": [
+      "crm:contact:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/contact/transfer",
+    "permissions": [
+      "crm:contact:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/contact/create-business-list",
+    "permissions": [
+      "crm:contact:create-business"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/contact/create-business-list2",
+    "permissions": [
+      "crm:contact:create-business"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/contact/delete-business-list",
+    "permissions": [
+      "crm:contact:delete-business"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/contact/delete-business-list2",
+    "permissions": [
+      "crm:contact:delete-business"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contact\\CrmContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract-config/get",
+    "permissions": [
+      "crm:contract-config:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/contract-config/save",
+    "permissions": [
+      "crm:contract-config:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/contract/create",
+    "permissions": [
+      "crm:contract:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/contract/update",
+    "permissions": [
+      "crm:contract:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/contract/delete",
+    "permissions": [
+      "crm:contract:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/get",
+    "permissions": [
+      "crm:contract:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/page",
+    "permissions": [
+      "crm:contract:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/page-by-customer",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/page-by-business",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/export-excel",
+    "permissions": [
+      "crm:contract:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/get-import-template",
+    "permissions": [
+      "crm:contract:import"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/contract/import",
+    "permissions": [
+      "crm:contract:import"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/contract/transfer",
+    "permissions": [
+      "crm:contract:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/contract/submit",
+    "permissions": [
+      "crm:contract:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/approve-process-list",
+    "permissions": [
+      "crm:contract:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/audit-count",
+    "permissions": [
+      "crm:contract:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/remind-count",
+    "permissions": [
+      "crm:contract:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/contract/simple-list",
+    "permissions": [
+      "crm:contract:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/contract/generate-sale-order",
+    "permissions": [
+      "crm:contract:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\contract\\CrmContractController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/customer/create",
+    "permissions": [
+      "crm:customer:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer/update",
+    "permissions": [
+      "crm:customer:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer/update-deal-status",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/customer/delete",
+    "permissions": [
+      "crm:customer:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/get",
+    "permissions": [
+      "crm:customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/page",
+    "permissions": [
+      "crm:customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/put-pool-remind-page",
+    "permissions": [
+      "crm:customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/put-pool-remind-count",
+    "permissions": [
+      "crm:customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/today-contact-count",
+    "permissions": [
+      "crm:customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/follow-count",
+    "permissions": [
+      "crm:customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/simple-list",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/export-excel",
+    "permissions": [
+      "crm:customer:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer/get-import-template",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/customer/import",
+    "permissions": [
+      "crm:customer:import"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer/transfer",
+    "permissions": [
+      "crm:customer:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer/lock",
+    "permissions": [
+      "crm:customer:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer/put-pool",
+    "permissions": [
+      "crm:customer:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer/receive",
+    "permissions": [
+      "crm:customer:receive"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer/distribute",
+    "permissions": [
+      "crm:customer:distribute"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/customer-limit-config/create",
+    "permissions": [
+      "crm:customer-limit-config:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerLimitConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer-limit-config/update",
+    "permissions": [
+      "crm:customer-limit-config:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerLimitConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/customer-limit-config/delete",
+    "permissions": [
+      "crm:customer-limit-config:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerLimitConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer-limit-config/get",
+    "permissions": [
+      "crm:customer-limit-config:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerLimitConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer-limit-config/page",
+    "permissions": [
+      "crm:customer-limit-config:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerLimitConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/customer-pool-config/get",
+    "permissions": [
+      "crm:customer-pool-config:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerPoolConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/customer-pool-config/save",
+    "permissions": [
+      "crm:customer-pool-config:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\customer\\CrmCustomerPoolConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/follow-up-record/create",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\followup\\CrmFollowUpRecordController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/follow-up-record/delete",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\followup\\CrmFollowUpRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/follow-up-record/get",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\followup\\CrmFollowUpRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/follow-up-record/page",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\followup\\CrmFollowUpRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/invoice/create",
+    "permissions": [
+      "crm:invoice:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/invoice/update",
+    "permissions": [
+      "crm:invoice:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/invoice/delete",
+    "permissions": [
+      "crm:invoice:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/invoice/get",
+    "permissions": [
+      "crm:invoice:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/invoice/page",
+    "permissions": [
+      "crm:invoice:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/invoice/page-by-customer",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/invoice/export-excel",
+    "permissions": [
+      "crm:invoice:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/invoice/get-import-template",
+    "permissions": [
+      "crm:invoice:import"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/invoice/import",
+    "permissions": [
+      "crm:invoice:import"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/invoice/submit",
+    "permissions": [
+      "crm:invoice:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/invoice/audit-count",
+    "permissions": [
+      "crm:invoice:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/invoice/simple-list",
+    "permissions": [
+      "crm:invoice:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\invoice\\CrmInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/operate-log/page",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\operatelog\\CrmOperateLogController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/permission/create",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\permission\\CrmPermissionController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/permission/update",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\permission\\CrmPermissionController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/permission/delete",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\permission\\CrmPermissionController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/permission/delete-self",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\permission\\CrmPermissionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/permission/list",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\permission\\CrmPermissionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/sale-quotation/ai/ocr",
+    "permissions": [
+      "crm:sale-quotation:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\ai\\CrmSaleQuotationAiController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/sale-quotation/create",
+    "permissions": [
+      "crm:sale-quotation:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/sale-quotation/update",
+    "permissions": [
+      "crm:sale-quotation:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/sale-quotation/delete",
+    "permissions": [
+      "crm:sale-quotation:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sale-quotation/get",
+    "permissions": [
+      "crm:sale-quotation:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sale-quotation/page",
+    "permissions": [
+      "crm:sale-quotation:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sale-quotation/page-by-customer",
+    "permissions": [
+      "crm:sale-quotation:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sale-quotation/page-by-business",
+    "permissions": [
+      "crm:sale-quotation:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sale-quotation/export-excel",
+    "permissions": [
+      "crm:sale-quotation:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/sale-quotation/convert-contract",
+    "permissions": [
+      "crm:sale-quotation:convert-contract"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\quotation\\CrmSaleQuotationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/receivable/create",
+    "permissions": [
+      "crm:receivable:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/receivable/update",
+    "permissions": [
+      "crm:receivable:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/receivable/delete",
+    "permissions": [
+      "crm:receivable:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable/get",
+    "permissions": [
+      "crm:receivable:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable/page",
+    "permissions": [
+      "crm:receivable:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable/page-by-customer",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable/export-excel",
+    "permissions": [
+      "crm:receivable:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/receivable/update-status",
+    "permissions": [
+      "crm:receivable:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable/audit-count",
+    "permissions": [
+      "crm:receivable:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivableController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/receivable-plan/create",
+    "permissions": [
+      "crm:receivable-plan:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/receivable-plan/update",
+    "permissions": [
+      "crm:receivable-plan:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/receivable-plan/delete",
+    "permissions": [
+      "crm:receivable-plan:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable-plan/get",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable-plan/page",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable-plan/page-by-customer",
+    "permissions": [],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable-plan/export-excel",
+    "permissions": [
+      "crm:receivable-plan:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable-plan/simple-list",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/receivable-plan/remind-count",
+    "permissions": [
+      "crm:receivable-plan:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\receivable\\CrmReceivablePlanController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/crm/sales-target/create",
+    "permissions": [
+      "crm:sales-target:create"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\salesTarget\\CrmSalesTargetController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/sales-target/update",
+    "permissions": [
+      "crm:sales-target:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\salesTarget\\CrmSalesTargetController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/crm/sales-target/change-status",
+    "permissions": [
+      "crm:sales-target:update"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\salesTarget\\CrmSalesTargetController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/crm/sales-target/delete",
+    "permissions": [
+      "crm:sales-target:delete"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\salesTarget\\CrmSalesTargetController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sales-target/get",
+    "permissions": [
+      "crm:sales-target:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\salesTarget\\CrmSalesTargetController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sales-target/page",
+    "permissions": [
+      "crm:sales-target:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\salesTarget\\CrmSalesTargetController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sales-target/export-excel",
+    "permissions": [
+      "crm:sales-target:export"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\salesTarget\\CrmSalesTargetController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/sales-target/get-achievement-analysis",
+    "permissions": [
+      "crm:sales-target:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\salesTarget\\CrmSalesTargetController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-customer-summary-by-date",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-customer-summary-by-user",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-follow-up-summary-by-date",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-follow-up-summary-by-user",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-follow-up-summary-by-type",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-contract-summary",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-pool-summary-by-date",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-pool-summary-by-user",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-customer-deal-cycle-by-date",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-customer-deal-cycle-by-user",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-customer-deal-cycle-by-area",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-customer/get-customer-deal-cycle-by-product",
+    "permissions": [
+      "crm:statistics-customer:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsCustomerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-funnel/get-funnel-summary",
+    "permissions": [
+      "crm:statistics-funnel:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsFunnelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-funnel/get-business-summary-by-end-status",
+    "permissions": [
+      "crm:statistics-funnel:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsFunnelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-funnel/get-business-summary-by-date",
+    "permissions": [
+      "crm:statistics-funnel:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsFunnelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-funnel/get-business-inversion-rate-summary-by-date",
+    "permissions": [
+      "crm:statistics-funnel:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsFunnelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-funnel/get-business-page-by-date",
+    "permissions": [
+      "crm:business:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsFunnelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-performance/get-contract-count-performance",
+    "permissions": [
+      "crm:statistics-performance:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsPerformanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-performance/get-contract-price-performance",
+    "permissions": [
+      "crm:statistics-performance:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsPerformanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-performance/get-receivable-price-performance",
+    "permissions": [
+      "crm:statistics-performance:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsPerformanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-portrait/get-customer-area-summary",
+    "permissions": [
+      "crm:statistics-portrait:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsPortraitController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-portrait/get-customer-industry-summary",
+    "permissions": [
+      "crm:statistics-portrait:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsPortraitController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-portrait/get-customer-level-summary",
+    "permissions": [
+      "crm:statistics-portrait:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsPortraitController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-portrait/get-customer-source-summary",
+    "permissions": [
+      "crm:statistics-portrait:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsPortraitController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-rank/get-contract-price-rank",
+    "permissions": [
+      "crm:statistics-rank:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsRankController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-rank/get-receivable-price-rank",
+    "permissions": [
+      "crm:statistics-rank:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsRankController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-rank/get-contract-count-rank",
+    "permissions": [
+      "crm:statistics-rank:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsRankController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-rank/get-product-sales-rank",
+    "permissions": [
+      "crm:statistics-rank:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsRankController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-rank/get-customer-count-rank",
+    "permissions": [
+      "crm:statistics-rank:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsRankController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-rank/get-contacts-count-rank",
+    "permissions": [
+      "crm:statistics-rank:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsRankController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-rank/get-follow-count-rank",
+    "permissions": [
+      "crm:statistics-rank:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsRankController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/crm/statistics-rank/get-follow-customer-count-rank",
+    "permissions": [
+      "crm:statistics-rank:query"
+    ],
+    "file": "yudao-module-crm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\crm\\controller\\admin\\statistics\\CrmStatisticsRankController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/account/create",
+    "permissions": [
+      "erp:account:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpAccountController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/account/update",
+    "permissions": [
+      "erp:account:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpAccountController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/account/update-default-status",
+    "permissions": [],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpAccountController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/erp/account/delete",
+    "permissions": [
+      "erp:account:delete"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/account/get",
+    "permissions": [
+      "erp:account:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/account/simple-list",
+    "permissions": [],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/account/page",
+    "permissions": [
+      "erp:account:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/account/export-excel",
+    "permissions": [
+      "erp:account:export"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpAccountController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/finance-payment/create",
+    "permissions": [
+      "erp:finance-payment:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinancePaymentController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/finance-payment/update",
+    "permissions": [
+      "erp:finance-payment:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinancePaymentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/finance-payment/submit",
+    "permissions": [
+      "erp:finance-payment:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinancePaymentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/finance-payment/approve-process-list",
+    "permissions": [
+      "erp:finance-payment:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinancePaymentController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/erp/finance-payment/delete",
+    "permissions": [
+      "erp:finance-payment:delete"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinancePaymentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/finance-payment/get",
+    "permissions": [
+      "erp:finance-payment:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinancePaymentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/finance-payment/page",
+    "permissions": [
+      "erp:finance-payment:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinancePaymentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/finance-payment/export-excel",
+    "permissions": [
+      "erp:finance-payment:export"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinancePaymentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/finance-receipt/create",
+    "permissions": [
+      "erp:finance-receipt:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinanceReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/finance-receipt/update",
+    "permissions": [
+      "erp:finance-receipt:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinanceReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/finance-receipt/update-status",
+    "permissions": [
+      "erp:finance-receipt:update-status"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinanceReceiptController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/erp/finance-receipt/delete",
+    "permissions": [
+      "erp:finance-receipt:delete"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinanceReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/finance-receipt/get",
+    "permissions": [
+      "erp:finance-receipt:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinanceReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/finance-receipt/page",
+    "permissions": [
+      "erp:finance-receipt:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinanceReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/finance-receipt/export-excel",
+    "permissions": [
+      "erp:finance-receipt:export"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\finance\\ErpFinanceReceiptController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-invoice/ai/ocr",
+    "permissions": [
+      "erp:purchase-invoice:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ai\\ErpPurchaseInvoiceAiController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-invoice/create",
+    "permissions": [
+      "erp:purchase-invoice:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseInvoiceController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/purchase-invoice/update",
+    "permissions": [
+      "erp:purchase-invoice:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseInvoiceController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/erp/purchase-invoice/delete",
+    "permissions": [
+      "erp:purchase-invoice:delete"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-invoice/get",
+    "permissions": [
+      "erp:purchase-invoice:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-invoice/page",
+    "permissions": [
+      "erp:purchase-invoice:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-invoice/export-excel",
+    "permissions": [
+      "erp:purchase-invoice:export"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseInvoiceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-invoice/simple-list",
+    "permissions": [
+      "erp:purchase-invoice:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseInvoiceController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-order/create",
+    "permissions": [
+      "erp:purchase-order:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/purchase-order/update",
+    "permissions": [
+      "erp:purchase-order:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/purchase-order/update-status",
+    "permissions": [
+      "erp:purchase-order:update-status"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-order/submit",
+    "permissions": [
+      "erp:purchase-order:update-status"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-order/approve-process-list",
+    "permissions": [
+      "erp:purchase-order:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/erp/purchase-order/delete",
+    "permissions": [
+      "erp:purchase-order:delete"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-order/get",
+    "permissions": [
+      "erp:purchase-order:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-order/page",
+    "permissions": [
+      "erp:purchase-order:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-order/export-excel",
+    "permissions": [
+      "erp:purchase-order:export"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-order/get-import-template",
+    "permissions": [
+      "erp:purchase-order:import"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-order/import",
+    "permissions": [
+      "erp:purchase-order:import"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-order/confirm-receipt",
+    "permissions": [
+      "erp:purchase-order:confirm-receipt"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-order/reverse-approve",
+    "permissions": [
+      "erp:purchase-order:update-status"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-request/create",
+    "permissions": [
+      "erp:purchase-request:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/purchase-request/update",
+    "permissions": [
+      "erp:purchase-request:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/erp/purchase-request/delete",
+    "permissions": [
+      "erp:purchase-request:delete"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-request/get",
+    "permissions": [
+      "erp:purchase-request:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-request/page",
+    "permissions": [
+      "erp:purchase-request:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-request/export-excel",
+    "permissions": [
+      "erp:purchase-request:export"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-request/get-import-template",
+    "permissions": [
+      "erp:purchase-request:import"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-request/import",
+    "permissions": [
+      "erp:purchase-request:import"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/purchase-request/submit",
+    "permissions": [
+      "erp:purchase-request:submit"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/purchase-request/reset-status",
+    "permissions": [
+      "erp:purchase-request:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-request/approve-process-list",
+    "permissions": [
+      "erp:purchase-request:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/purchase-request/generate-order",
+    "permissions": [
+      "erp:purchase-request:generate-order"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpPurchaseRequestController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/supplier/create",
+    "permissions": [
+      "erp:supplier:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpSupplierController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/supplier/update",
+    "permissions": [
+      "erp:supplier:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpSupplierController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/erp/supplier/delete",
+    "permissions": [
+      "erp:supplier:delete"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/supplier/get",
+    "permissions": [
+      "erp:supplier:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/supplier/page",
+    "permissions": [
+      "erp:supplier:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/supplier/simple-list",
+    "permissions": [],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/supplier/export-excel",
+    "permissions": [
+      "erp:supplier:export"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\purchase\\ErpSupplierController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/sale-order/create",
+    "permissions": [
+      "erp:sale-order:create"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/sale-order/update",
+    "permissions": [
+      "erp:sale-order:update"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/sale-order/submit",
+    "permissions": [
+      "erp:sale-order:update-status"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/sale-order/approve-process-list",
+    "permissions": [
+      "erp:sale-order:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/sale-order/cancel",
+    "permissions": [
+      "erp:sale-order:cancel"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/erp/sale-order/enable",
+    "permissions": [
+      "erp:sale-order:enable"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/erp/sale-order/delete",
+    "permissions": [
+      "erp:sale-order:delete"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/sale-order/item/list-by-order-id",
+    "permissions": [
+      "erp:sale-order:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/sale-order/get",
+    "permissions": [
+      "erp:sale-order:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/sale-order/page",
+    "permissions": [
+      "erp:sale-order:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/sale-order/export-excel",
+    "permissions": [
+      "erp:sale-order:export"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/sale-order/get-import-template",
+    "permissions": [
+      "erp:sale-order:import"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/erp/sale-order/import",
+    "permissions": [
+      "erp:sale-order:import"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\sale\\ErpSaleOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-statistics/summary",
+    "permissions": [
+      "erp:statistics:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\statistics\\ErpPurchaseStatisticsController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/purchase-statistics/time-summary",
+    "permissions": [
+      "erp:statistics:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\statistics\\ErpPurchaseStatisticsController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/sale-statistics/summary",
+    "permissions": [
+      "erp:statistics:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\statistics\\ErpSaleStatisticsController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/erp/sale-statistics/time-summary",
+    "permissions": [
+      "erp:statistics:query"
+    ],
+    "file": "yudao-module-erp\\src\\main\\java\\cn\\iocoder\\yudao\\module\\erp\\controller\\admin\\statistics\\ErpSaleStatisticsController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/leave/create",
+    "permissions": [
+      "hrm:leave:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmLeaveApplicationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/leave/update",
+    "permissions": [
+      "hrm:leave:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmLeaveApplicationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/leave/delete",
+    "permissions": [
+      "hrm:leave:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmLeaveApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/leave/get",
+    "permissions": [
+      "hrm:leave:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmLeaveApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/leave/page",
+    "permissions": [
+      "hrm:leave:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmLeaveApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/leave/submit",
+    "permissions": [
+      "hrm:leave:submit"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmLeaveApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/leave/approve-process-definition-list",
+    "permissions": [
+      "hrm:leave:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmLeaveApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/leave/export-excel",
+    "permissions": [
+      "hrm:leave:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmLeaveApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/overtime/create",
+    "permissions": [
+      "hrm:overtime:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/overtime/update",
+    "permissions": [
+      "hrm:overtime:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/overtime/delete",
+    "permissions": [
+      "hrm:overtime:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/overtime/get",
+    "permissions": [
+      "hrm:overtime:query",
+      "bpm:task:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/overtime/current-applicant",
+    "permissions": [
+      "hrm:overtime:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/overtime/page",
+    "permissions": [
+      "hrm:overtime:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/overtime/submit",
+    "permissions": [
+      "hrm:overtime:submit"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/overtime/cancel",
+    "permissions": [
+      "hrm:overtime:cancel"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/overtime/approve-process-definition-list",
+    "permissions": [
+      "hrm:overtime:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmOvertimeApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/resignation/create",
+    "permissions": [
+      "hrm:resignation:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/resignation/update",
+    "permissions": [
+      "hrm:resignation:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/resignation/delete",
+    "permissions": [
+      "hrm:resignation:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/resignation/get",
+    "permissions": [
+      "hrm:resignation:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/resignation/page",
+    "permissions": [
+      "hrm:resignation:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/resignation/submit",
+    "permissions": [
+      "hrm:resignation:submit"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/resignation/approve-process-definition-list",
+    "permissions": [
+      "hrm:resignation:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/resignation/handover",
+    "permissions": [
+      "hrm:resignation:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/resignation/export-excel",
+    "permissions": [
+      "hrm:resignation:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmResignationApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/transfer/create",
+    "permissions": [
+      "hrm:transfer:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmTransferApplicationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/transfer/update",
+    "permissions": [
+      "hrm:transfer:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmTransferApplicationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/transfer/delete",
+    "permissions": [
+      "hrm:transfer:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmTransferApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/transfer/get",
+    "permissions": [
+      "hrm:transfer:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmTransferApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/transfer/page",
+    "permissions": [
+      "hrm:transfer:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmTransferApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/transfer/submit",
+    "permissions": [
+      "hrm:transfer:submit"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmTransferApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/transfer/approve-process-definition-list",
+    "permissions": [
+      "hrm:transfer:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmTransferApplicationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/transfer/export-excel",
+    "permissions": [
+      "hrm:transfer:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\approval\\HrmTransferApplicationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/attendance/exception/create",
+    "permissions": [
+      "hrm:attendance-exception:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceExceptionController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/attendance/exception/update",
+    "permissions": [
+      "hrm:attendance-exception:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceExceptionController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/attendance/exception/delete",
+    "permissions": [
+      "hrm:attendance-exception:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceExceptionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/exception/get",
+    "permissions": [
+      "hrm:attendance-exception:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceExceptionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/exception/page",
+    "permissions": [
+      "hrm:attendance-exception:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceExceptionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/attendance/exception/submit",
+    "permissions": [
+      "hrm:attendance-exception:submit"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceExceptionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/attendance/holiday/create",
+    "permissions": [
+      "hrm:attendance-holiday:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceHolidayController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/attendance/holiday/update",
+    "permissions": [
+      "hrm:attendance-holiday:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceHolidayController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/attendance/holiday/delete",
+    "permissions": [
+      "hrm:attendance-holiday:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceHolidayController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/holiday/get",
+    "permissions": [
+      "hrm:attendance-holiday:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceHolidayController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/holiday/page",
+    "permissions": [
+      "hrm:attendance-holiday:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceHolidayController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/holiday/export-excel",
+    "permissions": [
+      "hrm:attendance-holiday:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceHolidayController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/attendance/record/clock-in",
+    "permissions": [
+      "hrm:attendance-record:clock"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/attendance/record/clock-out",
+    "permissions": [
+      "hrm:attendance-record:clock"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/record/page",
+    "permissions": [
+      "hrm:attendance-record:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/record/get",
+    "permissions": [
+      "hrm:attendance-record:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/record/get-import-template",
+    "permissions": [
+      "hrm:attendance-record:import"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/attendance/record/import",
+    "permissions": [
+      "hrm:attendance-record:import"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/record/export-excel",
+    "permissions": [
+      "hrm:attendance-record:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/attendance/rule/create",
+    "permissions": [
+      "hrm:attendance-rule:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRuleController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/attendance/rule/update",
+    "permissions": [
+      "hrm:attendance-rule:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRuleController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/attendance/rule/delete",
+    "permissions": [
+      "hrm:attendance-rule:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/rule/get",
+    "permissions": [
+      "hrm:attendance-rule:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/rule/page",
+    "permissions": [
+      "hrm:attendance-rule:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/rule/list",
+    "permissions": [
+      "hrm:attendance-rule:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/rule/export-excel",
+    "permissions": [
+      "hrm:attendance-rule:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/summary/page",
+    "permissions": [
+      "hrm:attendance-summary:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceSummaryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/summary/get",
+    "permissions": [
+      "hrm:attendance-summary:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceSummaryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/attendance/summary/generate",
+    "permissions": [
+      "hrm:attendance-summary:generate"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceSummaryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/attendance/summary/export-excel",
+    "permissions": [
+      "hrm:attendance-summary:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmAttendanceSummaryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee-schedule/list",
+    "permissions": [
+      "hrm:employee-schedule:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmEmployeeScheduleController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/employee-schedule/save",
+    "permissions": [
+      "hrm:employee-schedule:save"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmEmployeeScheduleController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/shift/create",
+    "permissions": [
+      "hrm:shift:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmShiftController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/shift/update",
+    "permissions": [
+      "hrm:shift:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmShiftController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/shift/delete",
+    "permissions": [
+      "hrm:shift:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmShiftController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/shift/get",
+    "permissions": [
+      "hrm:shift:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmShiftController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/shift/page",
+    "permissions": [
+      "hrm:shift:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmShiftController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/shift/list",
+    "permissions": [
+      "hrm:shift:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmShiftController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/shift/export-excel",
+    "permissions": [
+      "hrm:shift:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\attendance\\HrmShiftController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/employee-contract/create",
+    "permissions": [
+      "hrm:employee-contract:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/employee-contract/update",
+    "permissions": [
+      "hrm:employee-contract:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/employee-contract/terminate",
+    "permissions": [
+      "hrm:employee-contract:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/employee-contract/delete",
+    "permissions": [
+      "hrm:employee-contract:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee-contract/get",
+    "permissions": [
+      "hrm:employee-contract:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee-contract/page",
+    "permissions": [
+      "hrm:employee-contract:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee-contract/expiring-count",
+    "permissions": [
+      "hrm:employee-contract:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee-contract/import-template",
+    "permissions": [
+      "hrm:employee-contract:import"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/employee-contract/import",
+    "permissions": [
+      "hrm:employee-contract:import"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeContractController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/employee/create",
+    "permissions": [
+      "hrm:employee:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/employee/update",
+    "permissions": [
+      "hrm:employee:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/employee/delete",
+    "permissions": [
+      "hrm:employee:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee/get",
+    "permissions": [
+      "hrm:employee:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee/page",
+    "permissions": [
+      "hrm:employee:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee/simple-list",
+    "permissions": [],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee/export-excel",
+    "permissions": [
+      "hrm:employee:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee/import-template",
+    "permissions": [
+      "hrm:employee:import"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/employee/import",
+    "permissions": [
+      "hrm:employee:import"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee/education/list",
+    "permissions": [
+      "hrm:employee:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeEducationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/employee/education/delete",
+    "permissions": [
+      "hrm:employee:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeEducationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee/emergency-contact/list",
+    "permissions": [
+      "hrm:employee:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeEmergencyContactController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/employee/emergency-contact/delete",
+    "permissions": [
+      "hrm:employee:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeEmergencyContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/employee/work-history/list",
+    "permissions": [
+      "hrm:employee:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeWorkHistoryController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/employee/work-history/delete",
+    "permissions": [
+      "hrm:employee:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\employee\\HrmEmployeeWorkHistoryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/employee-social-security/create",
+    "permissions": [
+      "hrm:employee-social-security:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmEmployeeSocialSecurityController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/salary/employee-social-security/update",
+    "permissions": [
+      "hrm:employee-social-security:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmEmployeeSocialSecurityController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/salary/employee-social-security/delete",
+    "permissions": [
+      "hrm:employee-social-security:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmEmployeeSocialSecurityController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/employee-social-security/get",
+    "permissions": [
+      "hrm:employee-social-security:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmEmployeeSocialSecurityController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/employee-social-security/page",
+    "permissions": [
+      "hrm:employee-social-security:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmEmployeeSocialSecurityController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/employee-social-security/list-by-user",
+    "permissions": [
+      "hrm:employee-social-security:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmEmployeeSocialSecurityController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/employee-social-security/get-latest",
+    "permissions": [
+      "hrm:employee-social-security:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmEmployeeSocialSecurityController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/leave-type-config/list",
+    "permissions": [
+      "hrm:leave-type-config:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmLeaveTypeConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/leave-type-config/get",
+    "permissions": [
+      "hrm:leave-type-config:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmLeaveTypeConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/leave-type-config/create",
+    "permissions": [
+      "hrm:leave-type-config:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmLeaveTypeConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/leave-type-config/update",
+    "permissions": [
+      "hrm:leave-type-config:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmLeaveTypeConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/leave-type-config/delete",
+    "permissions": [
+      "hrm:leave-type-config:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmLeaveTypeConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/calculation/page",
+    "permissions": [
+      "hrm:salary-calculation:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/calculation/get",
+    "permissions": [
+      "hrm:salary-calculation:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/calculation/calculate",
+    "permissions": [
+      "hrm:salary-calculation:calculate"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/calculation/confirm",
+    "permissions": [
+      "hrm:salary-calculation:confirm"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/calculation/revoke",
+    "permissions": [
+      "hrm:salary-calculation:confirm"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/salary/calculation/delete",
+    "permissions": [
+      "hrm:salary-calculation:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/calculation/export-excel",
+    "permissions": [
+      "hrm:salary-calculation:export"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/calculation/preview",
+    "permissions": [
+      "hrm:salary-calculation:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/calculation/save",
+    "permissions": [
+      "hrm:salary-calculation:save"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryCalculationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/payment/page",
+    "permissions": [
+      "hrm:salary-payment:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/payment/get",
+    "permissions": [
+      "hrm:salary-payment:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/payment/generate",
+    "permissions": [
+      "hrm:salary-payment:generate"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/payment/pay",
+    "permissions": [
+      "hrm:salary-payment:pay"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/payment/pay-detail",
+    "permissions": [
+      "hrm:salary-payment:pay"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/payment/revoke-detail",
+    "permissions": [
+      "hrm:salary-payment:pay"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/salary/payment/delete",
+    "permissions": [
+      "hrm:salary-payment:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/payment/detail/page",
+    "permissions": [
+      "hrm:salary-payment:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/payment/detail/list",
+    "permissions": [
+      "hrm:salary-payment:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryPaymentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/structure/create",
+    "permissions": [
+      "hrm:salary-structure:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryStructureController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/salary/structure/update",
+    "permissions": [
+      "hrm:salary-structure:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryStructureController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/salary/structure/delete",
+    "permissions": [
+      "hrm:salary-structure:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryStructureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/structure/get",
+    "permissions": [
+      "hrm:salary-structure:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryStructureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/structure/list",
+    "permissions": [
+      "hrm:salary-structure:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSalaryStructureController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/social-security-config/create",
+    "permissions": [
+      "hrm:social-security:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecurityConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/salary/social-security-config/update",
+    "permissions": [
+      "hrm:social-security:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecurityConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/salary/social-security-config/delete",
+    "permissions": [
+      "hrm:social-security:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecurityConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/social-security-config/get",
+    "permissions": [
+      "hrm:social-security:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecurityConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/social-security-config/list",
+    "permissions": [
+      "hrm:social-security:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecurityConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/social-security-config/get-effective",
+    "permissions": [
+      "hrm:social-security:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecurityConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/social-security-scheme/create",
+    "permissions": [
+      "hrm:social-security-scheme:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecuritySchemeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/salary/social-security-scheme/update",
+    "permissions": [
+      "hrm:social-security-scheme:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecuritySchemeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/salary/social-security-scheme/delete",
+    "permissions": [
+      "hrm:social-security-scheme:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecuritySchemeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/social-security-scheme/get",
+    "permissions": [
+      "hrm:social-security-scheme:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecuritySchemeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/social-security-scheme/list",
+    "permissions": [
+      "hrm:social-security-scheme:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmSocialSecuritySchemeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/hrm/salary/tax-rate-config/create-list",
+    "permissions": [
+      "hrm:tax-rate-config:create"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmTaxRateConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/hrm/salary/tax-rate-config/update",
+    "permissions": [
+      "hrm:tax-rate-config:update"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmTaxRateConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/hrm/salary/tax-rate-config/delete",
+    "permissions": [
+      "hrm:tax-rate-config:delete"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmTaxRateConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/tax-rate-config/get",
+    "permissions": [
+      "hrm:tax-rate-config:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmTaxRateConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/tax-rate-config/list",
+    "permissions": [
+      "hrm:tax-rate-config:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmTaxRateConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/hrm/salary/tax-rate-config/get-effective",
+    "permissions": [
+      "hrm:tax-rate-config:query"
+    ],
+    "file": "yudao-module-hrm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\hrm\\controller\\admin\\salary\\HrmTaxRateConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/channel/material/get",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\channel\\ImChannelMaterialController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/conversation-read/pull",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\conversation\\ImConversationReadController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/face-pack/list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\face\\ImFacePackController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/face-user-item/list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\face\\ImFaceUserItemController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/face-user-item/create",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\face\\ImFaceUserItemController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/face-user-item/delete",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\face\\ImFaceUserItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/friend/list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/friend/pull",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/friend/get",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/friend/delete",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/friend/update",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/friend/block",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/friend/unblock",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/friend-request/apply",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendRequestController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/friend-request/agree",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendRequestController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/friend-request/refuse",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/friend-request/list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/friend-request/pull",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/friend-request/get",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\friend\\ImFriendRequestController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/group/create",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/update",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/group/dissolve",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/group/get",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/group/list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/group/invite",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/group/quit",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/group/kicking",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/add-admin",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/remove-admin",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/transfer-owner",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/pin-message",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/unpin-message",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/mute-all",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/mute-member",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group/cancel-mute-member",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group-member/update",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupMemberController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/group-member/get",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupMemberController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/group-member/list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupMemberController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/group-request/apply",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupRequestController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group-request/agree",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupRequestController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/group-request/refuse",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/group-request/unhandled-list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/group-request/pull",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/group-request/list-by-group",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupRequestController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/group-request/get",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\group\\ImGroupRequestController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/manager/channel/create",
+    "permissions": [
+      "im:manager:channel:create"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelManagerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/manager/channel/update",
+    "permissions": [
+      "im:manager:channel:update"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/channel/delete",
+    "permissions": [
+      "im:manager:channel:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/channel/page",
+    "permissions": [
+      "im:manager:channel:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/channel/get",
+    "permissions": [
+      "im:manager:channel:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/channel/simple-list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelManagerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/manager/channel-material/create",
+    "permissions": [
+      "im:manager:channel-material:create"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelMaterialManagerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/manager/channel-material/update",
+    "permissions": [
+      "im:manager:channel-material:update"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelMaterialManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/channel-material/delete",
+    "permissions": [
+      "im:manager:channel-material:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelMaterialManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/channel-material/page",
+    "permissions": [
+      "im:manager:channel-material:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelMaterialManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/channel-material/get",
+    "permissions": [
+      "im:manager:channel-material:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelMaterialManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/channel-material/simple-list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\channel\\ImChannelMaterialManagerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/manager/face-pack-item/create",
+    "permissions": [
+      "im:manager:face-pack-item:create"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackItemManagerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/manager/face-pack-item/update",
+    "permissions": [
+      "im:manager:face-pack-item:update"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackItemManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/face-pack-item/delete",
+    "permissions": [
+      "im:manager:face-pack-item:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackItemManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/face-pack-item/delete-list",
+    "permissions": [
+      "im:manager:face-pack-item:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackItemManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/face-pack-item/page",
+    "permissions": [
+      "im:manager:face-pack-item:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackItemManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/face-pack-item/get",
+    "permissions": [
+      "im:manager:face-pack-item:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackItemManagerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/manager/face-pack/create",
+    "permissions": [
+      "im:manager:face-pack:create"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackManagerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/manager/face-pack/update",
+    "permissions": [
+      "im:manager:face-pack:update"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/face-pack/delete",
+    "permissions": [
+      "im:manager:face-pack:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/face-pack/delete-list",
+    "permissions": [
+      "im:manager:face-pack:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/face-pack/page",
+    "permissions": [
+      "im:manager:face-pack:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/face-pack/get",
+    "permissions": [
+      "im:manager:face-pack:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFacePackManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/face-user-item/page",
+    "permissions": [
+      "im:manager:face-user-item:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFaceUserItemManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/face-user-item/delete",
+    "permissions": [
+      "im:manager:face-user-item:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\face\\ImFaceUserItemManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/friend/page",
+    "permissions": [
+      "im:manager:friend:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\friend\\ImFriendManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/friend-request/page",
+    "permissions": [
+      "im:manager:friend-request:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\friend\\ImFriendRequestManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/group/page",
+    "permissions": [
+      "im:manager:group:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\group\\ImGroupManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/group/get",
+    "permissions": [
+      "im:manager:group:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\group\\ImGroupManagerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/manager/group/ban",
+    "permissions": [
+      "im:manager:group:ban"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\group\\ImGroupManagerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/manager/group/unban",
+    "permissions": [
+      "im:manager:group:ban"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\group\\ImGroupManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/group/dissolve",
+    "permissions": [
+      "im:manager:group:dissolve"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\group\\ImGroupManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/group/member/list",
+    "permissions": [
+      "im:manager:group:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\group\\ImGroupMemberManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/group-request/page",
+    "permissions": [
+      "im:manager:group-request:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\group\\ImGroupRequestManagerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/manager/channel-message/send",
+    "permissions": [
+      "im:manager:channel-message:send"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\message\\ImChannelMessageManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/channel-message/delete",
+    "permissions": [
+      "im:manager:channel-message:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\message\\ImChannelMessageManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/channel-message/page",
+    "permissions": [
+      "im:manager:channel-message:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\message\\ImChannelMessageManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/message/group/page",
+    "permissions": [
+      "im:manager:message:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\message\\ImGroupMessageManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/message/group/get",
+    "permissions": [
+      "im:manager:message:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\message\\ImGroupMessageManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/message/private/page",
+    "permissions": [
+      "im:manager:message:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\message\\ImPrivateMessageManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/message/private/get",
+    "permissions": [
+      "im:manager:message:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\message\\ImPrivateMessageManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/rtc/page",
+    "permissions": [
+      "im:manager:rtc:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\rtc\\ImRtcCallManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/rtc/get",
+    "permissions": [
+      "im:manager:rtc:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\rtc\\ImRtcCallManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/rtc/participant-list",
+    "permissions": [
+      "im:manager:rtc:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\rtc\\ImRtcCallManagerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/manager/sensitive-word/create",
+    "permissions": [
+      "im:manager:sensitive-word:create"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\sensitiveword\\ImSensitiveWordManagerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/manager/sensitive-word/update",
+    "permissions": [
+      "im:manager:sensitive-word:update"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\sensitiveword\\ImSensitiveWordManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/sensitive-word/delete",
+    "permissions": [
+      "im:manager:sensitive-word:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\sensitiveword\\ImSensitiveWordManagerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/manager/sensitive-word/delete-list",
+    "permissions": [
+      "im:manager:sensitive-word:delete"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\sensitiveword\\ImSensitiveWordManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/sensitive-word/page",
+    "permissions": [
+      "im:manager:sensitive-word:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\sensitiveword\\ImSensitiveWordManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/sensitive-word/get",
+    "permissions": [
+      "im:manager:sensitive-word:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\sensitiveword\\ImSensitiveWordManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/statistics/overview",
+    "permissions": [
+      "im:manager:statistics:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\statistics\\ImStatisticsManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/statistics/message-trend",
+    "permissions": [
+      "im:manager:statistics:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\statistics\\ImStatisticsManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/statistics/user-trend",
+    "permissions": [
+      "im:manager:statistics:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\statistics\\ImStatisticsManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/statistics/message-type-distribution",
+    "permissions": [
+      "im:manager:statistics:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\statistics\\ImStatisticsManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/statistics/group-size-distribution",
+    "permissions": [
+      "im:manager:statistics:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\statistics\\ImStatisticsManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/manager/statistics/top-senders",
+    "permissions": [
+      "im:manager:statistics:query"
+    ],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\manager\\statistics\\ImStatisticsManagerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/channel/message/pull",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImChannelMessageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/channel/message/read",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImChannelMessageController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/message/group/send",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImGroupMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/message/group/pull",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImGroupMessageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/message/group/read",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImGroupMessageController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/message/group/recall",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImGroupMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/message/group/get-read-user-ids",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImGroupMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/message/group/list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImGroupMessageController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/message/private/send",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImPrivateMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/message/private/pull",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImPrivateMessageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/im/message/private/read",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImPrivateMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/message/private/max-read-message-id",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImPrivateMessageController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/im/message/private/recall",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImPrivateMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/message/private/list",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\message\\ImPrivateMessageController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/rtc/create",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/rtc/invite",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/rtc/join",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/rtc/accept",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/rtc/reject",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/rtc/cancel",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/rtc/leave",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/rtc/no-answer-call-check",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/im/rtc/get-active-call",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcCallController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/im/livekit/webhook",
+    "permissions": [],
+    "file": "yudao-module-im\\src\\main\\java\\cn\\iocoder\\yudao\\module\\im\\controller\\admin\\rtc\\ImRtcLiveKitController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/codegen/db/table/list",
+    "permissions": [
+      "infra:codegen:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/codegen/table/list",
+    "permissions": [
+      "infra:codegen:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/codegen/table/page",
+    "permissions": [
+      "infra:codegen:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/codegen/detail",
+    "permissions": [
+      "infra:codegen:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/codegen/create-list",
+    "permissions": [
+      "infra:codegen:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/codegen/update",
+    "permissions": [
+      "infra:codegen:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/codegen/sync-from-db",
+    "permissions": [
+      "infra:codegen:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/codegen/delete",
+    "permissions": [
+      "infra:codegen:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/codegen/delete-list",
+    "permissions": [
+      "infra:codegen:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/codegen/preview",
+    "permissions": [
+      "infra:codegen:preview"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/codegen/download",
+    "permissions": [
+      "infra:codegen:download"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\codegen\\CodegenController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/config/create",
+    "permissions": [
+      "infra:config:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\config\\ConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/config/update",
+    "permissions": [
+      "infra:config:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\config\\ConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/config/delete",
+    "permissions": [
+      "infra:config:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\config\\ConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/config/delete-list",
+    "permissions": [
+      "infra:config:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\config\\ConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/config/get",
+    "permissions": [
+      "infra:config:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\config\\ConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/config/get-value-by-key",
+    "permissions": [],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\config\\ConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/config/page",
+    "permissions": [
+      "infra:config:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\config\\ConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/config/export-excel",
+    "permissions": [
+      "infra:config:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\config\\ConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/data-source-config/create",
+    "permissions": [
+      "infra:data-source-config:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\db\\DataSourceConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/data-source-config/update",
+    "permissions": [
+      "infra:data-source-config:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\db\\DataSourceConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/data-source-config/delete",
+    "permissions": [
+      "infra:data-source-config:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\db\\DataSourceConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/data-source-config/delete-list",
+    "permissions": [
+      "infra:data-source-config:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\db\\DataSourceConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/data-source-config/get",
+    "permissions": [
+      "infra:data-source-config:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\db\\DataSourceConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/data-source-config/list",
+    "permissions": [
+      "infra:data-source-config:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\db\\DataSourceConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/demo01-contact/create",
+    "permissions": [
+      "infra:demo01-contact:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo01\\Demo01ContactController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/demo01-contact/update",
+    "permissions": [
+      "infra:demo01-contact:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo01\\Demo01ContactController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo01-contact/delete",
+    "permissions": [
+      "infra:demo01-contact:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo01\\Demo01ContactController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo01-contact/delete-list",
+    "permissions": [
+      "infra:demo01-contact:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo01\\Demo01ContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo01-contact/get",
+    "permissions": [
+      "infra:demo01-contact:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo01\\Demo01ContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo01-contact/page",
+    "permissions": [
+      "infra:demo01-contact:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo01\\Demo01ContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo01-contact/export-excel",
+    "permissions": [
+      "infra:demo01-contact:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo01\\Demo01ContactController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/demo02-category/create",
+    "permissions": [
+      "infra:demo02-category:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo02\\Demo02CategoryController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/demo02-category/update",
+    "permissions": [
+      "infra:demo02-category:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo02\\Demo02CategoryController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo02-category/delete",
+    "permissions": [
+      "infra:demo02-category:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo02\\Demo02CategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo02-category/get",
+    "permissions": [
+      "infra:demo02-category:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo02\\Demo02CategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo02-category/list",
+    "permissions": [
+      "infra:demo02-category:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo02\\Demo02CategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo02-category/export-excel",
+    "permissions": [
+      "infra:demo02-category:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo02\\Demo02CategoryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/demo03-student-erp/create",
+    "permissions": [
+      "infra:demo03-student:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/demo03-student-erp/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-erp/delete",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-erp/delete-list",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/export-excel",
+    "permissions": [
+      "infra:demo03-student:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/demo03-course/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/demo03-student-erp/demo03-course/create",
+    "permissions": [
+      "infra:demo03-student:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/demo03-student-erp/demo03-course/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-erp/demo03-course/delete",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-erp/demo03-course/delete-list",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/demo03-course/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/demo03-grade/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/demo03-student-erp/demo03-grade/create",
+    "permissions": [
+      "infra:demo03-student:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/demo03-student-erp/demo03-grade/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-erp/demo03-grade/delete",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-erp/demo03-grade/delete-list",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-erp/demo03-grade/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\erp\\Demo03StudentErpController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/demo03-student-inner/create",
+    "permissions": [
+      "infra:demo03-student:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/demo03-student-inner/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-inner/delete",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-inner/delete-list",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-inner/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-inner/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-inner/export-excel",
+    "permissions": [
+      "infra:demo03-student:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-inner/demo03-course/list-by-student-id",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-inner/demo03-grade/get-by-student-id",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\inner\\Demo03StudentInnerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/demo03-student-normal/create",
+    "permissions": [
+      "infra:demo03-student:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/demo03-student-normal/update",
+    "permissions": [
+      "infra:demo03-student:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-normal/delete",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/demo03-student-normal/delete-list",
+    "permissions": [
+      "infra:demo03-student:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-normal/get",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-normal/page",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-normal/export-excel",
+    "permissions": [
+      "infra:demo03-student:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-normal/demo03-course/list-by-student-id",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/demo03-student-normal/demo03-grade/get-by-student-id",
+    "permissions": [
+      "infra:demo03-student:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\demo\\demo03\\normal\\Demo03StudentNormalController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/file-config/create",
+    "permissions": [
+      "infra:file-config:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/file-config/update",
+    "permissions": [
+      "infra:file-config:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/file-config/update-master",
+    "permissions": [
+      "infra:file-config:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/file-config/delete",
+    "permissions": [
+      "infra:file-config:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/file-config/delete-list",
+    "permissions": [
+      "infra:file-config:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/file-config/get",
+    "permissions": [
+      "infra:file-config:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/file-config/page",
+    "permissions": [
+      "infra:file-config:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/file-config/test",
+    "permissions": [
+      "infra:file-config:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/file/upload",
+    "permissions": [],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/file/presigned-url",
+    "permissions": [],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/file/create",
+    "permissions": [],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/file/get",
+    "permissions": [
+      "infra:file:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/file/delete",
+    "permissions": [
+      "infra:file:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/file/delete-list",
+    "permissions": [
+      "infra:file:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/file/{configId}/get/**",
+    "permissions": [],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/file/page",
+    "permissions": [
+      "infra:file:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\file\\FileController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/job/create",
+    "permissions": [
+      "infra:job:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/job/update",
+    "permissions": [
+      "infra:job:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/job/update-status",
+    "permissions": [
+      "infra:job:update"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/job/delete",
+    "permissions": [
+      "infra:job:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/infra/job/delete-list",
+    "permissions": [
+      "infra:job:delete"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/job/trigger",
+    "permissions": [
+      "infra:job:trigger"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/job/sync",
+    "permissions": [
+      "infra:job:create"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/job/get",
+    "permissions": [
+      "infra:job:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/job/page",
+    "permissions": [
+      "infra:job:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/job/export-excel",
+    "permissions": [
+      "infra:job:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/job/get_next_times",
+    "permissions": [
+      "infra:job:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/job-log/get",
+    "permissions": [
+      "infra:job:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/job-log/page",
+    "permissions": [
+      "infra:job:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/job-log/export-excel",
+    "permissions": [
+      "infra:job:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\job\\JobLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/api-access-log/get",
+    "permissions": [
+      "infra:api-access-log:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\logger\\ApiAccessLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/api-access-log/page",
+    "permissions": [
+      "infra:api-access-log:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\logger\\ApiAccessLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/api-access-log/export-excel",
+    "permissions": [
+      "infra:api-access-log:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\logger\\ApiAccessLogController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/infra/api-error-log/update-status",
+    "permissions": [
+      "infra:api-error-log:update-status"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\logger\\ApiErrorLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/api-error-log/get",
+    "permissions": [
+      "infra:api-error-log:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\logger\\ApiErrorLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/api-error-log/page",
+    "permissions": [
+      "infra:api-error-log:query"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\logger\\ApiErrorLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/api-error-log/export-excel",
+    "permissions": [
+      "infra:api-error-log:export"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\logger\\ApiErrorLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/redis/get-monitor-info",
+    "permissions": [
+      "infra:redis:get-monitor-info"
+    ],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\admin\\redis\\RedisController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/file/upload",
+    "permissions": [],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\app\\file\\AppFileController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/infra/file/presigned-url",
+    "permissions": [],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\app\\file\\AppFileController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/infra/file/create",
+    "permissions": [],
+    "file": "yudao-module-infra\\src\\main\\java\\cn\\iocoder\\yudao\\module\\infra\\controller\\app\\file\\AppFileController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mdm/brand/create",
+    "permissions": [
+      "mdm:brand:create"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\brand\\MdmBrandController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/brand/update",
+    "permissions": [
+      "mdm:brand:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\brand\\MdmBrandController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/brand/update-status",
+    "permissions": [
+      "mdm:brand:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\brand\\MdmBrandController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mdm/brand/delete",
+    "permissions": [
+      "mdm:brand:delete"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\brand\\MdmBrandController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/brand/get",
+    "permissions": [
+      "mdm:brand:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\brand\\MdmBrandController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/brand/page",
+    "permissions": [
+      "mdm:brand:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\brand\\MdmBrandController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/brand/list",
+    "permissions": [
+      "mdm:brand:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\brand\\MdmBrandController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/brand/list-by-ids",
+    "permissions": [
+      "mdm:brand:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\brand\\MdmBrandController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mdm/category/create",
+    "permissions": [
+      "mdm:item-category:create"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\category\\MdmItemCategoryController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/category/update",
+    "permissions": [
+      "mdm:item-category:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\category\\MdmItemCategoryController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/category/update-status",
+    "permissions": [
+      "mdm:item-category:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\category\\MdmItemCategoryController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mdm/category/delete",
+    "permissions": [
+      "mdm:item-category:delete"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\category\\MdmItemCategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/category/get",
+    "permissions": [
+      "mdm:item-category:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\category\\MdmItemCategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/category/page",
+    "permissions": [
+      "mdm:item-category:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\category\\MdmItemCategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/category/list",
+    "permissions": [
+      "mdm:item-category:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\category\\MdmItemCategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/category/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\category\\MdmItemCategoryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mdm/item/create",
+    "permissions": [
+      "mdm:item:create"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/item/update",
+    "permissions": [
+      "mdm:item:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/item/update-status",
+    "permissions": [
+      "mdm:item:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/item/update-sync",
+    "permissions": [
+      "mdm:item:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mdm/item/delete",
+    "permissions": [
+      "mdm:item:delete"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mdm/item/delete-list",
+    "permissions": [
+      "mdm:item:delete"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/item/get",
+    "permissions": [
+      "mdm:item:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/item/page",
+    "permissions": [
+      "mdm:item:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/item/export-excel",
+    "permissions": [
+      "mdm:item:export"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/item/list-by-ids",
+    "permissions": [
+      "mdm:item:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/item/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/item/get-import-template",
+    "permissions": [
+      "mdm:item:import"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mdm/item/import",
+    "permissions": [
+      "mdm:item:import"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\item\\MdmItemController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mdm/unit/create",
+    "permissions": [
+      "mdm:unit:create"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/unit/update",
+    "permissions": [
+      "mdm:unit:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/unit/update-status",
+    "permissions": [
+      "mdm:unit:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mdm/unit/delete",
+    "permissions": [
+      "mdm:unit:delete"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/unit/get",
+    "permissions": [
+      "mdm:unit:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/unit/page",
+    "permissions": [
+      "mdm:unit:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/unit/list",
+    "permissions": [
+      "mdm:unit:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/unit/list-by-ids",
+    "permissions": [
+      "mdm:unit:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/unit/export-excel",
+    "permissions": [
+      "mdm:unit:export"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/unit/get-import-template",
+    "permissions": [
+      "mdm:unit:import"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mdm/unit/import",
+    "permissions": [
+      "mdm:unit:import"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\unit\\MdmUnitMeasureController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mdm/warehouse/create",
+    "permissions": [
+      "mdm:warehouse:create"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\warehouse\\MdmWarehouseController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/warehouse/update",
+    "permissions": [
+      "mdm:warehouse:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\warehouse\\MdmWarehouseController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mdm/warehouse/update-status",
+    "permissions": [
+      "mdm:warehouse:update"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\warehouse\\MdmWarehouseController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mdm/warehouse/delete",
+    "permissions": [
+      "mdm:warehouse:delete"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\warehouse\\MdmWarehouseController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/warehouse/get",
+    "permissions": [
+      "mdm:warehouse:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\warehouse\\MdmWarehouseController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/warehouse/page",
+    "permissions": [
+      "mdm:warehouse:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\warehouse\\MdmWarehouseController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/warehouse/list-by-ids",
+    "permissions": [
+      "mdm:warehouse:query"
+    ],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\warehouse\\MdmWarehouseController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mdm/warehouse/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-mdm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mdm\\controller\\admin\\warehouse\\MdmWarehouseController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/address/list",
+    "permissions": [
+      "member:user:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\address\\AddressController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/config/save",
+    "permissions": [
+      "member:config:save"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\config\\MemberConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/config/get",
+    "permissions": [
+      "member:config:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\config\\MemberConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/group/create",
+    "permissions": [
+      "member:group:create"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\group\\MemberGroupController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/group/update",
+    "permissions": [
+      "member:group:update"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\group\\MemberGroupController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/member/group/delete",
+    "permissions": [
+      "member:group:delete"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\group\\MemberGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/group/get",
+    "permissions": [
+      "member:group:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\group\\MemberGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/group/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\group\\MemberGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/group/page",
+    "permissions": [
+      "member:group:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\group\\MemberGroupController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/experience-record/get",
+    "permissions": [
+      "member:experience-record:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberExperienceRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/experience-record/page",
+    "permissions": [
+      "member:experience-record:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberExperienceRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/level/create",
+    "permissions": [
+      "member:level:create"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberLevelController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/level/update",
+    "permissions": [
+      "member:level:update"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberLevelController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/member/level/delete",
+    "permissions": [
+      "member:level:delete"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberLevelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/level/get",
+    "permissions": [
+      "member:level:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberLevelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/level/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberLevelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/level/list",
+    "permissions": [
+      "member:level:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberLevelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/level-record/get",
+    "permissions": [
+      "member:level-record:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberLevelRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/level-record/page",
+    "permissions": [
+      "member:level-record:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\level\\MemberLevelRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/point/record/page",
+    "permissions": [
+      "point:record:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\point\\MemberPointRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/sign-in/config/create",
+    "permissions": [
+      "point:sign-in-config:create"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\signin\\MemberSignInConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/sign-in/config/update",
+    "permissions": [
+      "point:sign-in-config:update"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\signin\\MemberSignInConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/member/sign-in/config/delete",
+    "permissions": [
+      "point:sign-in-config:delete"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\signin\\MemberSignInConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/sign-in/config/get",
+    "permissions": [
+      "point:sign-in-config:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\signin\\MemberSignInConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/sign-in/config/list",
+    "permissions": [
+      "point:sign-in-config:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\signin\\MemberSignInConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/sign-in/record/page",
+    "permissions": [
+      "point:sign-in-record:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\signin\\MemberSignInRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/tag/create",
+    "permissions": [
+      "member:tag:create"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\tag\\MemberTagController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/tag/update",
+    "permissions": [
+      "member:tag:update"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\tag\\MemberTagController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/member/tag/delete",
+    "permissions": [
+      "member:tag:delete"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\tag\\MemberTagController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/tag/get",
+    "permissions": [
+      "member:tag:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\tag\\MemberTagController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/tag/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\tag\\MemberTagController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/tag/list",
+    "permissions": [
+      "member:tag:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\tag\\MemberTagController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/tag/page",
+    "permissions": [
+      "member:tag:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\tag\\MemberTagController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/user/update",
+    "permissions": [
+      "member:user:update"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\user\\MemberUserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/user/update-level",
+    "permissions": [
+      "member:user:update-level"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\user\\MemberUserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/user/update-point",
+    "permissions": [
+      "member:user:update-point"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\user\\MemberUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/user/get",
+    "permissions": [
+      "member:user:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\user\\MemberUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/user/page",
+    "permissions": [
+      "member:user:query"
+    ],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\admin\\user\\MemberUserController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/address/create",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\address\\AppAddressController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/address/update",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\address\\AppAddressController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/member/address/delete",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\address\\AppAddressController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/address/get",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\address\\AppAddressController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/address/get-default",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\address\\AppAddressController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/address/list",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\address\\AppAddressController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/auth/login",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\auth\\AppAuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/auth/logout",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\auth\\AppAuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/auth/refresh-token",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\auth\\AppAuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/auth/sms-login",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\auth\\AppAuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/auth/send-sms-code",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\auth\\AppAuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/auth/validate-sms-code",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\auth\\AppAuthController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/auth/social-auth-redirect",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\auth\\AppAuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/auth/social-login",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\auth\\AppAuthController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/experience-record/page",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\level\\AppMemberExperienceRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/level/list",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\level\\AppMemberLevelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/point/record/page",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\point\\AppMemberPointRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/sign-in/config/list",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\signin\\AppMemberSignInConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/sign-in/record/get-summary",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\signin\\AppMemberSignInRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/sign-in/record/create",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\signin\\AppMemberSignInRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/sign-in/record/page",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\signin\\AppMemberSignInRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/member/social-user/bind",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\social\\AppSocialUserController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/member/social-user/unbind",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\social\\AppSocialUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/social-user/get",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\social\\AppSocialUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/member/user/get",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\user\\AppMemberUserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/user/update",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\user\\AppMemberUserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/user/update-mobile",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\user\\AppMemberUserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/user/update-password",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\user\\AppMemberUserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/member/user/reset-password",
+    "permissions": [],
+    "file": "yudao-module-member\\src\\main\\java\\cn\\iocoder\\yudao\\module\\member\\controller\\app\\user\\AppMemberUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/calendar/list",
+    "permissions": [
+      "mes:cal-team-shift:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\calendar\\MesCalCalendarController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/cal/holiday/save",
+    "permissions": [
+      "mes:cal-holiday:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\holiday\\MesCalHolidayController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/holiday/get-by-day",
+    "permissions": [
+      "mes:cal-holiday:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\holiday\\MesCalHolidayController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/holiday/list",
+    "permissions": [
+      "mes:cal-holiday:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\holiday\\MesCalHolidayController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/cal/plan/create",
+    "permissions": [
+      "mes:cal-plan:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/cal/plan/update",
+    "permissions": [
+      "mes:cal-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/cal/plan/confirm",
+    "permissions": [
+      "mes:cal-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/cal/plan/delete",
+    "permissions": [
+      "mes:cal-plan:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/plan/get",
+    "permissions": [
+      "mes:cal-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/plan/page",
+    "permissions": [
+      "mes:cal-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/plan/export-excel",
+    "permissions": [
+      "mes:cal-plan:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/cal/plan-shift/create",
+    "permissions": [
+      "mes:cal-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanShiftController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/cal/plan-shift/update",
+    "permissions": [
+      "mes:cal-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanShiftController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/cal/plan-shift/delete",
+    "permissions": [
+      "mes:cal-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanShiftController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/plan-shift/get",
+    "permissions": [
+      "mes:cal-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanShiftController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/plan-shift/page",
+    "permissions": [
+      "mes:cal-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanShiftController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/plan-shift/list-by-plan",
+    "permissions": [
+      "mes:cal-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanShiftController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/cal/plan-team/create",
+    "permissions": [
+      "mes:cal-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanTeamController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/cal/plan-team/delete",
+    "permissions": [
+      "mes:cal-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanTeamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/plan-team/list-by-plan",
+    "permissions": [
+      "mes:cal-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\plan\\MesCalPlanTeamController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/cal/team/create",
+    "permissions": [
+      "mes:cal-team:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/cal/team/update",
+    "permissions": [
+      "mes:cal-team:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/cal/team/delete",
+    "permissions": [
+      "mes:cal-team:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/team/get",
+    "permissions": [
+      "mes:cal-team:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/team/page",
+    "permissions": [
+      "mes:cal-team:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/team/list",
+    "permissions": [
+      "mes:cal-team:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/team/export-excel",
+    "permissions": [
+      "mes:cal-team:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/cal/team-member/create",
+    "permissions": [
+      "mes:cal-team:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamMemberController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/cal/team-member/delete",
+    "permissions": [
+      "mes:cal-team:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamMemberController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/team-member/get",
+    "permissions": [
+      "mes:cal-team:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamMemberController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/team-member/page",
+    "permissions": [
+      "mes:cal-team:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamMemberController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/team-member/list-by-team",
+    "permissions": [
+      "mes:cal-team:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamMemberController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/cal/team-shift/list",
+    "permissions": [
+      "mes:cal-team-shift:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\cal\\team\\MesCalTeamShiftController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/check-plan/create",
+    "permissions": [
+      "mes:dv-check-plan:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/check-plan/update",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/check-plan/enable",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/check-plan/disable",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/check-plan/delete",
+    "permissions": [
+      "mes:dv-check-plan:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-plan/get",
+    "permissions": [
+      "mes:dv-check-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-plan/page",
+    "permissions": [
+      "mes:dv-check-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-plan/export-excel",
+    "permissions": [
+      "mes:dv-check-plan:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/check-plan-machinery/create",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanMachineryController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/check-plan-machinery/delete",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanMachineryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-plan-machinery/list-by-plan",
+    "permissions": [
+      "mes:dv-check-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanMachineryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/check-plan-subject/create",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanSubjectController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/check-plan-subject/delete",
+    "permissions": [
+      "mes:dv-check-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanSubjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-plan-subject/list-by-plan",
+    "permissions": [
+      "mes:dv-check-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkplan\\MesDvCheckPlanSubjectController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/check-record/create",
+    "permissions": [
+      "mes:dv-check-record:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/check-record/update",
+    "permissions": [
+      "mes:dv-check-record:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/check-record/submit",
+    "permissions": [
+      "mes:dv-check-record:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/check-record/delete",
+    "permissions": [
+      "mes:dv-check-record:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-record/get",
+    "permissions": [
+      "mes:dv-check-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-record/page",
+    "permissions": [
+      "mes:dv-check-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-record/export-excel",
+    "permissions": [
+      "mes:dv-check-record:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/check-record-line/create",
+    "permissions": [
+      "mes:dv-check-record:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/check-record-line/update",
+    "permissions": [
+      "mes:dv-check-record:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/check-record-line/delete",
+    "permissions": [
+      "mes:dv-check-record:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-record-line/get",
+    "permissions": [
+      "mes:dv-check-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/check-record-line/page",
+    "permissions": [
+      "mes:dv-check-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\checkrecord\\MesDvCheckRecordLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/machinery/create",
+    "permissions": [
+      "mes:dv-machinery:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/machinery/update",
+    "permissions": [
+      "mes:dv-machinery:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/machinery/delete",
+    "permissions": [
+      "mes:dv-machinery:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/machinery/get",
+    "permissions": [
+      "mes:dv-machinery:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/machinery/page",
+    "permissions": [
+      "mes:dv-machinery:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/machinery/export-excel",
+    "permissions": [
+      "mes:dv-machinery:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/machinery/simple-list",
+    "permissions": [
+      "mes:dv-machinery:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/machinery/get-import-template",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/machinery/import",
+    "permissions": [
+      "mes:dv-machinery:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/machinery-type/create",
+    "permissions": [
+      "mes:dv-machinery-type:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryTypeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/machinery-type/update",
+    "permissions": [
+      "mes:dv-machinery-type:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryTypeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/machinery-type/delete",
+    "permissions": [
+      "mes:dv-machinery-type:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/machinery-type/get",
+    "permissions": [
+      "mes:dv-machinery-type:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/machinery-type/list",
+    "permissions": [
+      "mes:dv-machinery-type:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/machinery-type/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\machinery\\MesDvMachineryTypeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/mainten-record/create",
+    "permissions": [
+      "mes:dv-mainten-record:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/mainten-record/update",
+    "permissions": [
+      "mes:dv-mainten-record:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/mainten-record/delete",
+    "permissions": [
+      "mes:dv-mainten-record:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/mainten-record/get",
+    "permissions": [
+      "mes:dv-mainten-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/mainten-record/page",
+    "permissions": [
+      "mes:dv-mainten-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/mainten-record/export-excel",
+    "permissions": [
+      "mes:dv-mainten-record:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/mainten-record/submit",
+    "permissions": [
+      "mes:dv-mainten-record:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/mainten-record-line/create",
+    "permissions": [
+      "mes:dv-mainten-record:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/mainten-record-line/update",
+    "permissions": [
+      "mes:dv-mainten-record:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/mainten-record-line/delete",
+    "permissions": [
+      "mes:dv-mainten-record:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/mainten-record-line/get",
+    "permissions": [
+      "mes:dv-mainten-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/mainten-record-line/page",
+    "permissions": [
+      "mes:dv-mainten-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/mainten-record-line/export-excel",
+    "permissions": [
+      "mes:dv-mainten-record:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\maintenrecord\\MesDvMaintenRecordLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/metering/create",
+    "permissions": [
+      "mes:dv-metering:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/metering/update",
+    "permissions": [
+      "mes:dv-metering:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/metering/delete",
+    "permissions": [
+      "mes:dv-metering:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/metering/get",
+    "permissions": [
+      "mes:dv-metering:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/metering/page",
+    "permissions": [
+      "mes:dv-metering:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/metering/export-excel",
+    "permissions": [
+      "mes:dv-metering:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/metering/get-import-template",
+    "permissions": [
+      "mes:dv-metering:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/metering/import",
+    "permissions": [
+      "mes:dv-metering:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/metering/simple-list",
+    "permissions": [
+      "mes:dv-metering:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\metering\\MesDvMeteringController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/metering-check/create",
+    "permissions": [
+      "mes:dv-metering-check:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\meteringcheck\\MesDvMeteringCheckController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/metering-check/update",
+    "permissions": [
+      "mes:dv-metering-check:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\meteringcheck\\MesDvMeteringCheckController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/metering-check/delete",
+    "permissions": [
+      "mes:dv-metering-check:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\meteringcheck\\MesDvMeteringCheckController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/metering-check/get",
+    "permissions": [
+      "mes:dv-metering-check:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\meteringcheck\\MesDvMeteringCheckController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/metering-check/page",
+    "permissions": [
+      "mes:dv-metering-check:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\meteringcheck\\MesDvMeteringCheckController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/metering-check/export-excel",
+    "permissions": [
+      "mes:dv-metering-check:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\meteringcheck\\MesDvMeteringCheckController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/repair/create",
+    "permissions": [
+      "mes:dv-repair:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/repair/update",
+    "permissions": [
+      "mes:dv-repair:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/repair/delete",
+    "permissions": [
+      "mes:dv-repair:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/repair/get",
+    "permissions": [
+      "mes:dv-repair:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/repair/page",
+    "permissions": [
+      "mes:dv-repair:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/repair/export-excel",
+    "permissions": [
+      "mes:dv-repair:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/repair/submit",
+    "permissions": [
+      "mes:dv-repair:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/repair/confirm",
+    "permissions": [
+      "mes:dv-repair:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/repair/finish",
+    "permissions": [
+      "mes:dv-repair:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/repair-line/create",
+    "permissions": [
+      "mes:dv-repair:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/repair-line/update",
+    "permissions": [
+      "mes:dv-repair:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/repair-line/delete",
+    "permissions": [
+      "mes:dv-repair:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/repair-line/get",
+    "permissions": [
+      "mes:dv-repair:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/repair-line/page",
+    "permissions": [
+      "mes:dv-repair:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/repair-line/export-excel",
+    "permissions": [
+      "mes:dv-repair:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\repair\\MesDvRepairLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/dv/subject/create",
+    "permissions": [
+      "mes:dv-subject:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\subject\\MesDvSubjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/dv/subject/update",
+    "permissions": [
+      "mes:dv-subject:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\subject\\MesDvSubjectController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/dv/subject/delete",
+    "permissions": [
+      "mes:dv-subject:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\subject\\MesDvSubjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/subject/get",
+    "permissions": [
+      "mes:dv-subject:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\subject\\MesDvSubjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/subject/page",
+    "permissions": [
+      "mes:dv-subject:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\subject\\MesDvSubjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/subject/simple-list",
+    "permissions": [
+      "mes:dv-subject:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\subject\\MesDvSubjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/dv/subject/export-excel",
+    "permissions": [
+      "mes:dv-subject:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\dv\\subject\\MesDvSubjectController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/energy/record/create",
+    "permissions": [
+      "energy:record:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\energy\\EnergyRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/energy/record/update",
+    "permissions": [
+      "energy:record:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\energy\\EnergyRecordController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/energy/record/delete",
+    "permissions": [
+      "energy:record:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\energy\\EnergyRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/energy/record/get",
+    "permissions": [
+      "energy:record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\energy\\EnergyRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/energy/record/page",
+    "permissions": [
+      "energy:record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\energy\\EnergyRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/energy/record/analysis",
+    "permissions": [
+      "energy:analysis:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\energy\\EnergyRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/home-statistics/summary",
+    "permissions": [
+      "mes:home:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\home\\MesHomeStatisticsController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/home-statistics/work-order-status",
+    "permissions": [
+      "mes:home:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\home\\MesHomeStatisticsController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/home-statistics/production-trend",
+    "permissions": [
+      "mes:home:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\home\\MesHomeStatisticsController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/auto-code-part/create",
+    "permissions": [
+      "mes:auto-code-rule:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodePartController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md/auto-code-part/update",
+    "permissions": [
+      "mes:auto-code-rule:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodePartController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md/auto-code-part/delete",
+    "permissions": [
+      "mes:auto-code-rule:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodePartController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/auto-code-part/get",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodePartController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/auto-code-part/list-by-rule-id",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodePartController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/auto-code-record/generate",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodeRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/auto-code-rule/create",
+    "permissions": [
+      "mes:auto-code-rule:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodeRuleController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md/auto-code-rule/update",
+    "permissions": [
+      "mes:auto-code-rule:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodeRuleController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md/auto-code-rule/delete",
+    "permissions": [
+      "mes:auto-code-rule:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodeRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/auto-code-rule/get",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodeRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/auto-code-rule/page",
+    "permissions": [
+      "mes:auto-code-rule:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodeRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/auto-code-rule/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodeRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/auto-code-rule/export-excel",
+    "permissions": [
+      "mes:auto-code-rule:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\autocode\\MesMdAutoCodeRuleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item-batch-config/get-by-item-id",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemBatchConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/item-batch-config/save",
+    "permissions": [
+      "mes:md-item:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemBatchConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/item/create",
+    "permissions": [
+      "mes:md-item:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md/item/update",
+    "permissions": [
+      "mes:md-item:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md/item/delete",
+    "permissions": [
+      "mes:md-item:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item/get",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item/page",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item/export-excel",
+    "permissions": [
+      "mes:md-item:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/item-type/create",
+    "permissions": [
+      "mes:md-item-type:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md/item-type/update",
+    "permissions": [
+      "mes:md-item-type:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md/item-type/delete",
+    "permissions": [
+      "mes:md-item-type:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item-type/get",
+    "permissions": [
+      "mes:md-item-type:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item-type/list",
+    "permissions": [
+      "mes:md-item-type:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item-type/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item-type/export-excel",
+    "permissions": [
+      "mes:md-item-type:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/item-type/get-import-template",
+    "permissions": [
+      "mes:md-item-type:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/item-type/import",
+    "permissions": [
+      "mes:md-item-type:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdItemTypeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/product-bom/create",
+    "permissions": [
+      "mes:md-item:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductBomController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md/product-bom/update",
+    "permissions": [
+      "mes:md-item:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductBomController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md/product-bom/delete",
+    "permissions": [
+      "mes:md-item:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductBomController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-bom/get",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductBomController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-bom/page",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductBomController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-bom/list-by-item-id",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductBomController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/product-sip/create",
+    "permissions": [
+      "mes:md-item:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSipController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md/product-sip/update",
+    "permissions": [
+      "mes:md-item:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSipController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md/product-sip/delete",
+    "permissions": [
+      "mes:md-item:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSipController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-sip/get",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSipController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-sip/page",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSipController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-sip/list-by-item-id",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSipController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/product-sop/create",
+    "permissions": [
+      "mes:md-item:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSopController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md/product-sop/update",
+    "permissions": [
+      "mes:md-item:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSopController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md/product-sop/delete",
+    "permissions": [
+      "mes:md-item:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSopController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-sop/get",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSopController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-sop/page",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSopController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/product-sop/list-by-item-id",
+    "permissions": [
+      "mes:md-item:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\item\\MesMdProductSopController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md/unit-measure/create",
+    "permissions": [
+      "mes:md-unit-measure:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\unitmeasure\\MesMdUnitMeasureController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md/unit-measure/update",
+    "permissions": [
+      "mes:md-unit-measure:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\unitmeasure\\MesMdUnitMeasureController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md/unit-measure/delete",
+    "permissions": [
+      "mes:md-unit-measure:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\unitmeasure\\MesMdUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/unit-measure/get",
+    "permissions": [
+      "mes:md-unit-measure:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\unitmeasure\\MesMdUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/unit-measure/page",
+    "permissions": [
+      "mes:md-unit-measure:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\unitmeasure\\MesMdUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/unit-measure/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\unitmeasure\\MesMdUnitMeasureController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md/unit-measure/export-excel",
+    "permissions": [
+      "mes:md-unit-measure:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\unitmeasure\\MesMdUnitMeasureController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md-workshop/create",
+    "permissions": [
+      "mes:md-workshop:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkshopController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md-workshop/update",
+    "permissions": [
+      "mes:md-workshop:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkshopController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md-workshop/delete",
+    "permissions": [
+      "mes:md-workshop:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkshopController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workshop/get",
+    "permissions": [
+      "mes:md-workshop:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkshopController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workshop/page",
+    "permissions": [
+      "mes:md-workshop:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkshopController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workshop/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkshopController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workshop/export-excel",
+    "permissions": [
+      "mes:md-workshop:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkshopController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md-workstation/create",
+    "permissions": [
+      "mes:md-workstation:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md-workstation/update",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md-workstation/delete",
+    "permissions": [
+      "mes:md-workstation:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workstation/get",
+    "permissions": [
+      "mes:md-workstation:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workstation/page",
+    "permissions": [
+      "mes:md-workstation:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workstation/export-excel",
+    "permissions": [
+      "mes:md-workstation:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md-workstation-machine/create",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationMachineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md-workstation-machine/delete",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationMachineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workstation-machine/list-by-workstation",
+    "permissions": [
+      "mes:md-workstation:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationMachineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md-workstation-tool/create",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationToolController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md-workstation-tool/update",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationToolController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md-workstation-tool/delete",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationToolController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workstation-tool/list-by-workstation",
+    "permissions": [
+      "mes:md-workstation:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationToolController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/md-workstation-worker/create",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationWorkerController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/md-workstation-worker/update",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationWorkerController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/md-workstation-worker/delete",
+    "permissions": [
+      "mes:md-workstation:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationWorkerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workstation-worker/list-by-workstation",
+    "permissions": [
+      "mes:md-workstation:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationWorkerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/md-workstation-worker/list-user-by-workstation",
+    "permissions": [
+      "mes:md-workstation:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\md\\workstation\\MesMdWorkstationWorkerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pd/archive/create",
+    "permissions": [
+      "mes:pd-archive:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\archive\\MesPdArchiveController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/archive/update",
+    "permissions": [
+      "mes:pd-archive:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\archive\\MesPdArchiveController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pd/archive/delete",
+    "permissions": [
+      "mes:pd-archive:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\archive\\MesPdArchiveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/archive/get",
+    "permissions": [
+      "mes:pd-archive:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\archive\\MesPdArchiveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/archive/page",
+    "permissions": [
+      "mes:pd-archive:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\archive\\MesPdArchiveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/archive/detail-by-product",
+    "permissions": [
+      "mes:pd-archive:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\archive\\MesPdArchiveController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/archive/export-excel",
+    "permissions": [
+      "mes:pd-archive:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\archive\\MesPdArchiveController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pd/document/create",
+    "permissions": [
+      "mes:pd-document:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\document\\MesPdDocumentController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/document/update",
+    "permissions": [
+      "mes:pd-document:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\document\\MesPdDocumentController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pd/document/delete",
+    "permissions": [
+      "mes:pd-document:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\document\\MesPdDocumentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/document/get",
+    "permissions": [
+      "mes:pd-document:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\document\\MesPdDocumentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/document/page",
+    "permissions": [
+      "mes:pd-document:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\document\\MesPdDocumentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/document/export-excel",
+    "permissions": [
+      "mes:pd-document:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\document\\MesPdDocumentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pd/document-audit/create",
+    "permissions": [
+      "mes:pd-document-audit:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\documentaudit\\MesPdDocumentAuditController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/document-audit/update",
+    "permissions": [
+      "mes:pd-document-audit:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\documentaudit\\MesPdDocumentAuditController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pd/document-audit/delete",
+    "permissions": [
+      "mes:pd-document-audit:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\documentaudit\\MesPdDocumentAuditController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/document-audit/get",
+    "permissions": [
+      "mes:pd-document-audit:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\documentaudit\\MesPdDocumentAuditController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/document-audit/page",
+    "permissions": [
+      "mes:pd-document-audit:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\documentaudit\\MesPdDocumentAuditController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/document-audit/export-excel",
+    "permissions": [
+      "mes:pd-document-audit:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\documentaudit\\MesPdDocumentAuditController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pd/process-param/create",
+    "permissions": [
+      "mes:pd-process-param:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparam\\MesPdProcessParamController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/process-param/update",
+    "permissions": [
+      "mes:pd-process-param:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparam\\MesPdProcessParamController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pd/process-param/delete",
+    "permissions": [
+      "mes:pd-process-param:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparam\\MesPdProcessParamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/process-param/get",
+    "permissions": [
+      "mes:pd-process-param:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparam\\MesPdProcessParamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/process-param/page",
+    "permissions": [
+      "mes:pd-process-param:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparam\\MesPdProcessParamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/process-param/export-excel",
+    "permissions": [
+      "mes:pd-process-param:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparam\\MesPdProcessParamController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pd/process-param-template/create",
+    "permissions": [
+      "mes:pd-process-param-template:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparamtemplate\\MesPdProcessParamTemplateController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/process-param-template/update",
+    "permissions": [
+      "mes:pd-process-param-template:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparamtemplate\\MesPdProcessParamTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pd/process-param-template/delete",
+    "permissions": [
+      "mes:pd-process-param-template:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparamtemplate\\MesPdProcessParamTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/process-param-template/get",
+    "permissions": [
+      "mes:pd-process-param-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparamtemplate\\MesPdProcessParamTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/process-param-template/page",
+    "permissions": [
+      "mes:pd-process-param-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparamtemplate\\MesPdProcessParamTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/process-param-template/export-excel",
+    "permissions": [
+      "mes:pd-process-param-template:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\processparamtemplate\\MesPdProcessParamTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pd/project/create",
+    "permissions": [
+      "mes:pd-project:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/project/update",
+    "permissions": [
+      "mes:pd-project:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pd/project/delete",
+    "permissions": [
+      "mes:pd-project:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/project/get",
+    "permissions": [
+      "mes:pd-project:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/project/page",
+    "permissions": [
+      "mes:pd-project:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/project/export-excel",
+    "permissions": [
+      "mes:pd-project:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/project/publish",
+    "permissions": [
+      "mes:pd-project:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/project/upload",
+    "permissions": [
+      "mes:pd-project:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/project/submit-approval",
+    "permissions": [
+      "mes:pd-project:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pd/project/approve-process-list",
+    "permissions": [
+      "mes:pd-project:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pd/project/archive",
+    "permissions": [
+      "mes:pd-project:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pd\\project\\MesPdProjectController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/ai/predict-material",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\ai\\MesProAiController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/ai/predict-duration",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\ai\\MesProAiController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/ai/predict-risk",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\ai\\MesProAiController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/ai/predict-delivery",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\ai\\MesProAiController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/andon-config/create",
+    "permissions": [
+      "mes:pro-andon-config:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/andon-config/update",
+    "permissions": [
+      "mes:pro-andon-config:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/andon-config/delete",
+    "permissions": [
+      "mes:pro-andon-config:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/andon-config/get",
+    "permissions": [
+      "mes:pro-andon-config:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/andon-config/page",
+    "permissions": [
+      "mes:pro-andon-config:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/andon-config/list",
+    "permissions": [
+      "mes:pro-andon-config:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/andon-record/create",
+    "permissions": [
+      "mes:pro-andon-record:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonRecordController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/andon-record/delete",
+    "permissions": [
+      "mes:pro-andon-record:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/andon-record/update",
+    "permissions": [
+      "mes:pro-andon-record:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/andon-record/get",
+    "permissions": [
+      "mes:pro-andon-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/andon-record/page",
+    "permissions": [
+      "mes:pro-andon-record:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/andon-record/export-excel",
+    "permissions": [
+      "mes:pro-andon-record:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\andon\\MesProAndonRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/card/create",
+    "permissions": [
+      "mes:pro-card:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/card/update",
+    "permissions": [
+      "mes:pro-card:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/card/delete",
+    "permissions": [
+      "mes:pro-card:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/card/submit",
+    "permissions": [
+      "mes:pro-card:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/card/finish",
+    "permissions": [
+      "mes:pro-card:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/card/cancel",
+    "permissions": [
+      "mes:pro-card:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/card/get",
+    "permissions": [
+      "mes:pro-card:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/card/page",
+    "permissions": [
+      "mes:pro-card:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/card/export-excel",
+    "permissions": [
+      "mes:pro-card:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/card-process/create",
+    "permissions": [
+      "mes:pro-card:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardProcessController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/card-process/update",
+    "permissions": [
+      "mes:pro-card:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardProcessController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/card-process/delete",
+    "permissions": [
+      "mes:pro-card:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/card-process/get",
+    "permissions": [
+      "mes:pro-card:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/card-process/page",
+    "permissions": [
+      "mes:pro-card:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\card\\MesProCardProcessController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/feedback/create",
+    "permissions": [
+      "mes:pro-feedback:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/feedback/update",
+    "permissions": [
+      "mes:pro-feedback:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/feedback/delete",
+    "permissions": [
+      "mes:pro-feedback:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/feedback/get",
+    "permissions": [
+      "mes:pro-feedback:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/feedback/page",
+    "permissions": [
+      "mes:pro-feedback:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/feedback/list-by-task",
+    "permissions": [
+      "mes:pro-feedback:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/feedback/export-excel",
+    "permissions": [
+      "mes:pro-feedback:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/feedback/submit",
+    "permissions": [
+      "mes:pro-feedback:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/feedback/reject",
+    "permissions": [
+      "mes:pro-feedback:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/feedback/approve",
+    "permissions": [
+      "mes:pro-feedback:approve"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/feedback/batch-requirements",
+    "permissions": [
+      "mes:pro-feedback:approve"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/feedback/quick-create",
+    "permissions": [
+      "mes:pro-feedback:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/feedback/batch-create",
+    "permissions": [
+      "mes:pro-feedback:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/feedback/trace/{id}",
+    "permissions": [
+      "mes:pro-feedback:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\feedback\\MesProFeedbackController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro-mps/create",
+    "permissions": [
+      "mes:pro-mps:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro-mps/update",
+    "permissions": [
+      "mes:pro-mps:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro-mps/delete",
+    "permissions": [
+      "mes:pro-mps:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro-mps/get",
+    "permissions": [
+      "mes:pro-mps:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro-mps/page",
+    "permissions": [
+      "mes:pro-mps:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro-mps/export-excel",
+    "permissions": [
+      "mes:pro-mps:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro-mps/issue",
+    "permissions": [
+      "mes:pro-mps:issue"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro-mps/merge-issue",
+    "permissions": [
+      "mes:pro-mps:merge-issue"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro-mps/cancel",
+    "permissions": [
+      "mes:pro-mps:cancel"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\mps\\MesProMpsController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/process-content/create",
+    "permissions": [
+      "mes:pro-process:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessContentController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/process-content/update",
+    "permissions": [
+      "mes:pro-process:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessContentController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/process-content/delete",
+    "permissions": [
+      "mes:pro-process:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessContentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/process-content/get",
+    "permissions": [
+      "mes:pro-process:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessContentController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/process-content/list-by-process",
+    "permissions": [
+      "mes:pro-process:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessContentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/process/create",
+    "permissions": [
+      "mes:pro-process:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/process/update",
+    "permissions": [
+      "mes:pro-process:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/process/delete",
+    "permissions": [
+      "mes:pro-process:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/process/get",
+    "permissions": [
+      "mes:pro-process:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/process/page",
+    "permissions": [
+      "mes:pro-process:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/process/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/process/export-excel",
+    "permissions": [
+      "mes:pro-process:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/process-param/list-by-process",
+    "permissions": [
+      "mes:pro-process:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessParamController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/process-param/update-bindings",
+    "permissions": [
+      "mes:pro-process:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessParamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/process-param/list-by-param",
+    "permissions": [
+      "mes:pro-process:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\process\\MesProProcessParamController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/route/create",
+    "permissions": [
+      "mes:pro-route:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/route/update",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/route/update-status",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/route/delete",
+    "permissions": [
+      "mes:pro-route:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route/get",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route/page",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route/export-excel",
+    "permissions": [
+      "mes:pro-route:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/route-process/create",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProcessController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/route-process/update",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProcessController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/route-process/delete",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route-process/get",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route-process/list-by-product",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route-process/list-by-route",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route-process/get-by-route-and-process",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProcessController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/route-product-bom/create",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductBomController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/route-product-bom/update",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductBomController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/route-product-bom/delete",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductBomController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route-product-bom/get",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductBomController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route-product-bom/list",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductBomController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/route-product/create",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/route-product/update",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/route-product/delete",
+    "permissions": [
+      "mes:pro-route:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route-product/get",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/route-product/list-by-route",
+    "permissions": [
+      "mes:pro-route:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\route\\MesProRouteProductController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/task/create",
+    "permissions": [
+      "mes:pro-task:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/task/update",
+    "permissions": [
+      "mes:pro-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task/calculate-duration",
+    "permissions": [
+      "mes:pro-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/task/delete",
+    "permissions": [
+      "mes:pro-task:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/task/pause",
+    "permissions": [
+      "mes:pro-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/task/resume",
+    "permissions": [
+      "mes:pro-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/task/auto-generate/preview",
+    "permissions": [
+      "mes:pro-task:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/task/auto-generate",
+    "permissions": [
+      "mes:pro-task:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task/get",
+    "permissions": [
+      "mes:pro-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task/page",
+    "permissions": [
+      "mes:pro-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task/pending-feedback-page",
+    "permissions": [
+      "mes:pro-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task/gantt-list",
+    "permissions": [
+      "mes:pro-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task/export-excel",
+    "permissions": [
+      "mes:pro-task:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/task-issue/create",
+    "permissions": [
+      "mes:pro-task-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/task-issue/update",
+    "permissions": [
+      "mes:pro-task-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskIssueController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/task-issue/delete",
+    "permissions": [
+      "mes:pro-task-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task-issue/get",
+    "permissions": [
+      "mes:pro-task-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task-issue/page",
+    "permissions": [
+      "mes:pro-task-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/task-issue/list-by-task",
+    "permissions": [
+      "mes:pro-task-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\task\\MesProTaskIssueController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/work-order-bom/create",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderBomController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/work-order-bom/update",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderBomController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/work-order-bom/delete",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderBomController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-bom/get",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderBomController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-bom/page",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderBomController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-bom/item-list-by-work-order-id",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderBomController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/work-order/create",
+    "permissions": [
+      "mes:pro-work-order:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/work-order/update",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/work-order/delete",
+    "permissions": [
+      "mes:pro-work-order:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order/get",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order/page",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order/approve-process-list",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order/schedule-page",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order/export-excel",
+    "permissions": [
+      "mes:pro-work-order:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/work-order/confirm",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/work-order/finish",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/work-order/cancel",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order/progress/{id}",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/work-order/check-auto-finish/{id}",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/work-order-param-record/create",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderParamRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/work-order-param-record/update",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderParamRecordController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/work-order-param-record/delete",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderParamRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-param-record/get",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderParamRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-param-record/page-by-work-order",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderParamRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/work-order-process/create",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderProcessController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/work-order-process/update",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderProcessController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/pro/work-order-process/delete",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-process/get",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-process/page",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-process/list-by-work-order-id",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/work-order-process/list-by-product-id",
+    "permissions": [
+      "mes:pro-work-order:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderProcessController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/pro/work-order-process/batch-save",
+    "permissions": [
+      "mes:pro-work-order:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workorder\\MesProWorkOrderProcessController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/workrecord/log/page",
+    "permissions": [
+      "mes:pro-workrecord:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workrecord\\MesProWorkRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/workrecord/log/get",
+    "permissions": [
+      "mes:pro-workrecord:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workrecord\\MesProWorkRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/workrecord/log/export-excel",
+    "permissions": [
+      "mes:pro-workrecord:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workrecord\\MesProWorkRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/workrecord/clock-in",
+    "permissions": [
+      "mes:pro-workrecord:clock"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workrecord\\MesProWorkRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/pro/workrecord/clock-out",
+    "permissions": [
+      "mes:pro-workrecord:clock"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workrecord\\MesProWorkRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/pro/workrecord/get-my",
+    "permissions": [
+      "mes:pro-workrecord:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\pro\\workrecord\\MesProWorkRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/ai/suggest-result",
+    "permissions": [
+      "mes:qc:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ai\\MesQcAiController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/defect/create",
+    "permissions": [
+      "mes:qc-defect:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defect\\MesQcDefectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/defect/update",
+    "permissions": [
+      "mes:qc-defect:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defect\\MesQcDefectController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/defect/delete",
+    "permissions": [
+      "mes:qc-defect:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defect\\MesQcDefectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/defect/get",
+    "permissions": [
+      "mes:qc-defect:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defect\\MesQcDefectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/defect/page",
+    "permissions": [
+      "mes:qc-defect:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defect\\MesQcDefectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/defect/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defect\\MesQcDefectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/defect/export-excel",
+    "permissions": [
+      "mes:qc-defect:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defect\\MesQcDefectController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/defect-record/create",
+    "permissions": [
+      "mes:qc-defect:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defectrecord\\MesQcDefectRecordController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/defect-record/update",
+    "permissions": [
+      "mes:qc-defect:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defectrecord\\MesQcDefectRecordController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/defect-record/delete",
+    "permissions": [
+      "mes:qc-defect:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defectrecord\\MesQcDefectRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/defect-record/get",
+    "permissions": [
+      "mes:qc-defect:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defectrecord\\MesQcDefectRecordController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/defect-record/page",
+    "permissions": [
+      "mes:qc-defect:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\defectrecord\\MesQcDefectRecordController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/indicator/create",
+    "permissions": [
+      "mes:qc-indicator:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicator\\MesQcIndicatorController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/indicator/update",
+    "permissions": [
+      "mes:qc-indicator:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicator\\MesQcIndicatorController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/indicator/delete",
+    "permissions": [
+      "mes:qc-indicator:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicator\\MesQcIndicatorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/indicator/get",
+    "permissions": [
+      "mes:qc-indicator:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicator\\MesQcIndicatorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/indicator/page",
+    "permissions": [
+      "mes:qc-indicator:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicator\\MesQcIndicatorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/indicator/group-list",
+    "permissions": [
+      "mes:qc-indicator:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicator\\MesQcIndicatorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/indicator/export-excel",
+    "permissions": [
+      "mes:qc-indicator:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicator\\MesQcIndicatorController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/indicator-result/create",
+    "permissions": [
+      "mes:qc-iqc:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicatorresult\\MesQcIndicatorResultController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/indicator-result/update",
+    "permissions": [
+      "mes:qc-iqc:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicatorresult\\MesQcIndicatorResultController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/indicator-result/delete",
+    "permissions": [
+      "mes:qc-iqc:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicatorresult\\MesQcIndicatorResultController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/indicator-result/get-detail",
+    "permissions": [
+      "mes:qc-iqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicatorresult\\MesQcIndicatorResultController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/indicator-result/page",
+    "permissions": [
+      "mes:qc-iqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\indicatorresult\\MesQcIndicatorResultController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/ipqc/create",
+    "permissions": [
+      "mes:qc-ipqc:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/ipqc/update",
+    "permissions": [
+      "mes:qc-ipqc:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/ipqc/finish",
+    "permissions": [
+      "mes:qc-ipqc:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/ipqc/delete",
+    "permissions": [
+      "mes:qc-ipqc:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ipqc/get",
+    "permissions": [
+      "mes:qc-ipqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ipqc/page",
+    "permissions": [
+      "mes:qc-ipqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ipqc/export-excel",
+    "permissions": [
+      "mes:qc-ipqc:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ipqc/get-import-template",
+    "permissions": [
+      "mes:qc-ipqc:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/ipqc/import",
+    "permissions": [
+      "mes:qc-ipqc:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ipqc/line/get",
+    "permissions": [
+      "mes:qc-ipqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ipqc/line/page",
+    "permissions": [
+      "mes:qc-ipqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ipqc\\MesQcIpqcLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/iqc/create",
+    "permissions": [
+      "mes:qc-iqc:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/iqc/update",
+    "permissions": [
+      "mes:qc-iqc:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/iqc/finish",
+    "permissions": [
+      "mes:qc-iqc:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/iqc/delete",
+    "permissions": [
+      "mes:qc-iqc:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/iqc/get",
+    "permissions": [
+      "mes:qc-iqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/iqc/page",
+    "permissions": [
+      "mes:qc-iqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/iqc/export-excel",
+    "permissions": [
+      "mes:qc-iqc:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/iqc/get-import-template",
+    "permissions": [
+      "mes:qc-iqc:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/iqc/import",
+    "permissions": [
+      "mes:qc-iqc:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/iqc/line/get",
+    "permissions": [
+      "mes:qc-iqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/iqc/line/page",
+    "permissions": [
+      "mes:qc-iqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\iqc\\MesQcIqcLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/inspection-ledger/page",
+    "permissions": [
+      "mes:qc-inspection-ledger:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ledger\\MesQcInspectionLedgerController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/inspection-ledger/export-excel",
+    "permissions": [
+      "mes:qc-inspection-ledger:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ledger\\MesQcInspectionLedgerController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/ncr/create",
+    "permissions": [
+      "mes:qc-ncr:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/ncr/update",
+    "permissions": [
+      "mes:qc-ncr:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/ncr/review",
+    "permissions": [
+      "mes:qc-ncr:review"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/ncr/dispose",
+    "permissions": [
+      "mes:qc-ncr:dispose"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/ncr/close",
+    "permissions": [
+      "mes:qc-ncr:close"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/ncr/delete",
+    "permissions": [
+      "mes:qc-ncr:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ncr/get",
+    "permissions": [
+      "mes:qc-ncr:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ncr/page",
+    "permissions": [
+      "mes:qc-ncr:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/ncr/export-excel",
+    "permissions": [
+      "mes:qc-ncr:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\ncr\\MesQcNcrController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/oqc/create",
+    "permissions": [
+      "mes:qc-oqc:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/oqc/update",
+    "permissions": [
+      "mes:qc-oqc:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/oqc/finish",
+    "permissions": [
+      "mes:qc-oqc:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/oqc/delete",
+    "permissions": [
+      "mes:qc-oqc:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/oqc/get",
+    "permissions": [
+      "mes:qc-oqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/oqc/page",
+    "permissions": [
+      "mes:qc-oqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/oqc/export-excel",
+    "permissions": [
+      "mes:qc-oqc:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/oqc/get-import-template",
+    "permissions": [
+      "mes:qc-oqc:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/oqc/import",
+    "permissions": [
+      "mes:qc-oqc:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/oqc/line/get",
+    "permissions": [
+      "mes:qc-oqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/oqc/line/page",
+    "permissions": [
+      "mes:qc-oqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\oqc\\MesQcOqcLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/pending-inspect/page",
+    "permissions": [
+      "mes:qc-pending-inspect:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\pendinginspect\\MesQcPendingInspectController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/rqc/create",
+    "permissions": [
+      "mes:qc-rqc:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/rqc/update",
+    "permissions": [
+      "mes:qc-rqc:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/rqc/finish",
+    "permissions": [
+      "mes:qc-rqc:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/rqc/delete",
+    "permissions": [
+      "mes:qc-rqc:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/rqc/get",
+    "permissions": [
+      "mes:qc-rqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/rqc/page",
+    "permissions": [
+      "mes:qc-rqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/rqc/export-excel",
+    "permissions": [
+      "mes:qc-rqc:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/rqc/line/get",
+    "permissions": [
+      "mes:qc-rqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/rqc/line/page",
+    "permissions": [
+      "mes:qc-rqc:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\rqc\\MesQcRqcLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/template/create",
+    "permissions": [
+      "mes:qc-template:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/template/update",
+    "permissions": [
+      "mes:qc-template:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/template/delete",
+    "permissions": [
+      "mes:qc-template:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/template/get",
+    "permissions": [
+      "mes:qc-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/template/page",
+    "permissions": [
+      "mes:qc-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/template/export-excel",
+    "permissions": [
+      "mes:qc-template:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/template/indicator/create",
+    "permissions": [
+      "mes:qc-template:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateIndicatorController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/template/indicator/update",
+    "permissions": [
+      "mes:qc-template:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateIndicatorController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/template/indicator/delete",
+    "permissions": [
+      "mes:qc-template:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateIndicatorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/template/indicator/get",
+    "permissions": [
+      "mes:qc-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateIndicatorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/template/indicator/page",
+    "permissions": [
+      "mes:qc-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateIndicatorController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/qc/template/item/create",
+    "permissions": [
+      "mes:qc-template:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateItemController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/qc/template/item/update",
+    "permissions": [
+      "mes:qc-template:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateItemController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/qc/template/item/delete",
+    "permissions": [
+      "mes:qc-template:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/template/item/get",
+    "permissions": [
+      "mes:qc-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/template/item/page",
+    "permissions": [
+      "mes:qc-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateItemController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/qc/template/item/list-by-item-and-type",
+    "permissions": [
+      "mes:qc-template:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\qc\\template\\MesQcTemplateItemController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/tm/tool/create",
+    "permissions": [
+      "mes:tm-tool:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/tm/tool/update",
+    "permissions": [
+      "mes:tm-tool:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/tm/tool/delete",
+    "permissions": [
+      "mes:tm-tool:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/tm/tool/get",
+    "permissions": [
+      "mes:tm-tool:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/tm/tool/page",
+    "permissions": [
+      "mes:tm-tool:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/tm/tool/export-excel",
+    "permissions": [
+      "mes:tm-tool:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/tm/tool/simple-list",
+    "permissions": [
+      "mes:tm-tool:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/tm/tool-type/create",
+    "permissions": [
+      "mes:tm-tool-type:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolTypeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/tm/tool-type/update",
+    "permissions": [
+      "mes:tm-tool-type:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolTypeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/tm/tool-type/delete",
+    "permissions": [
+      "mes:tm-tool-type:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/tm/tool-type/get",
+    "permissions": [
+      "mes:tm-tool-type:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/tm/tool-type/page",
+    "permissions": [
+      "mes:tm-tool-type:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/tm/tool-type/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/tm/tool-type/export-excel",
+    "permissions": [
+      "mes:tm-tool-type:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\tm\\tool\\MesTmToolTypeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/arrival-notice/create",
+    "permissions": [
+      "mes:wm-arrival-notice:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/arrival-notice/update",
+    "permissions": [
+      "mes:wm-arrival-notice:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/arrival-notice/delete",
+    "permissions": [
+      "mes:wm-arrival-notice:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice/get",
+    "permissions": [
+      "mes:wm-arrival-notice:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice/page",
+    "permissions": [
+      "mes:wm-arrival-notice:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice/export-excel",
+    "permissions": [
+      "mes:wm-arrival-notice:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/arrival-notice/submit",
+    "permissions": [
+      "mes:wm-arrival-notice:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/arrival-notice/generate-from-purchase-order",
+    "permissions": [
+      "mes:wm-arrival-notice:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/arrival-notice-line/create",
+    "permissions": [
+      "mes:wm-arrival-notice:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/arrival-notice-line/update",
+    "permissions": [
+      "mes:wm-arrival-notice:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/arrival-notice-line/delete",
+    "permissions": [
+      "mes:wm-arrival-notice:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice-line/get",
+    "permissions": [
+      "mes:wm-arrival-notice:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/arrival-notice-line/page",
+    "permissions": [
+      "mes:wm-arrival-notice:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\arrivalnotice\\MesWmArrivalNoticeLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/barcode-config/create",
+    "permissions": [
+      "mes:wm-barcode-config:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/barcode-config/update",
+    "permissions": [
+      "mes:wm-barcode-config:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeConfigController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/barcode-config/delete",
+    "permissions": [
+      "mes:wm-barcode-config:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/barcode-config/get",
+    "permissions": [
+      "mes:wm-barcode-config:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/barcode-config/page",
+    "permissions": [
+      "mes:wm-barcode-config:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/barcode/create",
+    "permissions": [
+      "mes:wm-barcode:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/barcode/update",
+    "permissions": [
+      "mes:wm-barcode:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/barcode/delete",
+    "permissions": [
+      "mes:wm-barcode:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/barcode/get",
+    "permissions": [
+      "mes:wm-barcode:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/barcode/page",
+    "permissions": [
+      "mes:wm-barcode:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/barcode/get-by-business",
+    "permissions": [
+      "mes:wm-barcode:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/barcode/generate-content",
+    "permissions": [
+      "mes:wm-barcode:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/barcode/export-excel",
+    "permissions": [
+      "mes:wm-barcode:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\barcode\\MesWmBarcodeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/batch/get",
+    "permissions": [
+      "mes:wm-batch:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\batch\\MesWmBatchController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/batch/page",
+    "permissions": [
+      "mes:wm-batch:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\batch\\MesWmBatchController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/batch/forward-list",
+    "permissions": [
+      "mes:wm-batch:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\batch\\MesWmBatchController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/batch/backward-list",
+    "permissions": [
+      "mes:wm-batch:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\batch\\MesWmBatchController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/batch/purchase-sources",
+    "permissions": [
+      "mes:wm-batch:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\batch\\MesWmBatchController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/batch/sales-targets",
+    "permissions": [
+      "mes:wm-batch:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\batch\\MesWmBatchController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/batch/process-trace",
+    "permissions": [
+      "mes:wm-batch:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\batch\\MesWmBatchController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/batch/get-by-sn",
+    "permissions": [
+      "mes:wm-batch:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\batch\\MesWmBatchController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/item-consume-line/page",
+    "permissions": [
+      "mes:pro-feedback:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemconsume\\MesWmItemConsumeLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/item-receipt/create",
+    "permissions": [
+      "mes:wm-item-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/update",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/item-receipt/delete",
+    "permissions": [
+      "mes:wm-item-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/item-receipt/get",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/item-receipt/page",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/item-receipt/export-excel",
+    "permissions": [
+      "mes:wm-item-receipt:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/submit",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/stock",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/finish",
+    "permissions": [
+      "mes:wm-item-receipt:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/cancel",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/item-receipt/generate-from-arrival-notice",
+    "permissions": [
+      "mes:wm-item-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt/submit-approval",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/item-receipt-detail/create",
+    "permissions": [
+      "mes:wm-item-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt-detail/update",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/item-receipt-detail/delete",
+    "permissions": [
+      "mes:wm-item-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/item-receipt-detail/get",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/item-receipt-detail/list-by-line",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/item-receipt-line/create",
+    "permissions": [
+      "mes:wm-item-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/item-receipt-line/update",
+    "permissions": [
+      "mes:wm-item-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/item-receipt-line/delete",
+    "permissions": [
+      "mes:wm-item-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/item-receipt-line/get",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/item-receipt-line/page",
+    "permissions": [
+      "mes:wm-item-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\itemreceipt\\MesWmItemReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/material-stock/get",
+    "permissions": [
+      "mes:wm-material-stock:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/material-stock/page",
+    "permissions": [
+      "mes:wm-material-stock:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/material-stock/update-frozen",
+    "permissions": [
+      "mes:wm-material-stock:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/material-stock/adjust-in",
+    "permissions": [
+      "mes:wm-material-stock:adjust"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/material-stock/adjust-out",
+    "permissions": [
+      "mes:wm-material-stock:adjust"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/material-stock/move",
+    "permissions": [
+      "mes:wm-material-stock:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/material-stock/export-excel",
+    "permissions": [
+      "mes:wm-material-stock:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/material-stock/import-template",
+    "permissions": [
+      "mes:wm-material-stock:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/material-stock/import",
+    "permissions": [
+      "mes:wm-material-stock:import"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\materialstock\\MesWmMaterialStockController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/misc-issue/create",
+    "permissions": [
+      "mes:wm-misc-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue/update",
+    "permissions": [
+      "mes:wm-misc-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/misc-issue/delete",
+    "permissions": [
+      "mes:wm-misc-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-issue/get",
+    "permissions": [
+      "mes:wm-misc-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-issue/page",
+    "permissions": [
+      "mes:wm-misc-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-issue/export-excel",
+    "permissions": [
+      "mes:wm-misc-issue:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue/submit",
+    "permissions": [
+      "mes:wm-misc-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue/finish",
+    "permissions": [
+      "mes:wm-misc-issue:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue/cancel",
+    "permissions": [
+      "mes:wm-misc-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/misc-issue-line/create",
+    "permissions": [
+      "mes:wm-misc-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-issue-line/update",
+    "permissions": [
+      "mes:wm-misc-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/misc-issue-line/delete",
+    "permissions": [
+      "mes:wm-misc-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-issue-line/get",
+    "permissions": [
+      "mes:wm-misc-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-issue-line/page",
+    "permissions": [
+      "mes:wm-misc-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscissue\\MesWmMiscIssueLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/misc-receipt/create",
+    "permissions": [
+      "mes:wm:misc-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt/update",
+    "permissions": [
+      "mes:wm:misc-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/misc-receipt/delete",
+    "permissions": [
+      "mes:wm:misc-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt/get",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt/page",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt/submit",
+    "permissions": [
+      "mes:wm:misc-receipt:submit"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt/finish",
+    "permissions": [
+      "mes:wm:misc-receipt:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt/cancel",
+    "permissions": [
+      "mes:wm:misc-receipt:cancel"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt/export-excel",
+    "permissions": [
+      "mes:wm:misc-receipt:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/misc-receipt-line/create",
+    "permissions": [
+      "mes:wm:misc-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/misc-receipt-line/update",
+    "permissions": [
+      "mes:wm:misc-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/misc-receipt-line/delete",
+    "permissions": [
+      "mes:wm:misc-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt-line/get",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt-line/list-by-receipt-id",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/misc-receipt-line/page",
+    "permissions": [
+      "mes:wm:misc-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\miscreceipt\\MesWmMiscReceiptLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/outsource-issue/create",
+    "permissions": [
+      "mes:wm-outsource-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/update",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-issue/delete",
+    "permissions": [
+      "mes:wm-outsource-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue/get",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue/page",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue/export-excel",
+    "permissions": [
+      "mes:wm-outsource-issue:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/submit",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/stock",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/finish",
+    "permissions": [
+      "mes:wm-outsource-issue:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue/cancel",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue/check-quantity",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/outsource-issue-detail/create",
+    "permissions": [
+      "mes:wm-outsource-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue-detail/update",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-issue-detail/delete",
+    "permissions": [
+      "mes:wm-outsource-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue-detail/get",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue-detail/list-by-line",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/outsource-issue-line/create",
+    "permissions": [
+      "mes:wm-outsource-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-issue-line/update",
+    "permissions": [
+      "mes:wm-outsource-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-issue-line/delete",
+    "permissions": [
+      "mes:wm-outsource-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue-line/get",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue-line/page",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-issue-line/list-by-issue-id",
+    "permissions": [
+      "mes:wm-outsource-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourceissue\\MesWmOutsourceIssueLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/outsource-receipt/create",
+    "permissions": [
+      "mes:wm-outsource-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/update",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-receipt/delete",
+    "permissions": [
+      "mes:wm-outsource-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt/get",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt/page",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt/export-excel",
+    "permissions": [
+      "mes:wm-outsource-receipt:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/submit",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/stock",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/finish",
+    "permissions": [
+      "mes:wm-outsource-receipt:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt/cancel",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/outsource-receipt-detail/create",
+    "permissions": [
+      "mes:wm-outsource-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt-detail/update",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-receipt-detail/delete",
+    "permissions": [
+      "mes:wm-outsource-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt-detail/get",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt-detail/list-by-line",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/outsource-receipt-line/create",
+    "permissions": [
+      "mes:wm-outsource-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/outsource-receipt-line/update",
+    "permissions": [
+      "mes:wm-outsource-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/outsource-receipt-line/delete",
+    "permissions": [
+      "mes:wm-outsource-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt-line/get",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/outsource-receipt-line/page",
+    "permissions": [
+      "mes:wm-outsource-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\outsourcereceipt\\MesWmOutsourceReceiptLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/package/create",
+    "permissions": [
+      "mes:wm-package:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/package/update",
+    "permissions": [
+      "mes:wm-package:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/package/delete",
+    "permissions": [
+      "mes:wm-package:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/package/get",
+    "permissions": [
+      "mes:wm-package:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/package/page",
+    "permissions": [
+      "mes:wm-package:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/package/finish",
+    "permissions": [
+      "mes:wm-package:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/package/add-child-package",
+    "permissions": [
+      "mes:wm-package:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/package/remove-child-package",
+    "permissions": [
+      "mes:wm-package:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/package-line/create",
+    "permissions": [
+      "mes:wm-package:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/package-line/update",
+    "permissions": [
+      "mes:wm-package:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/package-line/delete",
+    "permissions": [
+      "mes:wm-package:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/package-line/get",
+    "permissions": [
+      "mes:wm-package:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/package-line/page",
+    "permissions": [
+      "mes:wm-package:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\packages\\MesWmPackageLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-issue/create",
+    "permissions": [
+      "mes:wm-product-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/update",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-issue/delete",
+    "permissions": [
+      "mes:wm-product-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue/get",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue/page",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue/export-excel",
+    "permissions": [
+      "mes:wm-product-issue:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/finish",
+    "permissions": [
+      "mes:wm-product-issue:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/submit",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/stock",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-issue/cancel",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue/check-quantity",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-issue-detail/create",
+    "permissions": [
+      "mes:wm-product-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-issue-detail/update",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-issue-detail/delete",
+    "permissions": [
+      "mes:wm-product-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue-detail/get",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue-detail/list-by-line",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-issue-line/create",
+    "permissions": [
+      "mes:wm-product-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-issue-line/update",
+    "permissions": [
+      "mes:wm-product-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-issue-line/delete",
+    "permissions": [
+      "mes:wm-product-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue-line/get",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue-line/page",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue-line/list-by-issue",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue-line/bom-item-list",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-issue-line/returnable-list",
+    "permissions": [
+      "mes:wm-product-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productissue\\MesWmProductIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-produce-line/page",
+    "permissions": [
+      "mes:wm-product-produce:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productproduce\\MesWmProductProduceLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-receipt/create",
+    "permissions": [
+      "mes:wm-product-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/update",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-receipt/delete",
+    "permissions": [
+      "mes:wm-product-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-receipt/get",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-receipt/page",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-receipt/export-excel",
+    "permissions": [
+      "mes:wm-product-receipt:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/submit",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/stock",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/finish",
+    "permissions": [
+      "mes:wm-product-receipt:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt/cancel",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-receipt/check-quantity",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-receipt-detail/create",
+    "permissions": [
+      "mes:wm-product-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt-detail/update",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-receipt-detail/delete",
+    "permissions": [
+      "mes:wm-product-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-receipt-detail/get",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-receipt-detail/list-by-line",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-receipt-line/create",
+    "permissions": [
+      "mes:wm-product-receipt:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-receipt-line/update",
+    "permissions": [
+      "mes:wm-product-receipt:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-receipt-line/delete",
+    "permissions": [
+      "mes:wm-product-receipt:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-receipt-line/get",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-receipt-line/page",
+    "permissions": [
+      "mes:wm-product-receipt:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productreceipt\\MesWmProductReceiptLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-sales/create",
+    "permissions": [
+      "mes:wm-product-sales:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/update",
+    "permissions": [
+      "mes:wm-product-sales:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-sales/delete",
+    "permissions": [
+      "mes:wm-product-sales:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-sales/get",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-sales/page",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-sales/export-excel",
+    "permissions": [
+      "mes:wm-product-sales:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/submit",
+    "permissions": [
+      "mes:wm-product-sales:submit"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-sales/check-quantity",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/stock",
+    "permissions": [
+      "mes:wm-product-sales:stock"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/shipping",
+    "permissions": [
+      "mes:wm-product-sales:shipping"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/finish",
+    "permissions": [
+      "mes:wm-product-sales:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-sales/cancel",
+    "permissions": [
+      "mes:wm-product-sales:cancel"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-sales-detail/create",
+    "permissions": [
+      "mes:wm-product-sales:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-sales-detail/update",
+    "permissions": [
+      "mes:wm-product-sales:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-sales-detail/delete",
+    "permissions": [
+      "mes:wm-product-sales:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-sales-detail/get",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-sales-detail/list-by-line",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/product-sales-line/create",
+    "permissions": [
+      "mes:wm-product-sales:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/product-sales-line/update",
+    "permissions": [
+      "mes:wm-product-sales:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/product-sales-line/delete",
+    "permissions": [
+      "mes:wm-product-sales:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-sales-line/get",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/product-sales-line/page",
+    "permissions": [
+      "mes:wm-product-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\productsales\\MesWmProductSalesLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-issue/create",
+    "permissions": [
+      "mes:wm-return-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/update",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-issue/delete",
+    "permissions": [
+      "mes:wm-return-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-issue/get",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-issue/page",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-issue/export-excel",
+    "permissions": [
+      "mes:wm-return-issue:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/finish",
+    "permissions": [
+      "mes:wm-return-issue:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/submit",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/stock",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-issue/cancel",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-issue-detail/create",
+    "permissions": [
+      "mes:wm-return-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-issue-detail/update",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-issue-detail/delete",
+    "permissions": [
+      "mes:wm-return-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-issue-detail/get",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-issue-detail/list-by-line",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-issue-line/create",
+    "permissions": [
+      "mes:wm-return-issue:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-issue-line/update",
+    "permissions": [
+      "mes:wm-return-issue:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-issue-line/delete",
+    "permissions": [
+      "mes:wm-return-issue:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-issue-line/get",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-issue-line/page",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-issue-line/list-by-issue",
+    "permissions": [
+      "mes:wm-return-issue:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnissue\\MesWmReturnIssueLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-sales/create",
+    "permissions": [
+      "mes:wm-return-sales:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/update",
+    "permissions": [
+      "mes:wm-return-sales:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-sales/delete",
+    "permissions": [
+      "mes:wm-return-sales:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales/get",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales/page",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales/export-excel",
+    "permissions": [
+      "mes:wm-return-sales:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/submit",
+    "permissions": [
+      "mes:wm-return-sales:submit"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/finish",
+    "permissions": [
+      "mes:wm-return-sales:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/stock",
+    "permissions": [
+      "mes:wm-return-sales:stock"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-sales/cancel",
+    "permissions": [
+      "mes:wm-return-sales:cancel"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales/check-quantity",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-sales-detail/create",
+    "permissions": [
+      "mes:wm-return-sales:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-sales-detail/update",
+    "permissions": [
+      "mes:wm-return-sales:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-sales-detail/delete",
+    "permissions": [
+      "mes:wm-return-sales:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales-detail/get",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales-detail/list-by-line",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-sales-line/create",
+    "permissions": [
+      "mes:wm-return-sales:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-sales-line/update",
+    "permissions": [
+      "mes:wm-return-sales:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-sales-line/delete",
+    "permissions": [
+      "mes:wm-return-sales:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales-line/get",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales-line/page",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-sales-line/list-by-return-sales",
+    "permissions": [
+      "mes:wm-return-sales:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnsales\\MesWmReturnSalesLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-vendor/create",
+    "permissions": [
+      "mes:wm-return-vendor:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/update",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-vendor/delete",
+    "permissions": [
+      "mes:wm-return-vendor:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor/get",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor/page",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor/export-excel",
+    "permissions": [
+      "mes:wm-return-vendor:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/submit",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/stock",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/finish",
+    "permissions": [
+      "mes:wm-return-vendor:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor/cancel",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor/check-quantity",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-vendor/import-purchase-order-items",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-vendor-detail/create",
+    "permissions": [
+      "mes:wm-return-vendor:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor-detail/update",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-vendor-detail/delete",
+    "permissions": [
+      "mes:wm-return-vendor:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor-detail/get",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor-detail/list-by-line",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/return-vendor-line/create",
+    "permissions": [
+      "mes:wm-return-vendor:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/return-vendor-line/update",
+    "permissions": [
+      "mes:wm-return-vendor:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/return-vendor-line/delete",
+    "permissions": [
+      "mes:wm-return-vendor:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor-line/get",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor-line/page",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/return-vendor-line/list-by-return-vendor",
+    "permissions": [
+      "mes:wm-return-vendor:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\returnvendor\\MesWmReturnVendorLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/sales-notice/create",
+    "permissions": [
+      "mes:wm-sales-notice:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/sales-notice/update",
+    "permissions": [
+      "mes:wm-sales-notice:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/sales-notice/delete",
+    "permissions": [
+      "mes:wm-sales-notice:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sales-notice/get",
+    "permissions": [
+      "mes:wm-sales-notice:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sales-notice/page",
+    "permissions": [
+      "mes:wm-sales-notice:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sales-notice/export-excel",
+    "permissions": [
+      "mes:wm-sales-notice:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/sales-notice/submit",
+    "permissions": [
+      "mes:wm-sales-notice:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/sales-notice/generate-from-sale-order",
+    "permissions": [
+      "mes:wm-sales-notice:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/sales-notice/generate-product-sales",
+    "permissions": [
+      "mes:wm-product-sales:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/sales-notice-line/create",
+    "permissions": [
+      "mes:wm-sales-notice:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/sales-notice-line/update",
+    "permissions": [
+      "mes:wm-sales-notice:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/sales-notice-line/delete",
+    "permissions": [
+      "mes:wm-sales-notice:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sales-notice-line/get",
+    "permissions": [
+      "mes:wm-sales-notice:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sales-notice-line/page",
+    "permissions": [
+      "mes:wm-sales-notice:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\salesnotice\\MesWmSalesNoticeLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/sn/generate",
+    "permissions": [
+      "mes:wm-sn:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\sn\\MesWmSnController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sn/group-page",
+    "permissions": [
+      "mes:wm-sn:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\sn\\MesWmSnController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sn/list-by-uuid",
+    "permissions": [
+      "mes:wm-sn:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\sn\\MesWmSnController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/sn/delete-batch",
+    "permissions": [
+      "mes:wm-sn:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\sn\\MesWmSnController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sn/group-export-excel",
+    "permissions": [
+      "mes:wm-sn:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\sn\\MesWmSnController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/sn/export-excel",
+    "permissions": [
+      "mes:wm-sn:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\sn\\MesWmSnController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/stocktaking-plan/create",
+    "permissions": [
+      "mes:wm-stock-taking-plan:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-plan/update",
+    "permissions": [
+      "mes:wm-stock-taking-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-plan/update-status",
+    "permissions": [
+      "mes:wm-stock-taking-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/stocktaking-plan/delete",
+    "permissions": [
+      "mes:wm-stock-taking-plan:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan/get",
+    "permissions": [
+      "mes:wm-stock-taking-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan/page",
+    "permissions": [
+      "mes:wm-stock-taking-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan/export-excel",
+    "permissions": [
+      "mes:wm-stock-taking-plan:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/stocktaking-plan-param/create",
+    "permissions": [
+      "mes:wm-stock-taking-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanParamController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-plan-param/update",
+    "permissions": [
+      "mes:wm-stock-taking-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanParamController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/stocktaking-plan-param/delete",
+    "permissions": [
+      "mes:wm-stock-taking-plan:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanParamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan-param/get",
+    "permissions": [
+      "mes:wm-stock-taking-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanParamController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-plan-param/page",
+    "permissions": [
+      "mes:wm-stock-taking-plan:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\plan\\MesWmStockTakingPlanParamController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/stocktaking-task/create",
+    "permissions": [
+      "mes:wm-stock-taking-task:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task/update",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/stocktaking-task/delete",
+    "permissions": [
+      "mes:wm-stock-taking-task:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task/submit",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task/get",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task/page",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task/export-excel",
+    "permissions": [
+      "mes:wm-stock-taking-task:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task/finish",
+    "permissions": [
+      "mes:wm-stock-taking-task:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task/cancel",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task-line/get",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task-line/page",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/stocktaking-task-line/create",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task-line/update",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/stocktaking-task-line/delete",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task-line/simple-list",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task-result/get",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskResultController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/stocktaking-task-result/page",
+    "permissions": [
+      "mes:wm-stock-taking-task:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskResultController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/stocktaking-task-result/create",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskResultController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/stocktaking-task-result/update",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskResultController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/stocktaking-task-result/delete",
+    "permissions": [
+      "mes:wm-stock-taking-task:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\stocktaking\\task\\MesWmStockTakingTaskResultController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/transaction/page",
+    "permissions": [
+      "mes:wm-transaction:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transaction\\MesWmTransactionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/transfer/create",
+    "permissions": [
+      "mes:wm-transfer:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/transfer/update",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/transfer/delete",
+    "permissions": [
+      "mes:wm-transfer:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/transfer/get",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/transfer/page",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/transfer/export-excel",
+    "permissions": [
+      "mes:wm-transfer:export"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/transfer/submit",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/transfer/confirm",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/transfer/stock",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/transfer/finish",
+    "permissions": [
+      "mes:wm-transfer:finish"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/transfer/cancel",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/transfer-detail/create",
+    "permissions": [
+      "mes:wm-transfer:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferDetailController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/transfer-detail/update",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferDetailController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/transfer-detail/delete",
+    "permissions": [
+      "mes:wm-transfer:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/transfer-detail/get",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferDetailController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/transfer-detail/list-by-line",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferDetailController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/transfer-line/create",
+    "permissions": [
+      "mes:wm-transfer:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferLineController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/transfer-line/update",
+    "permissions": [
+      "mes:wm-transfer:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferLineController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/transfer-line/delete",
+    "permissions": [
+      "mes:wm-transfer:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/transfer-line/get",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferLineController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/transfer-line/list",
+    "permissions": [
+      "mes:wm-transfer:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\transfer\\MesWmTransferLineController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/warehouse-area/create",
+    "permissions": [
+      "mes:wm-warehouse:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseAreaController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-area/update",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseAreaController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/warehouse-area/delete",
+    "permissions": [
+      "mes:wm-warehouse:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseAreaController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseAreaController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/page",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseAreaController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse-area/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseAreaController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/warehouse/create",
+    "permissions": [
+      "mes:wm-warehouse:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/warehouse/update",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/warehouse/delete",
+    "permissions": [
+      "mes:wm-warehouse:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse/page",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wm/warehouse-location/create",
+    "permissions": [
+      "mes:wm-warehouse:create"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseLocationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-location/update",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseLocationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/mes/wm/warehouse-location/delete",
+    "permissions": [
+      "mes:wm-warehouse:delete"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseLocationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseLocationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/page",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseLocationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wm/warehouse-location/simple-list",
+    "permissions": [],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseLocationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/mes/wm/warehouse-location/update-by-location-id",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wm\\warehouse\\MesWmWarehouseLocationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wms/approval/config/get",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wms\\approval\\WmsApprovalController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wms/approval/config/list",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wms\\approval\\WmsApprovalController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/mes/wms/approval/config/save",
+    "permissions": [
+      "mes:wm-warehouse:update"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wms\\approval\\WmsApprovalController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/mes/wms/approval/process-list",
+    "permissions": [
+      "mes:wm-warehouse:query"
+    ],
+    "file": "yudao-module-mes\\src\\main\\java\\cn\\iocoder\\yudao\\module\\mes\\controller\\admin\\wms\\approval\\WmsApprovalController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/ai-import/draft",
+    "permissions": [
+      "qc-report:template:ai-import"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\aiimport\\QcReportAiImportController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/instance/preview",
+    "permissions": [
+      "qc-report:instance:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/instance/generate",
+    "permissions": [
+      "qc-report:instance:create"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/instance/generate-from-qc",
+    "permissions": [
+      "qc-report:instance:generate"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/instance/get",
+    "permissions": [
+      "qc-report:instance:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/instance/snapshot",
+    "permissions": [
+      "qc-report:instance:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/instance/page",
+    "permissions": [
+      "qc-report:instance:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/instance/regenerate",
+    "permissions": [
+      "qc-report:instance:create"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/instance/pdf",
+    "permissions": [
+      "qc-report:instance:export"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/qc-report/instance/delete",
+    "permissions": [
+      "qc-report:instance:delete"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\instance\\QcReportInstanceController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/template/create",
+    "permissions": [
+      "qc-report:template:create"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\template\\QcReportTemplateController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/qc-report/template/update",
+    "permissions": [
+      "qc-report:template:update"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\template\\QcReportTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/qc-report/template/delete",
+    "permissions": [
+      "qc-report:template:delete"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\template\\QcReportTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/template/copy",
+    "permissions": [
+      "qc-report:template:create"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\template\\QcReportTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/template/get",
+    "permissions": [
+      "qc-report:template:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\template\\QcReportTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/template/page",
+    "permissions": [
+      "qc-report:template:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\template\\QcReportTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/template/selectable",
+    "permissions": [
+      "qc-report:template:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\template\\QcReportTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/template-version/create",
+    "permissions": [
+      "qc-report:template:update"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/qc-report/template-version/update",
+    "permissions": [
+      "qc-report:template:update"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/qc-report/template-version/delete",
+    "permissions": [
+      "qc-report:template:delete"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/template-version/publish",
+    "permissions": [
+      "qc-report:template:publish"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/template-version/rollback",
+    "permissions": [
+      "qc-report:template:publish"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/qc-report/template-version/disable",
+    "permissions": [
+      "qc-report:template:publish"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/template-version/get",
+    "permissions": [
+      "qc-report:template:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/template-version/list-by-template",
+    "permissions": [
+      "qc-report:template:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/qc-report/template-version/page",
+    "permissions": [
+      "qc-report:template:query"
+    ],
+    "file": "yudao-module-qcreport\\src\\main\\java\\cn\\iocoder\\yudao\\module\\qcreport\\controller\\admin\\version\\QcReportTemplateVersionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/supplier-apply/create",
+    "permissions": [
+      "srm:supplier-apply:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\apply\\SrmSupplierApplyController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/supplier-apply/update",
+    "permissions": [
+      "srm:supplier-apply:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\apply\\SrmSupplierApplyController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/supplier-apply/delete",
+    "permissions": [
+      "srm:supplier-apply:delete"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\apply\\SrmSupplierApplyController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-apply/get",
+    "permissions": [
+      "srm:supplier-apply:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\apply\\SrmSupplierApplyController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-apply/page",
+    "permissions": [
+      "srm:supplier-apply:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\apply\\SrmSupplierApplyController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/supplier-apply/submit",
+    "permissions": [
+      "srm:supplier-apply:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\apply\\SrmSupplierApplyController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-apply/approve-process-list",
+    "permissions": [
+      "srm:supplier-apply:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\apply\\SrmSupplierApplyController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/supplier-certificate/create",
+    "permissions": [
+      "srm:supplier-certificate:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\certificate\\SrmSupplierCertificateController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/supplier-certificate/update",
+    "permissions": [
+      "srm:supplier-certificate:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\certificate\\SrmSupplierCertificateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/supplier-certificate/delete",
+    "permissions": [
+      "srm:supplier-certificate:delete"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\certificate\\SrmSupplierCertificateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-certificate/page",
+    "permissions": [
+      "srm:supplier-certificate:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\certificate\\SrmSupplierCertificateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-certificate/list-by-supplier",
+    "permissions": [
+      "srm:supplier-certificate:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\certificate\\SrmSupplierCertificateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-certificate/expiring-list",
+    "permissions": [
+      "srm:supplier-certificate:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\certificate\\SrmSupplierCertificateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-certificate/get",
+    "permissions": [
+      "srm:supplier-certificate:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\certificate\\SrmSupplierCertificateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/supplier-evaluation/create",
+    "permissions": [
+      "srm:supplier-evaluation:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\evaluation\\SrmSupplierEvaluationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/supplier-evaluation/update",
+    "permissions": [
+      "srm:supplier-evaluation:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\evaluation\\SrmSupplierEvaluationController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/supplier-evaluation/delete",
+    "permissions": [
+      "srm:supplier-evaluation:delete"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\evaluation\\SrmSupplierEvaluationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-evaluation/get",
+    "permissions": [
+      "srm:supplier-evaluation:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\evaluation\\SrmSupplierEvaluationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-evaluation/page",
+    "permissions": [
+      "srm:supplier-evaluation:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\evaluation\\SrmSupplierEvaluationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/statistics/tender",
+    "permissions": [
+      "srm:statistics:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\statistics\\SrmStatisticsController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/supplier-category/assign",
+    "permissions": [
+      "srm:supplier:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierCategoryController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/supplier-category/remove",
+    "permissions": [
+      "srm:supplier:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierCategoryController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-category/list-by-supplier",
+    "permissions": [
+      "srm:supplier:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierCategoryController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/supplier-contact/create",
+    "permissions": [
+      "srm:supplier-contact:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierContactController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/supplier-contact/update",
+    "permissions": [
+      "srm:supplier-contact:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierContactController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/supplier-contact/delete",
+    "permissions": [
+      "srm:supplier-contact:delete"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierContactController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier-contact/list-by-supplier",
+    "permissions": [
+      "srm:supplier-contact:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierContactController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/supplier/create",
+    "permissions": [
+      "srm:supplier:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/supplier/update",
+    "permissions": [
+      "srm:supplier:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/supplier/delete",
+    "permissions": [
+      "srm:supplier:delete"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier/get",
+    "permissions": [
+      "srm:supplier:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier/page",
+    "permissions": [
+      "srm:supplier:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier/simple-list",
+    "permissions": [],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier/list",
+    "permissions": [],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier/export-excel",
+    "permissions": [
+      "srm:supplier:export"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/supplier/get-import-template",
+    "permissions": [
+      "srm:supplier:import"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/supplier/import-excel",
+    "permissions": [
+      "srm:supplier:import"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\supplier\\SrmSupplierController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/bid-award/create",
+    "permissions": [
+      "srm:bid-award:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidAwardController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/bid-award/get",
+    "permissions": [
+      "srm:bid-award:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidAwardController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/bid-award/get-by-project",
+    "permissions": [
+      "srm:bid-award:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidAwardController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/bid-award/delete",
+    "permissions": [
+      "srm:bid-award:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidAwardController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/bid-award/approve",
+    "permissions": [
+      "srm:bid-award:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidAwardController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/bid-award/generate-purchase-order/{id}",
+    "permissions": [
+      "srm:bid-award:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidAwardController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/bid-evaluation/create",
+    "permissions": [
+      "srm:bid-evaluation:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidEvaluationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/bid-evaluation/update",
+    "permissions": [
+      "srm:bid-evaluation:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidEvaluationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/bid-evaluation/list-by-project",
+    "permissions": [
+      "srm:bid-evaluation:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidEvaluationController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/bid-evaluation/calculate-ranking",
+    "permissions": [
+      "srm:bid-evaluation:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidEvaluationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/bid-evaluation/bid-open/create",
+    "permissions": [
+      "srm:bid-open:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidEvaluationController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/bid-evaluation/bid-open/get",
+    "permissions": [
+      "srm:bid-open:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmBidEvaluationController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/tender-bid/create",
+    "permissions": [
+      "srm:tender-bid:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderBidController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/tender-bid/get",
+    "permissions": [
+      "srm:tender-bid:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderBidController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/tender-bid/list-by-project",
+    "permissions": [
+      "srm:tender-bid:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderBidController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-bid/withdraw",
+    "permissions": [
+      "srm:tender-bid:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderBidController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-bid/update-total",
+    "permissions": [
+      "srm:tender-bid:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderBidController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/tender-bid/quote/create",
+    "permissions": [
+      "srm:supplier-quote:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderBidController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-bid/quote/update",
+    "permissions": [
+      "srm:supplier-quote:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderBidController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/tender-bid/quote/list-by-bid",
+    "permissions": [
+      "srm:supplier-quote:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderBidController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/tender-config/get",
+    "permissions": [
+      "srm:tender-config:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderConfigController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-config/save",
+    "permissions": [
+      "srm:tender-config:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/tender-project/create",
+    "permissions": [
+      "srm:tender-project:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/update",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/tender-project/delete",
+    "permissions": [
+      "srm:tender-project:delete"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/tender-project/get",
+    "permissions": [
+      "srm:tender-project:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/tender-project/page",
+    "permissions": [
+      "srm:tender-project:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/publish",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/close",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/start-bidding",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/start-evaluation",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/update-info",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/start-price-comparing",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/confirm",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/srm/tender-project/material/create",
+    "permissions": [
+      "srm:tender-project:create"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/srm/tender-project/material/update",
+    "permissions": [
+      "srm:tender-project:update"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/srm/tender-project/material/delete",
+    "permissions": [
+      "srm:tender-project:delete"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/srm/tender-project/material/list",
+    "permissions": [
+      "srm:tender-project:query"
+    ],
+    "file": "yudao-module-srm\\src\\main\\java\\cn\\iocoder\\yudao\\module\\srm\\controller\\admin\\tender\\SrmTenderProjectController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/auth/login",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/auth/logout",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/auth/refresh-token",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/auth/get-permission-info",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/auth/register",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/auth/sms-login",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/auth/send-sms-code",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/auth/reset-password",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/auth/social-auth-redirect",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/auth/social-login",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\auth\\AuthController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/captcha/get",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\captcha\\CaptchaController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/captcha/check",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\captcha\\CaptchaController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/company-config/get",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\companyconfig\\SystemCompanyConfigController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/company-config/save",
+    "permissions": [
+      "system:company-config:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\companyconfig\\SystemCompanyConfigController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/database/backup",
+    "permissions": [
+      "system:database:backup"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\database\\DatabaseBackupController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/dept/create",
+    "permissions": [
+      "system:dept:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/dept/update",
+    "permissions": [
+      "system:dept:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/dept/delete",
+    "permissions": [
+      "system:dept:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/dept/delete-list",
+    "permissions": [
+      "system:dept:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dept/list",
+    "permissions": [
+      "system:dept:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dept/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dept/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dept/get",
+    "permissions": [
+      "system:dept:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dept/get-import-template",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/dept/import",
+    "permissions": [
+      "system:dept:import"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\DeptController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/post/create",
+    "permissions": [
+      "system:post:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/post/update",
+    "permissions": [
+      "system:post:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/post/delete",
+    "permissions": [
+      "system:post:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/post/delete-list",
+    "permissions": [
+      "system:post:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/post/get",
+    "permissions": [
+      "system:post:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/post/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/post/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/post/page",
+    "permissions": [
+      "system:post:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/post/export-excel",
+    "permissions": [
+      "system:post:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/post/get-import-template",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/post/import",
+    "permissions": [
+      "system:post:import"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dept\\PostController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/dict-data/create",
+    "permissions": [
+      "system:dict:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/dict-data/update",
+    "permissions": [
+      "system:dict:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/dict-data/delete",
+    "permissions": [
+      "system:dict:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/dict-data/delete-list",
+    "permissions": [
+      "system:dict:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-data/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-data/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-data/page",
+    "permissions": [
+      "system:dict:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-data/get",
+    "permissions": [
+      "system:dict:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-data/export-excel",
+    "permissions": [
+      "system:dict:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictDataController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/dict-type/create",
+    "permissions": [
+      "system:dict:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/dict-type/update",
+    "permissions": [
+      "system:dict:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/dict-type/delete",
+    "permissions": [
+      "system:dict:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/dict-type/delete-list",
+    "permissions": [
+      "system:dict:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-type/page",
+    "permissions": [
+      "system:dict:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-type/get",
+    "permissions": [
+      "system:dict:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-type/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-type/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-type/export-excel",
+    "permissions": [
+      "system:dict:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\dict\\DictTypeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/area/tree",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\ip\\AreaController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/area/get-by-ip",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\ip\\AreaController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/login-log/get",
+    "permissions": [
+      "system:login-log:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\logger\\LoginLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/login-log/page",
+    "permissions": [
+      "system:login-log:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\logger\\LoginLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/login-log/export-excel",
+    "permissions": [
+      "system:login-log:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\logger\\LoginLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/operate-log/get",
+    "permissions": [
+      "system:operate-log:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\logger\\OperateLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/operate-log/page",
+    "permissions": [
+      "system:operate-log:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\logger\\OperateLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/operate-log/export-excel",
+    "permissions": [
+      "system:operate-log:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\logger\\OperateLogController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/mail-account/create",
+    "permissions": [
+      "system:mail-account:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailAccountController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/mail-account/update",
+    "permissions": [
+      "system:mail-account:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailAccountController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/mail-account/delete",
+    "permissions": [
+      "system:mail-account:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailAccountController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/mail-account/delete-list",
+    "permissions": [
+      "system:mail-account:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-account/get",
+    "permissions": [
+      "system:mail-account:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-account/page",
+    "permissions": [
+      "system:mail-account:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-account/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-account/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailAccountController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-log/page",
+    "permissions": [
+      "system:mail-log:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-log/get",
+    "permissions": [
+      "system:mail-log:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailLogController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/mail-template/create",
+    "permissions": [
+      "system:mail-template:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/mail-template/update",
+    "permissions": [
+      "system:mail-template:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/mail-template/delete",
+    "permissions": [
+      "system:mail-template:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/mail-template/delete-list",
+    "permissions": [
+      "system:mail-template:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-template/get",
+    "permissions": [
+      "system:mail-template:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-template/page",
+    "permissions": [
+      "system:mail-template:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-template/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/mail-template/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/mail-template/send-mail",
+    "permissions": [
+      "system:mail-template:send-mail"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\mail\\MailTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/notice/create",
+    "permissions": [
+      "system:notice:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notice\\NoticeController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/notice/update",
+    "permissions": [
+      "system:notice:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notice\\NoticeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/notice/delete",
+    "permissions": [
+      "system:notice:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notice\\NoticeController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/notice/delete-list",
+    "permissions": [
+      "system:notice:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notice\\NoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notice/page",
+    "permissions": [
+      "system:notice:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notice\\NoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notice/get",
+    "permissions": [
+      "system:notice:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notice\\NoticeController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/notice/push",
+    "permissions": [
+      "system:notice:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notice\\NoticeController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-message/get",
+    "permissions": [
+      "system:notify-message:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-message/page",
+    "permissions": [
+      "system:notify-message:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-message/my-page",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyMessageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/notify-message/update-read",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyMessageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/notify-message/update-all-read",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-message/get-unread-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyMessageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-message/get-unread-count",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyMessageController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/notify-template/create",
+    "permissions": [
+      "system:notify-template:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/notify-template/update",
+    "permissions": [
+      "system:notify-template:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/notify-template/delete",
+    "permissions": [
+      "system:notify-template:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/notify-template/delete-list",
+    "permissions": [
+      "system:notify-template:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-template/get",
+    "permissions": [
+      "system:notify-template:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-template/page",
+    "permissions": [
+      "system:notify-template:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-template/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/notify-template/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/notify-template/send-notify",
+    "permissions": [
+      "system:notify-template:send-notify"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\notify\\NotifyTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/oauth2-client/create",
+    "permissions": [
+      "system:oauth2-client:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2ClientController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/oauth2-client/update",
+    "permissions": [
+      "system:oauth2-client:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2ClientController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/oauth2-client/delete",
+    "permissions": [
+      "system:oauth2-client:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2ClientController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/oauth2-client/delete-list",
+    "permissions": [
+      "system:oauth2-client:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2ClientController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/oauth2-client/get",
+    "permissions": [
+      "system:oauth2-client:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2ClientController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/oauth2-client/page",
+    "permissions": [
+      "system:oauth2-client:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2ClientController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/oauth2/token",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2OpenController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/oauth2/token",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2OpenController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/oauth2/check-token",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2OpenController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/oauth2/authorize",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2OpenController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/oauth2/authorize",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2OpenController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/oauth2-token/page",
+    "permissions": [
+      "system:oauth2-token:page"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2TokenController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/oauth2-token/delete",
+    "permissions": [
+      "system:oauth2-token:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2TokenController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/oauth2-token/delete-list",
+    "permissions": [
+      "system:oauth2-token:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2TokenController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/oauth2/user/get",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2UserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/oauth2/user/update",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\oauth2\\OAuth2UserController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/menu/create",
+    "permissions": [
+      "system:menu:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\MenuController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/menu/update",
+    "permissions": [
+      "system:menu:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\MenuController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/menu/delete",
+    "permissions": [
+      "system:menu:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\MenuController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/menu/delete-list",
+    "permissions": [
+      "system:menu:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\MenuController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/menu/list",
+    "permissions": [
+      "system:menu:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\MenuController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/menu/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\MenuController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/menu/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\MenuController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/menu/get",
+    "permissions": [
+      "system:menu:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\MenuController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/permission/list-role-menus",
+    "permissions": [
+      "system:permission:assign-role-menu"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\PermissionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/permission/assign-role-menu",
+    "permissions": [
+      "system:permission:assign-role-menu"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\PermissionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/permission/assign-role-data-scope",
+    "permissions": [
+      "system:permission:assign-role-data-scope"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\PermissionController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/permission/list-user-roles",
+    "permissions": [
+      "system:permission:assign-user-role"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\PermissionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/permission/assign-user-role",
+    "permissions": [
+      "system:permission:assign-user-role"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\PermissionController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/role/create",
+    "permissions": [
+      "system:role:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/role/update",
+    "permissions": [
+      "system:role:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/role/delete",
+    "permissions": [
+      "system:role:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/role/delete-list",
+    "permissions": [
+      "system:role:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/role/get",
+    "permissions": [
+      "system:role:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/role/page",
+    "permissions": [
+      "system:role:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/role/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/role/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/role/export-excel",
+    "permissions": [
+      "system:role:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\permission\\RoleController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/sms/callback/aliyun",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsCallbackController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/sms/callback/tencent",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsCallbackController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/sms/callback/huawei",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsCallbackController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/sms/callback/qiniu",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsCallbackController.java"
+  },
+  {
+    "method": "POST",
+    "url": "system/sms-channel/create",
+    "permissions": [
+      "system:sms-channel:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsChannelController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "system/sms-channel/update",
+    "permissions": [
+      "system:sms-channel:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsChannelController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "system/sms-channel/delete",
+    "permissions": [
+      "system:sms-channel:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsChannelController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "system/sms-channel/delete-list",
+    "permissions": [
+      "system:sms-channel:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsChannelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "system/sms-channel/get",
+    "permissions": [
+      "system:sms-channel:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsChannelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "system/sms-channel/page",
+    "permissions": [
+      "system:sms-channel:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsChannelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "system/sms-channel/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsChannelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "system/sms-channel/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsChannelController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/sms-log/page",
+    "permissions": [
+      "system:sms-log:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/sms-log/get",
+    "permissions": [
+      "system:sms-log:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsLogController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/sms-log/export-excel",
+    "permissions": [
+      "system:sms-log:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsLogController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/sms-template/create",
+    "permissions": [
+      "system:sms-template:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/sms-template/update",
+    "permissions": [
+      "system:sms-template:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/sms-template/delete",
+    "permissions": [
+      "system:sms-template:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/sms-template/delete-list",
+    "permissions": [
+      "system:sms-template:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/sms-template/get",
+    "permissions": [
+      "system:sms-template:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/sms-template/page",
+    "permissions": [
+      "system:sms-template:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/sms-template/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/sms-template/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/sms-template/export-excel",
+    "permissions": [
+      "system:sms-template:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/sms-template/send-sms",
+    "permissions": [
+      "system:sms-template:send-sms"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\sms\\SmsTemplateController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/social-client/create",
+    "permissions": [
+      "system:social-client:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialClientController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/social-client/update",
+    "permissions": [
+      "system:social-client:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialClientController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/social-client/delete",
+    "permissions": [
+      "system:social-client:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialClientController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/social-client/delete-list",
+    "permissions": [
+      "system:social-client:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialClientController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/social-client/get",
+    "permissions": [
+      "system:social-client:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialClientController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/social-client/page",
+    "permissions": [
+      "system:social-client:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialClientController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/social-user/bind",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialUserController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/social-user/unbind",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/social-user/get-bind-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/social-user/get",
+    "permissions": [
+      "system:social-user:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/social-user/page",
+    "permissions": [
+      "system:social-user:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\socail\\SocialUserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/storage-attachment/list",
+    "permissions": [
+      "system:storage-attachment:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\storage\\SystemStorageAttachmentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/storage-attachment/bind",
+    "permissions": [
+      "system:storage-attachment:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\storage\\SystemStorageAttachmentController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/storage-attachment/delete",
+    "permissions": [
+      "system:storage-attachment:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\storage\\SystemStorageAttachmentController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/storage-blob/upload",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\storage\\SystemStorageBlobController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/storage-blob/public-upload",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\storage\\SystemStorageBlobController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/storage-blob/preview/{fileName}",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\storage\\SystemStorageBlobController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/storage-blob/download/{fileName}",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\storage\\SystemStorageBlobController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant/get-id-by-name",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant/get-by-website",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/tenant/create",
+    "permissions": [
+      "system:tenant:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/tenant/update",
+    "permissions": [
+      "system:tenant:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/tenant/delete",
+    "permissions": [
+      "system:tenant:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/tenant/delete-list",
+    "permissions": [
+      "system:tenant:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant/get",
+    "permissions": [
+      "system:tenant:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant/page",
+    "permissions": [
+      "system:tenant:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant/export-excel",
+    "permissions": [
+      "system:tenant:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/tenant-package/create",
+    "permissions": [
+      "system:tenant-package:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantPackageController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/tenant-package/update",
+    "permissions": [
+      "system:tenant-package:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantPackageController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/tenant-package/delete",
+    "permissions": [
+      "system:tenant-package:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantPackageController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/tenant-package/delete-list",
+    "permissions": [
+      "system:tenant-package:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantPackageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant-package/get",
+    "permissions": [
+      "system:tenant-package:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantPackageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant-package/page",
+    "permissions": [
+      "system:tenant-package:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantPackageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant-package/get-simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantPackageController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant-package/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\tenant\\TenantPackageController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/user/create",
+    "permissions": [
+      "system:user:create"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/user/update",
+    "permissions": [
+      "system:user:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/user/delete",
+    "permissions": [
+      "system:user:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "DELETE",
+    "url": "/system/user/delete-list",
+    "permissions": [
+      "system:user:delete"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/user/update-password",
+    "permissions": [
+      "system:user:update-password"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/user/update-status",
+    "permissions": [
+      "system:user:update"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/page",
+    "permissions": [
+      "system:user:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/list",
+    "permissions": [
+      "system:user:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/list-all-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/simple-list",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/list-by-role-code",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/get",
+    "permissions": [
+      "system:user:query"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/export-excel",
+    "permissions": [
+      "system:user:export"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/get-import-template",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "POST",
+    "url": "/system/user/import",
+    "permissions": [
+      "system:user:import"
+    ],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/get-simple",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/list-by-nickname",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/user/profile/get",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserProfileController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/user/profile/update",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserProfileController.java"
+  },
+  {
+    "method": "PUT",
+    "url": "/system/user/profile/update-password",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\admin\\user\\UserProfileController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/dict-data/type",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\app\\dict\\AppDictDataController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/area/tree",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\app\\ip\\AppAreaController.java"
+  },
+  {
+    "method": "GET",
+    "url": "/system/tenant/get-by-website",
+    "permissions": [],
+    "file": "yudao-module-system\\src\\main\\java\\cn\\iocoder\\yudao\\module\\system\\controller\\app\\tenant\\AppTenantController.java"
+  }
+]
\ No newline at end of file
diff --git a/scripts/permission-fix-plan.json b/scripts/permission-fix-plan.json
new file mode 100644
index 0000000..c72e1c8
--- /dev/null
+++ b/scripts/permission-fix-plan.json
@@ -0,0 +1,565 @@
+{
+  "aliases": [
+    [
+      "mdm:unit-measure:import",
+      "mdm:unit:import"
+    ],
+    [
+      "mdm:unit-measure:export",
+      "mdm:unit:export"
+    ],
+    [
+      "mes:pd:parameter:create",
+      "mes:pd-process-param:create"
+    ],
+    [
+      "mes:pd:template:create",
+      "mes:pd-process-param-template:create"
+    ],
+    [
+      "mes:pd:parameter:update",
+      "mes:pd-process-param:update"
+    ],
+    [
+      "mes:pd:template:update",
+      "mes:pd-process-param-template:update"
+    ],
+    [
+      "mes:pd:parameter:delete",
+      "mes:pd-process-param:delete"
+    ],
+    [
+      "mes:pd:template:delete",
+      "mes:pd-process-param-template:delete"
+    ],
+    [
+      "mes:pd:parameter:export",
+      "mes:pd-process-param:export"
+    ],
+    [
+      "mes:pd:template:export",
+      "mes:pd-process-param-template:export"
+    ],
+    [
+      "mes:wm-outsource-issue:execute",
+      "mes:wm-outsource-issue:finish"
+    ],
+    [
+      "mes:wm-return-vendor:update-status",
+      "mes:wm-return-vendor:finish"
+    ],
+    [
+      "mes:wm-material-stock:move",
+      "mes:wm-material-stock:update"
+    ],
+    [
+      "mes:pd-project:archive",
+      "mes:pd-project:update"
+    ]
+  ],
+  "desired": [
+    {
+      "key": "bi:dashboard:query",
+      "parent": 1063007,
+      "name": "鍥捐〃閰嶇疆-鏌ヨ"
+    },
+    {
+      "key": "bpm:oa-notice:query",
+      "parent": 602608,
+      "name": "閫氱煡鍏憡-鏌ヨ"
+    },
+    {
+      "key": "crm:invoice:query",
+      "parent": 1063093,
+      "name": "寮�绁ㄧ鐞�-鏌ヨ"
+    },
+    {
+      "key": "crm:sale-quotation:query",
+      "parent": 602512,
+      "name": "閿�鍞姤浠�-鏌ヨ"
+    },
+    {
+      "key": "crm:sale-quotation:export",
+      "parent": 602512,
+      "name": "閿�鍞姤浠�-瀵煎嚭"
+    },
+    {
+      "key": "crm:sale-quotation:convert-contract",
+      "parent": 602512,
+      "name": "閿�鍞姤浠�-杞悎鍚�"
+    },
+    {
+      "key": "erp:purchase-order:import",
+      "parent": 2666,
+      "name": "閲囪喘璁㈠崟-瀵煎叆"
+    },
+    {
+      "key": "erp:purchase-request:query",
+      "parent": 602498,
+      "name": "閲囪喘鐢宠-鏌ヨ"
+    },
+    {
+      "key": "erp:purchase-request:submit",
+      "parent": 602498,
+      "name": "閲囪喘鐢宠-鎻愪氦"
+    },
+    {
+      "key": "erp:purchase-request:generate-order",
+      "parent": 602498,
+      "name": "閲囪喘鐢宠-鐢熸垚璁㈠崟"
+    },
+    {
+      "key": "erp:sale-order:cancel",
+      "parent": 2638,
+      "name": "閿�鍞鍗�-鎾ら攢"
+    },
+    {
+      "key": "erp:sale-order:enable",
+      "parent": 2638,
+      "name": "閿�鍞鍗�-鍚敤"
+    },
+    {
+      "key": "erp:sale-order:import",
+      "parent": 2638,
+      "name": "閿�鍞鍗�-瀵煎叆"
+    },
+    {
+      "key": "hrm:leave:export",
+      "parent": 6003,
+      "name": "璇峰亣鐢宠-瀵煎嚭"
+    },
+    {
+      "key": "hrm:overtime:query",
+      "parent": 1065211,
+      "name": "鍔犵彮鐢宠-鏌ヨ"
+    },
+    {
+      "key": "hrm:resignation:query",
+      "parent": 6005,
+      "name": "绂昏亴鐢宠-鏌ヨ"
+    },
+    {
+      "key": "hrm:resignation:export",
+      "parent": 6005,
+      "name": "绂昏亴鐢宠-瀵煎嚭"
+    },
+    {
+      "key": "hrm:transfer:query",
+      "parent": 6004,
+      "name": "璋冨矖鐢宠-鏌ヨ"
+    },
+    {
+      "key": "hrm:transfer:export",
+      "parent": 6004,
+      "name": "璋冨矖鐢宠-瀵煎嚭"
+    },
+    {
+      "key": "hrm:attendance-exception:update",
+      "parent": 6012,
+      "name": "鑰冨嫟寮傚父-缂栬緫"
+    },
+    {
+      "key": "hrm:attendance-exception:delete",
+      "parent": 6012,
+      "name": "鑰冨嫟寮傚父-鍒犻櫎"
+    },
+    {
+      "key": "hrm:attendance-exception:query",
+      "parent": 6012,
+      "name": "鑰冨嫟寮傚父-鏌ヨ"
+    },
+    {
+      "key": "hrm:attendance-holiday:query",
+      "parent": 6014,
+      "name": "鑺傚亣鏃ラ厤缃�-鏌ヨ"
+    },
+    {
+      "key": "hrm:attendance-record:query",
+      "parent": 6011,
+      "name": "鑰冨嫟璁板綍-鏌ヨ"
+    },
+    {
+      "key": "hrm:attendance-rule:query",
+      "parent": 6013,
+      "name": "鑰冨嫟瑙勫垯-鏌ヨ"
+    },
+    {
+      "key": "hrm:attendance-summary:query",
+      "parent": 6015,
+      "name": "鑰冨嫟缁熻-鏌ヨ"
+    },
+    {
+      "key": "hrm:employee-social-security:query",
+      "parent": 6023,
+      "name": "鍛樺伐绀句繚鍏Н閲戞。妗�-鏌ヨ"
+    },
+    {
+      "key": "hrm:salary-calculation:query",
+      "parent": 6021,
+      "name": "钖叕鏍哥畻-鏌ヨ"
+    },
+    {
+      "key": "hrm:salary-calculation:delete",
+      "parent": 6021,
+      "name": "钖叕鏍哥畻-鍒犻櫎"
+    },
+    {
+      "key": "hrm:salary-calculation:save",
+      "parent": 6021,
+      "name": "钖叕鏍哥畻-淇濆瓨"
+    },
+    {
+      "key": "hrm:salary-payment:query",
+      "parent": 6022,
+      "name": "钖祫鍙戞斁-鏌ヨ"
+    },
+    {
+      "key": "hrm:salary-payment:generate",
+      "parent": 6022,
+      "name": "钖祫鍙戞斁-鐢熸垚"
+    },
+    {
+      "key": "hrm:salary-payment:delete",
+      "parent": 6022,
+      "name": "钖祫鍙戞斁-鍒犻櫎"
+    },
+    {
+      "key": "hrm:social-security-scheme:query",
+      "parent": 602445,
+      "name": "绀句繚鍏Н閲戞柟妗�-鏌ヨ"
+    },
+    {
+      "key": "hrm:tax-rate-config:query",
+      "parent": 6024,
+      "name": "涓◣绋庣巼閰嶇疆-鏌ヨ"
+    },
+    {
+      "key": "mes:dv-metering:import",
+      "parent": 5380,
+      "name": "璁¢噺鍣ㄥ叿-瀵煎叆"
+    },
+    {
+      "key": "mes:md-workshop:export",
+      "parent": 5160,
+      "name": "杞﹂棿璁剧疆-瀵煎嚭"
+    },
+    {
+      "key": "mes:pd-archive:create",
+      "parent": 602578,
+      "name": "璁捐褰掓。-鏂板"
+    },
+    {
+      "key": "mes:pd-document:create",
+      "parent": 602572,
+      "name": "璁捐椤圭洰-鏂板"
+    },
+    {
+      "key": "mes:pd-document:update",
+      "parent": 602572,
+      "name": "璁捐椤圭洰-缂栬緫"
+    },
+    {
+      "key": "mes:pd-document:delete",
+      "parent": 602572,
+      "name": "璁捐椤圭洰-鍒犻櫎"
+    },
+    {
+      "key": "mes:pd-document:query",
+      "parent": 602572,
+      "name": "璁捐椤圭洰-鏌ヨ"
+    },
+    {
+      "key": "mes:pd-document:export",
+      "parent": 602572,
+      "name": "璁捐椤圭洰-瀵煎嚭"
+    },
+    {
+      "key": "mes:pd-process-param:query",
+      "parent": 602474,
+      "name": "鍩虹鍙傛暟-鏌ヨ"
+    },
+    {
+      "key": "mes:pd-process-param-template:query",
+      "parent": 602475,
+      "name": "鍙傛暟妯℃澘-鏌ヨ"
+    },
+    {
+      "key": "mes:pro-mps:query",
+      "parent": 602504,
+      "name": "鐢熶骇璁″垝-鏌ヨ"
+    },
+    {
+      "key": "mes:qc-ipqc:finish",
+      "parent": 5650,
+      "name": "杩囩▼妫�楠�-瀹屾垚"
+    },
+    {
+      "key": "mes:qc-iqc:finish",
+      "parent": 5640,
+      "name": "鏉ユ枡妫�楠�-瀹屾垚"
+    },
+    {
+      "key": "mes:qc-oqc:finish",
+      "parent": 5660,
+      "name": "鍑鸿揣妫�楠�-瀹屾垚"
+    },
+    {
+      "key": "mes:qc-rqc:finish",
+      "parent": 5670,
+      "name": "閫�璐ф楠�-瀹屾垚"
+    },
+    {
+      "key": "mes:wm-stock-taking-task:finish",
+      "parent": 5957,
+      "name": "鐩樼偣浠诲姟-瀹屾垚"
+    },
+    {
+      "key": "srm:tender-config:query",
+      "parent": 602545,
+      "name": "鎷涙姇鏍囩鐞�-鏌ヨ"
+    },
+    {
+      "key": "srm:tender-config:update",
+      "parent": 602545,
+      "name": "鎷涙姇鏍囩鐞�-缂栬緫"
+    },
+    {
+      "key": "hrm:employee-contract:import",
+      "parent": 6006,
+      "name": "鍛樺伐鍚堝悓-瀵煎叆"
+    }
+  ],
+  "queryKeys": [
+    "bi:dashboard:query",
+    "bpm:oa-notice:query",
+    "crm:invoice:query",
+    "crm:sale-quotation:query",
+    "erp:purchase-request:query",
+    "hrm:overtime:query",
+    "hrm:resignation:query",
+    "hrm:transfer:query",
+    "hrm:attendance-exception:query",
+    "hrm:attendance-holiday:query",
+    "hrm:attendance-record:query",
+    "hrm:attendance-rule:query",
+    "hrm:attendance-summary:query",
+    "hrm:employee-social-security:query",
+    "hrm:salary-calculation:query",
+    "hrm:salary-payment:query",
+    "hrm:social-security-scheme:query",
+    "hrm:tax-rate-config:query",
+    "mes:pd-document:query",
+    "mes:pd-process-param:query",
+    "mes:pd-process-param-template:query",
+    "mes:pro-mps:query",
+    "srm:tender-config:query"
+  ],
+  "allKeys": [
+    "mdm:unit:import",
+    "mdm:unit:export",
+    "mes:pd-process-param:create",
+    "mes:pd-process-param-template:create",
+    "mes:pd-process-param:update",
+    "mes:pd-process-param-template:update",
+    "mes:pd-process-param:delete",
+    "mes:pd-process-param-template:delete",
+    "mes:pd-process-param:export",
+    "mes:pd-process-param-template:export",
+    "mes:wm-outsource-issue:finish",
+    "mes:wm-return-vendor:finish",
+    "mes:wm-material-stock:update",
+    "mes:pd-project:update",
+    "bi:dashboard:query",
+    "bpm:oa-notice:query",
+    "crm:invoice:query",
+    "crm:sale-quotation:query",
+    "crm:sale-quotation:export",
+    "crm:sale-quotation:convert-contract",
+    "erp:purchase-order:import",
+    "erp:purchase-request:query",
+    "erp:purchase-request:submit",
+    "erp:purchase-request:generate-order",
+    "erp:sale-order:cancel",
+    "erp:sale-order:enable",
+    "erp:sale-order:import",
+    "hrm:leave:export",
+    "hrm:overtime:query",
+    "hrm:resignation:query",
+    "hrm:resignation:export",
+    "hrm:transfer:query",
+    "hrm:transfer:export",
+    "hrm:attendance-exception:update",
+    "hrm:attendance-exception:delete",
+    "hrm:attendance-exception:query",
+    "hrm:attendance-holiday:query",
+    "hrm:attendance-record:query",
+    "hrm:attendance-rule:query",
+    "hrm:attendance-summary:query",
+    "hrm:employee-social-security:query",
+    "hrm:salary-calculation:query",
+    "hrm:salary-calculation:delete",
+    "hrm:salary-calculation:save",
+    "hrm:salary-payment:query",
+    "hrm:salary-payment:generate",
+    "hrm:salary-payment:delete",
+    "hrm:social-security-scheme:query",
+    "hrm:tax-rate-config:query",
+    "mes:dv-metering:import",
+    "mes:md-workshop:export",
+    "mes:pd-archive:create",
+    "mes:pd-document:create",
+    "mes:pd-document:update",
+    "mes:pd-document:delete",
+    "mes:pd-document:query",
+    "mes:pd-document:export",
+    "mes:pd-process-param:query",
+    "mes:pd-process-param-template:query",
+    "mes:pro-mps:query",
+    "mes:qc-ipqc:finish",
+    "mes:qc-iqc:finish",
+    "mes:qc-oqc:finish",
+    "mes:qc-rqc:finish",
+    "mes:wm-stock-taking-task:finish",
+    "srm:tender-config:query",
+    "srm:tender-config:update",
+    "hrm:employee-contract:import"
+  ],
+  "parents": [
+    {
+      "id": 2638,
+      "component": "erp/sale/order/index"
+    },
+    {
+      "id": 2666,
+      "component": "erp/purchase/order/index"
+    },
+    {
+      "id": 5160,
+      "component": "mes/md/workstation/workshop/index"
+    },
+    {
+      "id": 5380,
+      "component": "mes/dv/metering/index"
+    },
+    {
+      "id": 5640,
+      "component": "mes/qc/iqc/index"
+    },
+    {
+      "id": 5650,
+      "component": "mes/qc/ipqc/index"
+    },
+    {
+      "id": 5660,
+      "component": "mes/qc/oqc/index"
+    },
+    {
+      "id": 5670,
+      "component": "mes/qc/rqc/index"
+    },
+    {
+      "id": 5957,
+      "component": "wls/stocktaking/task/index"
+    },
+    {
+      "id": 6003,
+      "component": "hrm/leave/index"
+    },
+    {
+      "id": 6004,
+      "component": "hrm/transfer/index"
+    },
+    {
+      "id": 6005,
+      "component": "hrm/resignation/index"
+    },
+    {
+      "id": 6011,
+      "component": "hrm/attendance/record/index"
+    },
+    {
+      "id": 6012,
+      "component": "hrm/attendance/exception/index"
+    },
+    {
+      "id": 6013,
+      "component": "hrm/attendance/rule/index"
+    },
+    {
+      "id": 6014,
+      "component": "hrm/attendance/holiday/index"
+    },
+    {
+      "id": 6015,
+      "component": "hrm/attendance/summary/index"
+    },
+    {
+      "id": 6021,
+      "component": "hrm/salary/calculation/index"
+    },
+    {
+      "id": 6022,
+      "component": "hrm/salary/payment/index"
+    },
+    {
+      "id": 6023,
+      "component": "hrm/salary/employee-social-security/index"
+    },
+    {
+      "id": 6024,
+      "component": "hrm/salary/tax-rate-config/index"
+    },
+    {
+      "id": 602445,
+      "component": "hrm/salary/social-security-scheme/index"
+    },
+    {
+      "id": 602474,
+      "component": "mes/process-design/parameter/index"
+    },
+    {
+      "id": 602475,
+      "component": "mes/process-design/template/index"
+    },
+    {
+      "id": 602498,
+      "component": "erp/purchase/request/index"
+    },
+    {
+      "id": 602504,
+      "component": "mes/pro/mps/index"
+    },
+    {
+      "id": 602512,
+      "component": "crm/saleQuotation/index"
+    },
+    {
+      "id": 602545,
+      "component": "srm/tender/index"
+    },
+    {
+      "id": 602572,
+      "component": "mes/pd/project/index"
+    },
+    {
+      "id": 602578,
+      "component": "mes/pd/archive/index"
+    },
+    {
+      "id": 602608,
+      "component": "bpm/oa/notice/index"
+    },
+    {
+      "id": 1063007,
+      "component": "bi/config/chart/index"
+    },
+    {
+      "id": 1063093,
+      "component": "crm/invoice/index"
+    },
+    {
+      "id": 1065211,
+      "component": "hrm/overtime/index"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/scripts/permission-menu-snapshot.json b/scripts/permission-menu-snapshot.json
new file mode 100644
index 0000000..e812d1d
--- /dev/null
+++ b/scripts/permission-menu-snapshot.json
@@ -0,0 +1 @@
+[{"id":1,"name":"绯荤粺绠$悊","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":2,"name":"鍩虹璁炬柦","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":5,"name":"OA 绀轰緥","permission":"","parent_id":1185,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":100,"name":"鐢ㄦ埛绠$悊","permission":"system:user:list","parent_id":1,"type":2,"component":"system/user/index","component_name":"SystemUser","status":0,"deleted":0},{"id":101,"name":"瑙掕壊绠$悊","permission":"","parent_id":1,"type":2,"component":"system/role/index","component_name":"SystemRole","status":0,"deleted":0},{"id":102,"name":"鑿滃崟绠$悊","permission":"","parent_id":1,"type":2,"component":"system/menu/index","component_name":"SystemMenu","status":0,"deleted":0},{"id":103,"name":"閮ㄩ棬绠$悊","permission":"","parent_id":1,"type":2,"component":"system/dept/index","component_name":"SystemDept","status":0,"deleted":0},{"id":104,"name":"宀椾綅绠$悊","permission":"","parent_id":1,"type":2,"component":"system/post/index","component_name":"SystemPost","status":0,"deleted":0},{"id":105,"name":"瀛楀吀绠$悊","permission":"","parent_id":1,"type":2,"component":"system/dict/index","component_name":"SystemDictType","status":0,"deleted":0},{"id":106,"name":"閰嶇疆绠$悊","permission":"","parent_id":2,"type":2,"component":"infra/config/index","component_name":"InfraConfig","status":0,"deleted":0},{"id":107,"name":"閫氱煡鍏憡","permission":"","parent_id":2739,"type":2,"component":"system/notice/index","component_name":"SystemNotice","status":0,"deleted":0},{"id":108,"name":"瀹¤鏃ュ織","permission":"","parent_id":1,"type":1,"component":"","component_name":null,"status":0,"deleted":0},{"id":109,"name":"浠ょ墝绠$悊","permission":"","parent_id":1261,"type":2,"component":"system/oauth2/token/index","component_name":"SystemTokenClient","status":0,"deleted":0},{"id":110,"name":"瀹氭椂浠诲姟","permission":"","parent_id":2,"type":2,"component":"infra/job/index","component_name":"InfraJob","status":0,"deleted":0},{"id":111,"name":"MySQL 鐩戞帶","permission":"","parent_id":2740,"type":2,"component":"infra/druid/index","component_name":"InfraDruid","status":0,"deleted":0},{"id":112,"name":"Java 鐩戞帶","permission":"","parent_id":2740,"type":2,"component":"infra/server/index","component_name":"InfraAdminServer","status":0,"deleted":0},{"id":113,"name":"Redis 鐩戞帶","permission":"","parent_id":2740,"type":2,"component":"infra/redis/index","component_name":"InfraRedis","status":0,"deleted":0},{"id":114,"name":"琛ㄥ崟鏋勫缓","permission":"infra:build:list","parent_id":2,"type":2,"component":"infra/build/index","component_name":"InfraBuild","status":0,"deleted":0},{"id":115,"name":"浠g爜鐢熸垚","permission":"infra:codegen:query","parent_id":2,"type":2,"component":"infra/codegen/index","component_name":"InfraCodegen","status":0,"deleted":0},{"id":116,"name":"API 鎺ュ彛","permission":"infra:swagger:list","parent_id":2,"type":2,"component":"infra/swagger/index","component_name":"InfraSwagger","status":0,"deleted":0},{"id":500,"name":"鎿嶄綔鏃ュ織","permission":"","parent_id":108,"type":2,"component":"system/operatelog/index","component_name":"SystemOperateLog","status":0,"deleted":0},{"id":501,"name":"鐧诲綍鏃ュ織","permission":"","parent_id":108,"type":2,"component":"system/loginlog/index","component_name":"SystemLoginLog","status":0,"deleted":0},{"id":1001,"name":"鐢ㄦ埛鏌ヨ","permission":"system:user:query","parent_id":100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1002,"name":"鐢ㄦ埛鏂板","permission":"system:user:create","parent_id":100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1003,"name":"鐢ㄦ埛淇敼","permission":"system:user:update","parent_id":100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1004,"name":"鐢ㄦ埛鍒犻櫎","permission":"system:user:delete","parent_id":100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1005,"name":"鐢ㄦ埛瀵煎嚭","permission":"system:user:export","parent_id":100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1006,"name":"鐢ㄦ埛瀵煎叆","permission":"system:user:import","parent_id":100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1007,"name":"閲嶇疆瀵嗙爜","permission":"system:user:update-password","parent_id":100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1008,"name":"瑙掕壊鏌ヨ","permission":"system:role:query","parent_id":101,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1009,"name":"瑙掕壊鏂板","permission":"system:role:create","parent_id":101,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1010,"name":"瑙掕壊淇敼","permission":"system:role:update","parent_id":101,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1011,"name":"瑙掕壊鍒犻櫎","permission":"system:role:delete","parent_id":101,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1012,"name":"瑙掕壊瀵煎嚭","permission":"system:role:export","parent_id":101,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1013,"name":"鑿滃崟鏌ヨ","permission":"system:menu:query","parent_id":102,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1014,"name":"鑿滃崟鏂板","permission":"system:menu:create","parent_id":102,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1015,"name":"鑿滃崟淇敼","permission":"system:menu:update","parent_id":102,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1016,"name":"鑿滃崟鍒犻櫎","permission":"system:menu:delete","parent_id":102,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1017,"name":"閮ㄩ棬鏌ヨ","permission":"system:dept:query","parent_id":103,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1018,"name":"閮ㄩ棬鏂板","permission":"system:dept:create","parent_id":103,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1019,"name":"閮ㄩ棬淇敼","permission":"system:dept:update","parent_id":103,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1020,"name":"閮ㄩ棬鍒犻櫎","permission":"system:dept:delete","parent_id":103,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1021,"name":"宀椾綅鏌ヨ","permission":"system:post:query","parent_id":104,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1022,"name":"宀椾綅鏂板","permission":"system:post:create","parent_id":104,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1023,"name":"宀椾綅淇敼","permission":"system:post:update","parent_id":104,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1024,"name":"宀椾綅鍒犻櫎","permission":"system:post:delete","parent_id":104,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1025,"name":"宀椾綅瀵煎嚭","permission":"system:post:export","parent_id":104,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1026,"name":"瀛楀吀鏌ヨ","permission":"system:dict:query","parent_id":105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1027,"name":"瀛楀吀鏂板","permission":"system:dict:create","parent_id":105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1028,"name":"瀛楀吀淇敼","permission":"system:dict:update","parent_id":105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1029,"name":"瀛楀吀鍒犻櫎","permission":"system:dict:delete","parent_id":105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1030,"name":"瀛楀吀瀵煎嚭","permission":"system:dict:export","parent_id":105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1031,"name":"閰嶇疆鏌ヨ","permission":"infra:config:query","parent_id":106,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1032,"name":"閰嶇疆鏂板","permission":"infra:config:create","parent_id":106,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1033,"name":"閰嶇疆淇敼","permission":"infra:config:update","parent_id":106,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1034,"name":"閰嶇疆鍒犻櫎","permission":"infra:config:delete","parent_id":106,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1035,"name":"閰嶇疆瀵煎嚭","permission":"infra:config:export","parent_id":106,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1036,"name":"鍏憡鏌ヨ","permission":"system:notice:query","parent_id":107,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1037,"name":"鍏憡鏂板","permission":"system:notice:create","parent_id":107,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1038,"name":"鍏憡淇敼","permission":"system:notice:update","parent_id":107,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1039,"name":"鍏憡鍒犻櫎","permission":"system:notice:delete","parent_id":107,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1040,"name":"鎿嶄綔鏌ヨ","permission":"system:operate-log:query","parent_id":500,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1042,"name":"鏃ュ織瀵煎嚭","permission":"system:operate-log:export","parent_id":500,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1043,"name":"鐧诲綍鏌ヨ","permission":"system:login-log:query","parent_id":501,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1045,"name":"鏃ュ織瀵煎嚭","permission":"system:login-log:export","parent_id":501,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1046,"name":"浠ょ墝鍒楄〃","permission":"system:oauth2-token:page","parent_id":109,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1048,"name":"浠ょ墝鍒犻櫎","permission":"system:oauth2-token:delete","parent_id":109,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1050,"name":"浠诲姟鏂板","permission":"infra:job:create","parent_id":110,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1051,"name":"浠诲姟淇敼","permission":"infra:job:update","parent_id":110,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1052,"name":"浠诲姟鍒犻櫎","permission":"infra:job:delete","parent_id":110,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1053,"name":"鐘舵�佷慨鏀�","permission":"infra:job:update","parent_id":110,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1054,"name":"浠诲姟瀵煎嚭","permission":"infra:job:export","parent_id":110,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1056,"name":"鐢熸垚淇敼","permission":"infra:codegen:update","parent_id":115,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1057,"name":"鐢熸垚鍒犻櫎","permission":"infra:codegen:delete","parent_id":115,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1058,"name":"瀵煎叆浠g爜","permission":"infra:codegen:create","parent_id":115,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1059,"name":"棰勮浠g爜","permission":"infra:codegen:preview","parent_id":115,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1060,"name":"鐢熸垚浠g爜","permission":"infra:codegen:download","parent_id":115,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063,"name":"璁剧疆瑙掕壊鑿滃崟鏉冮檺","permission":"system:permission:assign-role-menu","parent_id":101,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1064,"name":"璁剧疆瑙掕壊鏁版嵁鏉冮檺","permission":"system:permission:assign-role-data-scope","parent_id":101,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1065,"name":"璁剧疆鐢ㄦ埛瑙掕壊","permission":"system:permission:assign-user-role","parent_id":101,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1066,"name":"鑾峰緱 Redis 鐩戞帶淇℃伅","permission":"infra:redis:get-monitor-info","parent_id":113,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1067,"name":"鑾峰緱 Redis Key 鍒楄〃","permission":"infra:redis:get-key-list","parent_id":113,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1070,"name":"浠g爜鐢熸垚妗堜緥","permission":"","parent_id":2,"type":1,"component":"infra/testDemo/index","component_name":null,"status":0,"deleted":0},{"id":1075,"name":"浠诲姟瑙﹀彂","permission":"infra:job:trigger","parent_id":110,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1077,"name":"閾捐矾杩借釜","permission":"","parent_id":2740,"type":2,"component":"infra/skywalking/index","component_name":"InfraSkyWalking","status":0,"deleted":0},{"id":1078,"name":"璁块棶鏃ュ織","permission":"","parent_id":1083,"type":2,"component":"infra/apiAccessLog/index","component_name":"InfraApiAccessLog","status":0,"deleted":0},{"id":1082,"name":"鏃ュ織瀵煎嚭","permission":"infra:api-access-log:export","parent_id":1078,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1083,"name":"API 鏃ュ織","permission":"","parent_id":2,"type":2,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1084,"name":"閿欒鏃ュ織","permission":"infra:api-error-log:query","parent_id":1083,"type":2,"component":"infra/apiErrorLog/index","component_name":"InfraApiErrorLog","status":0,"deleted":0},{"id":1085,"name":"鏃ュ織澶勭悊","permission":"infra:api-error-log:update-status","parent_id":1084,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1086,"name":"鏃ュ織瀵煎嚭","permission":"infra:api-error-log:export","parent_id":1084,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1087,"name":"浠诲姟鏌ヨ","permission":"infra:job:query","parent_id":110,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1088,"name":"鏃ュ織鏌ヨ","permission":"infra:api-access-log:query","parent_id":1078,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1089,"name":"鏃ュ織鏌ヨ","permission":"infra:api-error-log:query","parent_id":1084,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1090,"name":"鏂囦欢鍒楄〃","permission":"","parent_id":1243,"type":2,"component":"infra/file/index","component_name":"InfraFile","status":0,"deleted":0},{"id":1091,"name":"鏂囦欢鏌ヨ","permission":"infra:file:query","parent_id":1090,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1092,"name":"鏂囦欢鍒犻櫎","permission":"infra:file:delete","parent_id":1090,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1093,"name":"鐭俊绠$悊","permission":"","parent_id":2739,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1094,"name":"鐭俊娓犻亾","permission":"","parent_id":1093,"type":2,"component":"system/sms/channel/index","component_name":"SystemSmsChannel","status":0,"deleted":0},{"id":1095,"name":"鐭俊娓犻亾鏌ヨ","permission":"system:sms-channel:query","parent_id":1094,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1096,"name":"鐭俊娓犻亾鍒涘缓","permission":"system:sms-channel:create","parent_id":1094,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1097,"name":"鐭俊娓犻亾鏇存柊","permission":"system:sms-channel:update","parent_id":1094,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1098,"name":"鐭俊娓犻亾鍒犻櫎","permission":"system:sms-channel:delete","parent_id":1094,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1100,"name":"鐭俊妯℃澘","permission":"","parent_id":1093,"type":2,"component":"system/sms/template/index","component_name":"SystemSmsTemplate","status":0,"deleted":0},{"id":1101,"name":"鐭俊妯℃澘鏌ヨ","permission":"system:sms-template:query","parent_id":1100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1102,"name":"鐭俊妯℃澘鍒涘缓","permission":"system:sms-template:create","parent_id":1100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1103,"name":"鐭俊妯℃澘鏇存柊","permission":"system:sms-template:update","parent_id":1100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1104,"name":"鐭俊妯℃澘鍒犻櫎","permission":"system:sms-template:delete","parent_id":1100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1105,"name":"鐭俊妯℃澘瀵煎嚭","permission":"system:sms-template:export","parent_id":1100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1106,"name":"鍙戦�佹祴璇曠煭淇�","permission":"system:sms-template:send-sms","parent_id":1100,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1107,"name":"鐭俊鏃ュ織","permission":"","parent_id":1093,"type":2,"component":"system/sms/log/index","component_name":"SystemSmsLog","status":0,"deleted":0},{"id":1108,"name":"鐭俊鏃ュ織鏌ヨ","permission":"system:sms-log:query","parent_id":1107,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1109,"name":"鐭俊鏃ュ織瀵煎嚭","permission":"system:sms-log:export","parent_id":1107,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1118,"name":"璇峰亣鏌ヨ","permission":"","parent_id":5,"type":2,"component":"bpm/oa/leave/index","component_name":"BpmOALeave","status":0,"deleted":0},{"id":1119,"name":"璇峰亣鐢宠鏌ヨ","permission":"bpm:oa-leave:query","parent_id":1118,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1120,"name":"璇峰亣鐢宠鍒涘缓","permission":"bpm:oa-leave:create","parent_id":1118,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1138,"name":"绉熸埛鍒楄〃","permission":"","parent_id":1224,"type":2,"component":"system/tenant/index","component_name":"SystemTenant","status":0,"deleted":0},{"id":1139,"name":"绉熸埛鏌ヨ","permission":"system:tenant:query","parent_id":1138,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1140,"name":"绉熸埛鍒涘缓","permission":"system:tenant:create","parent_id":1138,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1141,"name":"绉熸埛鏇存柊","permission":"system:tenant:update","parent_id":1138,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1142,"name":"绉熸埛鍒犻櫎","permission":"system:tenant:delete","parent_id":1138,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1143,"name":"绉熸埛瀵煎嚭","permission":"system:tenant:export","parent_id":1138,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1185,"name":"鍗忓悓鍔炲叕","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1186,"name":"娴佺▼绠$悊","permission":"","parent_id":1185,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1187,"name":"娴佺▼琛ㄥ崟","permission":"","parent_id":1186,"type":2,"component":"bpm/form/index","component_name":"BpmForm","status":0,"deleted":0},{"id":1188,"name":"琛ㄥ崟鏌ヨ","permission":"bpm:form:query","parent_id":1187,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1189,"name":"琛ㄥ崟鍒涘缓","permission":"bpm:form:create","parent_id":1187,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1190,"name":"琛ㄥ崟鏇存柊","permission":"bpm:form:update","parent_id":1187,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1191,"name":"琛ㄥ崟鍒犻櫎","permission":"bpm:form:delete","parent_id":1187,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1192,"name":"琛ㄥ崟瀵煎嚭","permission":"bpm:form:export","parent_id":1187,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1193,"name":"娴佺▼妯″瀷","permission":"","parent_id":1186,"type":2,"component":"bpm/model/index","component_name":"BpmModel","status":0,"deleted":0},{"id":1194,"name":"妯″瀷鏌ヨ","permission":"bpm:model:query","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1195,"name":"妯″瀷鍒涘缓","permission":"bpm:model:create","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1197,"name":"妯″瀷鏇存柊","permission":"bpm:model:update","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1198,"name":"妯″瀷鍒犻櫎","permission":"bpm:model:delete","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1199,"name":"妯″瀷鍙戝竷","permission":"bpm:model:deploy","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1200,"name":"瀹℃壒涓績","permission":"","parent_id":1185,"type":2,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1201,"name":"鎴戠殑娴佺▼","permission":"","parent_id":1200,"type":2,"component":"bpm/processInstance/index","component_name":"BpmProcessInstanceMy","status":0,"deleted":0},{"id":1202,"name":"娴佺▼瀹炰緥鐨勬煡璇�","permission":"bpm:process-instance:query","parent_id":1201,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1207,"name":"寰呭姙浠诲姟","permission":"","parent_id":1200,"type":2,"component":"bpm/task/todo/index","component_name":"BpmTodoTask","status":0,"deleted":0},{"id":1208,"name":"宸插姙浠诲姟","permission":"","parent_id":1200,"type":2,"component":"bpm/task/done/index","component_name":"BpmDoneTask","status":0,"deleted":0},{"id":1209,"name":"鐢ㄦ埛鍒嗙粍","permission":"","parent_id":1186,"type":2,"component":"bpm/group/index","component_name":"BpmUserGroup","status":0,"deleted":0},{"id":1210,"name":"鐢ㄦ埛缁勬煡璇�","permission":"bpm:user-group:query","parent_id":1209,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1211,"name":"鐢ㄦ埛缁勫垱寤�","permission":"bpm:user-group:create","parent_id":1209,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1212,"name":"鐢ㄦ埛缁勬洿鏂�","permission":"bpm:user-group:update","parent_id":1209,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1213,"name":"鐢ㄦ埛缁勫垹闄�","permission":"bpm:user-group:delete","parent_id":1209,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1215,"name":"娴佺▼瀹氫箟鏌ヨ","permission":"bpm:process-definition:query","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1216,"name":"娴佺▼浠诲姟鍒嗛厤瑙勫垯鏌ヨ","permission":"bpm:task-assign-rule:query","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1217,"name":"娴佺▼浠诲姟鍒嗛厤瑙勫垯鍒涘缓","permission":"bpm:task-assign-rule:create","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1218,"name":"娴佺▼浠诲姟鍒嗛厤瑙勫垯鏇存柊","permission":"bpm:task-assign-rule:update","parent_id":1193,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1219,"name":"娴佺▼瀹炰緥鐨勫垱寤�","permission":"bpm:process-instance:create","parent_id":1201,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1220,"name":"娴佺▼瀹炰緥鐨勫彇娑�","permission":"bpm:process-instance:cancel","parent_id":1201,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1221,"name":"娴佺▼浠诲姟鐨勬煡璇�","permission":"bpm:task:query","parent_id":1207,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1222,"name":"娴佺▼浠诲姟鐨勬洿鏂�","permission":"bpm:task:update","parent_id":1207,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1224,"name":"绉熸埛绠$悊","permission":"","parent_id":1,"type":2,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1225,"name":"绉熸埛濂楅","permission":"","parent_id":1224,"type":2,"component":"system/tenantPackage/index","component_name":"SystemTenantPackage","status":0,"deleted":0},{"id":1226,"name":"绉熸埛濂楅鏌ヨ","permission":"system:tenant-package:query","parent_id":1225,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1227,"name":"绉熸埛濂楅鍒涘缓","permission":"system:tenant-package:create","parent_id":1225,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1228,"name":"绉熸埛濂楅鏇存柊","permission":"system:tenant-package:update","parent_id":1225,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1229,"name":"绉熸埛濂楅鍒犻櫎","permission":"system:tenant-package:delete","parent_id":1225,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1237,"name":"鏂囦欢閰嶇疆","permission":"","parent_id":1243,"type":2,"component":"infra/fileConfig/index","component_name":"InfraFileConfig","status":0,"deleted":0},{"id":1238,"name":"鏂囦欢閰嶇疆鏌ヨ","permission":"infra:file-config:query","parent_id":1237,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1239,"name":"鏂囦欢閰嶇疆鍒涘缓","permission":"infra:file-config:create","parent_id":1237,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1240,"name":"鏂囦欢閰嶇疆鏇存柊","permission":"infra:file-config:update","parent_id":1237,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1241,"name":"鏂囦欢閰嶇疆鍒犻櫎","permission":"infra:file-config:delete","parent_id":1237,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1242,"name":"鏂囦欢閰嶇疆瀵煎嚭","permission":"infra:file-config:export","parent_id":1237,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1243,"name":"鏂囦欢绠$悊","permission":"","parent_id":2,"type":2,"component":null,"component_name":"","status":0,"deleted":0},{"id":1255,"name":"鏁版嵁婧愰厤缃�","permission":"","parent_id":2,"type":2,"component":"infra/dataSourceConfig/index","component_name":"InfraDataSourceConfig","status":0,"deleted":0},{"id":1256,"name":"鏁版嵁婧愰厤缃煡璇�","permission":"infra:data-source-config:query","parent_id":1255,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1257,"name":"鏁版嵁婧愰厤缃垱寤�","permission":"infra:data-source-config:create","parent_id":1255,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1258,"name":"鏁版嵁婧愰厤缃洿鏂�","permission":"infra:data-source-config:update","parent_id":1255,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1259,"name":"鏁版嵁婧愰厤缃垹闄�","permission":"infra:data-source-config:delete","parent_id":1255,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1260,"name":"鏁版嵁婧愰厤缃鍑�","permission":"infra:data-source-config:export","parent_id":1255,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1261,"name":"OAuth 2.0","permission":"","parent_id":1,"type":2,"component":null,"component_name":null,"status":1,"deleted":0},{"id":1263,"name":"搴旂敤绠$悊","permission":"","parent_id":1261,"type":2,"component":"system/oauth2/client/index","component_name":"SystemOAuth2Client","status":0,"deleted":0},{"id":1264,"name":"瀹㈡埛绔煡璇�","permission":"system:oauth2-client:query","parent_id":1263,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1265,"name":"瀹㈡埛绔垱寤�","permission":"system:oauth2-client:create","parent_id":1263,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1266,"name":"瀹㈡埛绔洿鏂�","permission":"system:oauth2-client:update","parent_id":1263,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1267,"name":"瀹㈡埛绔垹闄�","permission":"system:oauth2-client:delete","parent_id":1263,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1281,"name":"鎶ヨ〃绠$悊","permission":"","parent_id":0,"type":2,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1282,"name":"鎶ヨ〃璁捐鍣�","permission":"","parent_id":1281,"type":2,"component":"report/jmreport/index","component_name":"JimuReport","status":0,"deleted":0},{"id":2083,"name":"鍦板尯绠$悊","permission":"","parent_id":1,"type":2,"component":"system/area/index","component_name":"SystemArea","status":0,"deleted":0},{"id":2130,"name":"閭绠$悊","permission":"","parent_id":2739,"type":2,"component":null,"component_name":null,"status":0,"deleted":0},{"id":2131,"name":"閭璐﹀彿","permission":"","parent_id":2130,"type":2,"component":"system/mail/account/index","component_name":"SystemMailAccount","status":0,"deleted":0},{"id":2132,"name":"璐﹀彿鏌ヨ","permission":"system:mail-account:query","parent_id":2131,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2133,"name":"璐﹀彿鍒涘缓","permission":"system:mail-account:create","parent_id":2131,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2134,"name":"璐﹀彿鏇存柊","permission":"system:mail-account:update","parent_id":2131,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2135,"name":"璐﹀彿鍒犻櫎","permission":"system:mail-account:delete","parent_id":2131,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2136,"name":"閭欢妯$増","permission":"","parent_id":2130,"type":2,"component":"system/mail/template/index","component_name":"SystemMailTemplate","status":0,"deleted":0},{"id":2137,"name":"妯$増鏌ヨ","permission":"system:mail-template:query","parent_id":2136,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2138,"name":"妯$増鍒涘缓","permission":"system:mail-template:create","parent_id":2136,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2139,"name":"妯$増鏇存柊","permission":"system:mail-template:update","parent_id":2136,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2140,"name":"妯$増鍒犻櫎","permission":"system:mail-template:delete","parent_id":2136,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2141,"name":"閭欢璁板綍","permission":"","parent_id":2130,"type":2,"component":"system/mail/log/index","component_name":"SystemMailLog","status":0,"deleted":0},{"id":2142,"name":"鏃ュ織鏌ヨ","permission":"system:mail-log:query","parent_id":2141,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2143,"name":"鍙戦�佹祴璇曢偖浠�","permission":"system:mail-template:send-mail","parent_id":2136,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2144,"name":"绔欏唴淇$鐞�","permission":"","parent_id":2739,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":2145,"name":"妯℃澘绠$悊","permission":"","parent_id":2144,"type":2,"component":"system/notify/template/index","component_name":"SystemNotifyTemplate","status":0,"deleted":0},{"id":2146,"name":"绔欏唴淇℃ā鏉挎煡璇�","permission":"system:notify-template:query","parent_id":2145,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2147,"name":"绔欏唴淇℃ā鏉垮垱寤�","permission":"system:notify-template:create","parent_id":2145,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2148,"name":"绔欏唴淇℃ā鏉挎洿鏂�","permission":"system:notify-template:update","parent_id":2145,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2149,"name":"绔欏唴淇℃ā鏉垮垹闄�","permission":"system:notify-template:delete","parent_id":2145,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2150,"name":"鍙戦�佹祴璇曠珯鍐呬俊","permission":"system:notify-template:send-notify","parent_id":2145,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2151,"name":"娑堟伅璁板綍","permission":"","parent_id":2144,"type":2,"component":"system/notify/message/index","component_name":"SystemNotifyMessage","status":0,"deleted":0},{"id":2152,"name":"绔欏唴淇℃秷鎭煡璇�","permission":"system:notify-message:query","parent_id":2151,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2153,"name":"澶у睆璁捐鍣�","permission":"","parent_id":1281,"type":2,"component":"report/goview/index","component_name":"GoView","status":0,"deleted":0},{"id":2154,"name":"鍒涘缓椤圭洰","permission":"report:go-view-project:create","parent_id":2153,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2155,"name":"鏇存柊椤圭洰","permission":"report:go-view-project:update","parent_id":2153,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2156,"name":"鏌ヨ椤圭洰","permission":"report:go-view-project:query","parent_id":2153,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2157,"name":"浣跨敤 SQL 鏌ヨ鏁版嵁","permission":"report:go-view-data:get-by-sql","parent_id":2153,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2158,"name":"浣跨敤 HTTP 鏌ヨ鏁版嵁","permission":"report:go-view-data:get-by-http","parent_id":2153,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2391,"name":"瀹㈡埛绠$悊","permission":"","parent_id":2617,"type":2,"component":"crm/customer/index","component_name":"CrmCustomer","status":0,"deleted":0},{"id":2392,"name":"瀹㈡埛鏌ヨ","permission":"crm:customer:query","parent_id":2391,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2393,"name":"瀹㈡埛鍒涘缓","permission":"crm:customer:create","parent_id":2391,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2394,"name":"瀹㈡埛鏇存柊","permission":"crm:customer:update","parent_id":2391,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2395,"name":"瀹㈡埛鍒犻櫎","permission":"crm:customer:delete","parent_id":2391,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2396,"name":"瀹㈡埛瀵煎嚭","permission":"crm:customer:export","parent_id":2391,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2398,"name":"鍚堝悓绠$悊","permission":"","parent_id":2617,"type":2,"component":"crm/contract/index","component_name":"CrmContract","status":0,"deleted":0},{"id":2399,"name":"鍚堝悓鏌ヨ","permission":"crm:contract:query","parent_id":2398,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2400,"name":"鍚堝悓鍒涘缓","permission":"crm:contract:create","parent_id":2398,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2401,"name":"鍚堝悓鏇存柊","permission":"crm:contract:update","parent_id":2398,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2402,"name":"鍚堝悓鍒犻櫎","permission":"crm:contract:delete","parent_id":2398,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2403,"name":"鍚堝悓瀵煎嚭","permission":"crm:contract:export","parent_id":2398,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2404,"name":"绾跨储绠$悊","permission":"","parent_id":2617,"type":2,"component":"crm/clue/index","component_name":"CrmClue","status":0,"deleted":0},{"id":2405,"name":"绾跨储鏌ヨ","permission":"crm:clue:query","parent_id":2404,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2406,"name":"绾跨储鍒涘缓","permission":"crm:clue:create","parent_id":2404,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2407,"name":"绾跨储鏇存柊","permission":"crm:clue:update","parent_id":2404,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2408,"name":"绾跨储鍒犻櫎","permission":"crm:clue:delete","parent_id":2404,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2409,"name":"绾跨储瀵煎嚭","permission":"crm:clue:export","parent_id":2404,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2410,"name":"鍟嗘満绠$悊","permission":"","parent_id":2617,"type":2,"component":"crm/business/index","component_name":"CrmBusiness","status":0,"deleted":0},{"id":2411,"name":"鍟嗘満鏌ヨ","permission":"crm:business:query","parent_id":2410,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2412,"name":"鍟嗘満鍒涘缓","permission":"crm:business:create","parent_id":2410,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2413,"name":"鍟嗘満鏇存柊","permission":"crm:business:update","parent_id":2410,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2414,"name":"鍟嗘満鍒犻櫎","permission":"crm:business:delete","parent_id":2410,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2415,"name":"鍟嗘満瀵煎嚭","permission":"crm:business:export","parent_id":2410,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2416,"name":"鑱旂郴浜虹鐞�","permission":"","parent_id":2617,"type":2,"component":"crm/contact/index","component_name":"CrmContact","status":0,"deleted":0},{"id":2417,"name":"鑱旂郴浜烘煡璇�","permission":"crm:contact:query","parent_id":2416,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2418,"name":"鑱旂郴浜哄垱寤�","permission":"crm:contact:create","parent_id":2416,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2419,"name":"鑱旂郴浜烘洿鏂�","permission":"crm:contact:update","parent_id":2416,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2420,"name":"鑱旂郴浜哄垹闄�","permission":"crm:contact:delete","parent_id":2416,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2421,"name":"鑱旂郴浜哄鍑�","permission":"crm:contact:export","parent_id":2416,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2422,"name":"鍥炴绠$悊","permission":"","parent_id":2617,"type":2,"component":"crm/receivable/index","component_name":"CrmReceivable","status":0,"deleted":0},{"id":2423,"name":"鍥炴绠$悊鏌ヨ","permission":"crm:receivable:query","parent_id":2422,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2424,"name":"鍥炴绠$悊鍒涘缓","permission":"crm:receivable:create","parent_id":2422,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2425,"name":"鍥炴绠$悊鏇存柊","permission":"crm:receivable:update","parent_id":2422,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2426,"name":"鍥炴绠$悊鍒犻櫎","permission":"crm:receivable:delete","parent_id":2422,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2427,"name":"鍥炴绠$悊瀵煎嚭","permission":"crm:receivable:export","parent_id":2422,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2428,"name":"鍥炴璁″垝","permission":"","parent_id":2617,"type":2,"component":"crm/receivable/plan/index","component_name":"CrmReceivablePlan","status":0,"deleted":0},{"id":2429,"name":"鍥炴璁″垝鏌ヨ","permission":"crm:receivable-plan:query","parent_id":2428,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2430,"name":"鍥炴璁″垝鍒涘缓","permission":"crm:receivable-plan:create","parent_id":2428,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2431,"name":"鍥炴璁″垝鏇存柊","permission":"crm:receivable-plan:update","parent_id":2428,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2432,"name":"鍥炴璁″垝鍒犻櫎","permission":"crm:receivable-plan:delete","parent_id":2428,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2433,"name":"鍥炴璁″垝瀵煎嚭","permission":"crm:receivable-plan:export","parent_id":2428,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2447,"name":"涓夋柟鐧诲綍","permission":"","parent_id":1,"type":1,"component":"","component_name":"","status":1,"deleted":0},{"id":2448,"name":"涓夋柟搴旂敤","permission":"","parent_id":2447,"type":2,"component":"system/social/client/index.vue","component_name":"SocialClient","status":0,"deleted":0},{"id":2449,"name":"涓夋柟搴旂敤鏌ヨ","permission":"system:social-client:query","parent_id":2448,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2450,"name":"涓夋柟搴旂敤鍒涘缓","permission":"system:social-client:create","parent_id":2448,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2451,"name":"涓夋柟搴旂敤鏇存柊","permission":"system:social-client:update","parent_id":2448,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2452,"name":"涓夋柟搴旂敤鍒犻櫎","permission":"system:social-client:delete","parent_id":2448,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2453,"name":"涓夋柟鐢ㄦ埛","permission":"system:social-user:query","parent_id":2447,"type":2,"component":"system/social/user/index.vue","component_name":"SocialUser","status":0,"deleted":0},{"id":2472,"name":"涓诲瓙琛紙鍐呭祵锛�","permission":"","parent_id":1070,"type":2,"component":"infra/demo/demo03/inner/index","component_name":"Demo03StudentInner","status":0,"deleted":0},{"id":2478,"name":"鍗曡〃锛堝鍒犳敼鏌ワ級","permission":"","parent_id":1070,"type":2,"component":"infra/demo/demo01/index","component_name":"Demo01Contact","status":0,"deleted":0},{"id":2479,"name":"绀轰緥鑱旂郴浜烘煡璇�","permission":"infra:demo01-contact:query","parent_id":2478,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2480,"name":"绀轰緥鑱旂郴浜哄垱寤�","permission":"infra:demo01-contact:create","parent_id":2478,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2481,"name":"绀轰緥鑱旂郴浜烘洿鏂�","permission":"infra:demo01-contact:update","parent_id":2478,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2482,"name":"绀轰緥鑱旂郴浜哄垹闄�","permission":"infra:demo01-contact:delete","parent_id":2478,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2483,"name":"绀轰緥鑱旂郴浜哄鍑�","permission":"infra:demo01-contact:export","parent_id":2478,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2484,"name":"鏍戣〃锛堝鍒犳敼鏌ワ級","permission":"","parent_id":1070,"type":2,"component":"infra/demo/demo02/index","component_name":"Demo02Category","status":0,"deleted":0},{"id":2485,"name":"绀轰緥鍒嗙被鏌ヨ","permission":"infra:demo02-category:query","parent_id":2484,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2486,"name":"绀轰緥鍒嗙被鍒涘缓","permission":"infra:demo02-category:create","parent_id":2484,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2487,"name":"绀轰緥鍒嗙被鏇存柊","permission":"infra:demo02-category:update","parent_id":2484,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2488,"name":"绀轰緥鍒嗙被鍒犻櫎","permission":"infra:demo02-category:delete","parent_id":2484,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2489,"name":"绀轰緥鍒嗙被瀵煎嚭","permission":"infra:demo02-category:export","parent_id":2484,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2490,"name":"涓诲瓙琛紙鏍囧噯锛�","permission":"","parent_id":1070,"type":2,"component":"infra/demo/demo03/normal/index","component_name":"Demo03StudentNormal","status":0,"deleted":0},{"id":2491,"name":"瀛︾敓鏌ヨ","permission":"infra:demo03-student:query","parent_id":2490,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2492,"name":"瀛︾敓鍒涘缓","permission":"infra:demo03-student:create","parent_id":2490,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2493,"name":"瀛︾敓鏇存柊","permission":"infra:demo03-student:update","parent_id":2490,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2494,"name":"瀛︾敓鍒犻櫎","permission":"infra:demo03-student:delete","parent_id":2490,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2495,"name":"瀛︾敓瀵煎嚭","permission":"infra:demo03-student:export","parent_id":2490,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2497,"name":"涓诲瓙琛紙ERP锛�","permission":"","parent_id":1070,"type":2,"component":"infra/demo/demo03/erp/index","component_name":"Demo03StudentERP","status":0,"deleted":0},{"id":2516,"name":"瀹㈡埛鍏捣閰嶇疆","permission":"","parent_id":2524,"type":2,"component":"crm/customer/poolConfig/index","component_name":"CrmCustomerPoolConfig","status":0,"deleted":0},{"id":2517,"name":"瀹㈡埛鍏捣閰嶇疆淇濆瓨","permission":"crm:customer-pool-config:update","parent_id":2516,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2518,"name":"瀹㈡埛闄愬埗閰嶇疆","permission":"","parent_id":2524,"type":2,"component":"crm/customer/limitConfig/index","component_name":"CrmCustomerLimitConfig","status":0,"deleted":0},{"id":2519,"name":"瀹㈡埛闄愬埗閰嶇疆鏌ヨ","permission":"crm:customer-limit-config:query","parent_id":2518,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2520,"name":"瀹㈡埛闄愬埗閰嶇疆鍒涘缓","permission":"crm:customer-limit-config:create","parent_id":2518,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2521,"name":"瀹㈡埛闄愬埗閰嶇疆鏇存柊","permission":"crm:customer-limit-config:update","parent_id":2518,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2522,"name":"瀹㈡埛闄愬埗閰嶇疆鍒犻櫎","permission":"crm:customer-limit-config:delete","parent_id":2518,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2523,"name":"瀹㈡埛闄愬埗閰嶇疆瀵煎嚭","permission":"crm:customer-limit-config:export","parent_id":2518,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2524,"name":"绯荤粺閰嶇疆","permission":"","parent_id":2617,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2525,"name":"WebSocket","permission":"","parent_id":2,"type":2,"component":"infra/webSocket/index","component_name":"InfraWebSocket","status":0,"deleted":0},{"id":2543,"name":"鍏宠仈鍟嗘満","permission":"crm:contact:create-business","parent_id":2416,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2544,"name":"鍙栧叧鍟嗘満","permission":"crm:contact:delete-business","parent_id":2416,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2546,"name":"瀹㈡埛鍏捣","permission":"","parent_id":2617,"type":2,"component":"crm/customer/pool/index","component_name":"CrmCustomerPool","status":0,"deleted":0},{"id":2560,"name":"鏁版嵁缁熻","permission":"","parent_id":2617,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2561,"name":"鎺掕姒�","permission":"crm:statistics-rank:query","parent_id":2560,"type":2,"component":"crm/statistics/rank/index","component_name":"CrmStatisticsRank","status":0,"deleted":0},{"id":2562,"name":"瀹㈡埛瀵煎叆","permission":"crm:customer:import","parent_id":2391,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2563,"name":"ERP 绯荤粺","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":1,"deleted":0},{"id":2564,"name":"浜у搧绠$悊","permission":"","parent_id":2563,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2565,"name":"浜у搧淇℃伅","permission":"","parent_id":2564,"type":2,"component":"erp/product/product/index","component_name":"ErpProduct","status":0,"deleted":0},{"id":2566,"name":"浜у搧鏌ヨ","permission":"erp:product:query","parent_id":2565,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2567,"name":"浜у搧鍒涘缓","permission":"erp:product:create","parent_id":2565,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2568,"name":"浜у搧鏇存柊","permission":"erp:product:update","parent_id":2565,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2569,"name":"浜у搧鍒犻櫎","permission":"erp:product:delete","parent_id":2565,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2570,"name":"浜у搧瀵煎嚭","permission":"erp:product:export","parent_id":2565,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2571,"name":"浜у搧鍒嗙被","permission":"","parent_id":2564,"type":2,"component":"erp/product/category/index","component_name":"ErpProductCategory","status":0,"deleted":0},{"id":2572,"name":"鍒嗙被鏌ヨ","permission":"erp:product-category:query","parent_id":2571,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2573,"name":"鍒嗙被鍒涘缓","permission":"erp:product-category:create","parent_id":2571,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2574,"name":"鍒嗙被鏇存柊","permission":"erp:product-category:update","parent_id":2571,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2575,"name":"鍒嗙被鍒犻櫎","permission":"erp:product-category:delete","parent_id":2571,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2576,"name":"鍒嗙被瀵煎嚭","permission":"erp:product-category:export","parent_id":2571,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2577,"name":"浜у搧鍗曚綅","permission":"","parent_id":2564,"type":2,"component":"erp/product/unit/index","component_name":"ErpProductUnit","status":0,"deleted":0},{"id":2578,"name":"鍗曚綅鏌ヨ","permission":"erp:product-unit:query","parent_id":2577,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2579,"name":"鍗曚綅鍒涘缓","permission":"erp:product-unit:create","parent_id":2577,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2580,"name":"鍗曚綅鏇存柊","permission":"erp:product-unit:update","parent_id":2577,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2581,"name":"鍗曚綅鍒犻櫎","permission":"erp:product-unit:delete","parent_id":2577,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2582,"name":"鍗曚綅瀵煎嚭","permission":"erp:product-unit:export","parent_id":2577,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2583,"name":"搴撳瓨绠$悊","permission":"","parent_id":2563,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2584,"name":"浠撳簱淇℃伅","permission":"","parent_id":2583,"type":2,"component":"erp/stock/warehouse/index","component_name":"ErpWarehouse","status":0,"deleted":0},{"id":2585,"name":"浠撳簱鏌ヨ","permission":"erp:warehouse:query","parent_id":2584,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2586,"name":"浠撳簱鍒涘缓","permission":"erp:warehouse:create","parent_id":2584,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2587,"name":"浠撳簱鏇存柊","permission":"erp:warehouse:update","parent_id":2584,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2588,"name":"浠撳簱鍒犻櫎","permission":"erp:warehouse:delete","parent_id":2584,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2589,"name":"浠撳簱瀵煎嚭","permission":"erp:warehouse:export","parent_id":2584,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2590,"name":"浜у搧搴撳瓨","permission":"","parent_id":2583,"type":2,"component":"erp/stock/stock/index","component_name":"ErpStock","status":0,"deleted":0},{"id":2591,"name":"搴撳瓨鏌ヨ","permission":"erp:stock:query","parent_id":2590,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2592,"name":"搴撳瓨瀵煎嚭","permission":"erp:stock:export","parent_id":2590,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2593,"name":"鍑哄叆搴撴槑缁�","permission":"","parent_id":2583,"type":2,"component":"erp/stock/record/index","component_name":"ErpStockRecord","status":0,"deleted":0},{"id":2594,"name":"搴撳瓨鏄庣粏鏌ヨ","permission":"erp:stock-record:query","parent_id":2593,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2595,"name":"搴撳瓨鏄庣粏瀵煎嚭","permission":"erp:stock-record:export","parent_id":2593,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2596,"name":"鍏跺畠鍏ュ簱","permission":"","parent_id":2583,"type":2,"component":"erp/stock/in/index","component_name":"ErpStockIn","status":0,"deleted":0},{"id":2597,"name":"鍏跺畠鍏ュ簱鍗曟煡璇�","permission":"erp:stock-in:query","parent_id":2596,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2598,"name":"鍏跺畠鍏ュ簱鍗曞垱寤�","permission":"erp:stock-in:create","parent_id":2596,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2599,"name":"鍏跺畠鍏ュ簱鍗曟洿鏂�","permission":"erp:stock-in:update","parent_id":2596,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2600,"name":"鍏跺畠鍏ュ簱鍗曞垹闄�","permission":"erp:stock-in:delete","parent_id":2596,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2601,"name":"鍏跺畠鍏ュ簱鍗曞鍑�","permission":"erp:stock-in:export","parent_id":2596,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2602,"name":"閲囪喘绠$悊","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2609,"name":"鍏跺畠鍏ュ簱鍗曞鎵�","permission":"erp:stock-in:update-status","parent_id":2596,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2610,"name":"鍏跺畠鍑哄簱","permission":"","parent_id":2583,"type":2,"component":"erp/stock/out/index","component_name":"ErpStockOut","status":0,"deleted":0},{"id":2611,"name":"鍏跺畠鍑哄簱鍗曟煡璇�","permission":"erp:stock-out:query","parent_id":2610,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2612,"name":"鍏跺畠鍑哄簱鍗曞垱寤�","permission":"erp:stock-out:create","parent_id":2610,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2613,"name":"鍏跺畠鍑哄簱鍗曟洿鏂�","permission":"erp:stock-out:update","parent_id":2610,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2614,"name":"鍏跺畠鍑哄簱鍗曞垹闄�","permission":"erp:stock-out:delete","parent_id":2610,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2615,"name":"鍏跺畠鍑哄簱鍗曞鍑�","permission":"erp:stock-out:export","parent_id":2610,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2616,"name":"鍏跺畠鍑哄簱鍗曞鎵�","permission":"erp:stock-out:update-status","parent_id":2610,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2617,"name":"钀ラ攢绠$悊","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2618,"name":"瀹㈡埛淇℃伅","permission":"","parent_id":2617,"type":2,"component":"erp/sale/customer/index","component_name":"ErpCustomer","status":1,"deleted":0},{"id":2619,"name":"瀹㈡埛鏌ヨ","permission":"erp:customer:query","parent_id":2618,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2620,"name":"瀹㈡埛鍒涘缓","permission":"erp:customer:create","parent_id":2618,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2621,"name":"瀹㈡埛鏇存柊","permission":"erp:customer:update","parent_id":2618,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2622,"name":"瀹㈡埛鍒犻櫎","permission":"erp:customer:delete","parent_id":2618,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2623,"name":"瀹㈡埛瀵煎嚭","permission":"erp:customer:export","parent_id":2618,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2624,"name":"搴撳瓨璋冩嫧","permission":"","parent_id":2583,"type":2,"component":"erp/stock/move/index","component_name":"ErpStockMove","status":0,"deleted":0},{"id":2625,"name":"搴撳瓨璋冨害鍗曟煡璇�","permission":"erp:stock-move:query","parent_id":2624,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2626,"name":"搴撳瓨璋冨害鍗曞垱寤�","permission":"erp:stock-move:create","parent_id":2624,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2627,"name":"搴撳瓨璋冨害鍗曟洿鏂�","permission":"erp:stock-move:update","parent_id":2624,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2628,"name":"搴撳瓨璋冨害鍗曞垹闄�","permission":"erp:stock-move:delete","parent_id":2624,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2629,"name":"搴撳瓨璋冨害鍗曞鍑�","permission":"erp:stock-move:export","parent_id":2624,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2630,"name":"搴撳瓨璋冨害鍗曞鎵�","permission":"erp:stock-move:update-status","parent_id":2624,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2631,"name":"搴撳瓨鐩樼偣","permission":"","parent_id":2583,"type":2,"component":"erp/stock/check/index","component_name":"ErpStockCheck","status":0,"deleted":0},{"id":2632,"name":"搴撳瓨鐩樼偣鍗曟煡璇�","permission":"erp:stock-check:query","parent_id":2631,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2633,"name":"搴撳瓨鐩樼偣鍗曞垱寤�","permission":"erp:stock-check:create","parent_id":2631,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2634,"name":"搴撳瓨鐩樼偣鍗曟洿鏂�","permission":"erp:stock-check:update","parent_id":2631,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2635,"name":"搴撳瓨鐩樼偣鍗曞垹闄�","permission":"erp:stock-check:delete","parent_id":2631,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2636,"name":"搴撳瓨鐩樼偣鍗曞鍑�","permission":"erp:stock-check:export","parent_id":2631,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2637,"name":"搴撳瓨鐩樼偣鍗曞鎵�","permission":"erp:stock-check:update-status","parent_id":2631,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2638,"name":"閿�鍞鍗�","permission":"","parent_id":2617,"type":2,"component":"erp/sale/order/index","component_name":"ErpSaleOrder","status":0,"deleted":0},{"id":2639,"name":"閿�鍞鍗曟煡璇�","permission":"erp:sale-order:query","parent_id":2638,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2640,"name":"閿�鍞鍗曞垱寤�","permission":"erp:sale-order:create","parent_id":2638,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2641,"name":"閿�鍞鍗曟洿鏂�","permission":"erp:sale-order:update","parent_id":2638,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2642,"name":"閿�鍞鍗曞垹闄�","permission":"erp:sale-order:delete","parent_id":2638,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2643,"name":"閿�鍞鍗曞鍑�","permission":"erp:sale-order:export","parent_id":2638,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2644,"name":"閿�鍞鍗曞鎵�","permission":"erp:sale-order:update-status","parent_id":2638,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2645,"name":"璐㈠姟绠$悊","permission":"","parent_id":2563,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2646,"name":"缁撶畻璐︽埛","permission":"","parent_id":2645,"type":2,"component":"erp/finance/account/index","component_name":"ErpAccount","status":0,"deleted":0},{"id":2647,"name":"缁撶畻璐︽埛鏌ヨ","permission":"erp:account:query","parent_id":2646,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2648,"name":"缁撶畻璐︽埛鍒涘缓","permission":"erp:account:create","parent_id":2646,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2649,"name":"缁撶畻璐︽埛鏇存柊","permission":"erp:account:update","parent_id":2646,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2650,"name":"缁撶畻璐︽埛鍒犻櫎","permission":"erp:account:delete","parent_id":2646,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2651,"name":"缁撶畻璐︽埛瀵煎嚭","permission":"erp:account:export","parent_id":2646,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2666,"name":"閲囪喘璁㈠崟","permission":"","parent_id":2602,"type":2,"component":"erp/purchase/order/index","component_name":"ErpPurchaseOrder","status":0,"deleted":0},{"id":2667,"name":"閲囪喘璁㈠崟鏌ヨ","permission":"erp:purchase-order:query","parent_id":2666,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2668,"name":"閲囪喘璁㈠崟鍒涘缓","permission":"erp:purchase-order:create","parent_id":2666,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2669,"name":"閲囪喘璁㈠崟鏇存柊","permission":"erp:purchase-order:update","parent_id":2666,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2670,"name":"閲囪喘璁㈠崟鍒犻櫎","permission":"erp:purchase-order:delete","parent_id":2666,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2671,"name":"閲囪喘璁㈠崟瀵煎嚭","permission":"erp:purchase-order:export","parent_id":2666,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2672,"name":"閲囪喘璁㈠崟瀹℃壒","permission":"erp:purchase-order:update-status","parent_id":2666,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2687,"name":"浠樻鍗�","permission":"","parent_id":2645,"type":2,"component":"erp/finance/payment/index","component_name":"ErpFinancePayment","status":0,"deleted":0},{"id":2688,"name":"浠樻鍗曟煡璇�","permission":"erp:finance-payment:query","parent_id":2687,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2689,"name":"浠樻鍗曞垱寤�","permission":"erp:finance-payment:create","parent_id":2687,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2690,"name":"浠樻鍗曟洿鏂�","permission":"erp:finance-payment:update","parent_id":2687,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2691,"name":"浠樻鍗曞垹闄�","permission":"erp:finance-payment:delete","parent_id":2687,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2692,"name":"浠樻鍗曞鍑�","permission":"erp:finance-payment:export","parent_id":2687,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2693,"name":"浠樻鍗曞鎵�","permission":"erp:finance-payment:update-status","parent_id":2687,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2694,"name":"鏀舵鍗�","permission":"","parent_id":2645,"type":2,"component":"erp/finance/receipt/index","component_name":"ErpFinanceReceipt","status":0,"deleted":0},{"id":2695,"name":"鏀舵鍗曟煡璇�","permission":"erp:finance-receipt:query","parent_id":2694,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2696,"name":"鏀舵鍗曞垱寤�","permission":"erp:finance-receipt:create","parent_id":2694,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2697,"name":"鏀舵鍗曟洿鏂�","permission":"erp:finance-receipt:update","parent_id":2694,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2698,"name":"鏀舵鍗曞垹闄�","permission":"erp:finance-receipt:delete","parent_id":2694,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2699,"name":"鏀舵鍗曞鍑�","permission":"erp:finance-receipt:export","parent_id":2694,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2700,"name":"鏀舵鍗曞鎵�","permission":"erp:finance-receipt:update-status","parent_id":2694,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2701,"name":"寰呭姙浜嬮」","permission":"","parent_id":2617,"type":2,"component":"crm/backlog/index","component_name":"CrmBacklog","status":0,"deleted":0},{"id":2702,"name":"ERP 棣栭〉","permission":"erp:statistics:query","parent_id":2563,"type":2,"component":"erp/home/index.vue","component_name":"ErpHome","status":0,"deleted":0},{"id":2703,"name":"鍟嗘満鐘舵�侀厤缃�","permission":"","parent_id":2524,"type":2,"component":"crm/business/status/index","component_name":"CrmBusinessStatus","status":0,"deleted":0},{"id":2704,"name":"鍟嗘満鐘舵�佹煡璇�","permission":"crm:business-status:query","parent_id":2703,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2705,"name":"鍟嗘満鐘舵�佸垱寤�","permission":"crm:business-status:create","parent_id":2703,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2706,"name":"鍟嗘満鐘舵�佹洿鏂�","permission":"crm:business-status:update","parent_id":2703,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2707,"name":"鍟嗘満鐘舵�佸垹闄�","permission":"crm:business-status:delete","parent_id":2703,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2708,"name":"鍚堝悓閰嶇疆","permission":"","parent_id":2524,"type":2,"component":"crm/contract/config/index","component_name":"CrmContractConfig","status":0,"deleted":0},{"id":2709,"name":"瀹㈡埛鍏捣閰嶇疆鏌ヨ","permission":"crm:customer-pool-config:query","parent_id":2516,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2710,"name":"鍚堝悓閰嶇疆鏇存柊","permission":"crm:contract-config:update","parent_id":2708,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2711,"name":"鍚堝悓閰嶇疆鏌ヨ","permission":"crm:contract-config:query","parent_id":2708,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2712,"name":"瀹㈡埛鍒嗘瀽","permission":"crm:statistics-customer:query","parent_id":2560,"type":2,"component":"crm/statistics/customer/index.vue","component_name":"CrmStatisticsCustomer","status":0,"deleted":0},{"id":2713,"name":"鎶勯�佹垜鐨�","permission":"bpm:process-instance-cc:query","parent_id":1200,"type":2,"component":"bpm/task/copy/index","component_name":"BpmProcessInstanceCopy","status":0,"deleted":0},{"id":2714,"name":"娴佺▼鍒嗙被","permission":"","parent_id":1186,"type":2,"component":"bpm/category/index","component_name":"BpmCategory","status":0,"deleted":0},{"id":2715,"name":"鍒嗙被鏌ヨ","permission":"bpm:category:query","parent_id":2714,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2716,"name":"鍒嗙被鍒涘缓","permission":"bpm:category:create","parent_id":2714,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2717,"name":"鍒嗙被鏇存柊","permission":"bpm:category:update","parent_id":2714,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2718,"name":"鍒嗙被鍒犻櫎","permission":"bpm:category:delete","parent_id":2714,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2720,"name":"鍙戣捣娴佺▼","permission":"","parent_id":1200,"type":2,"component":"bpm/processInstance/create/index","component_name":"BpmProcessInstanceCreate","status":0,"deleted":0},{"id":2721,"name":"娴佺▼瀹炰緥","permission":"","parent_id":1186,"type":2,"component":"bpm/processInstance/manager/index","component_name":"BpmProcessInstanceManager","status":0,"deleted":0},{"id":2722,"name":"娴佺▼瀹炰緥鐨勬煡璇紙绠$悊鍛橈級","permission":"bpm:process-instance:manager-query","parent_id":2721,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2723,"name":"娴佺▼瀹炰緥鐨勫彇娑堬紙绠$悊鍛橈級","permission":"bpm:process-instance:cancel-by-admin","parent_id":2721,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2724,"name":"娴佺▼浠诲姟","permission":"","parent_id":1186,"type":2,"component":"bpm/task/manager/index","component_name":"BpmManagerTask","status":0,"deleted":0},{"id":2725,"name":"娴佺▼浠诲姟鐨勬煡璇紙绠$悊鍛橈級","permission":"bpm:task:manager-query","parent_id":2724,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2726,"name":"娴佺▼鐩戝惉鍣�","permission":"","parent_id":1186,"type":2,"component":"bpm/processListener/index","component_name":"BpmProcessListener","status":0,"deleted":0},{"id":2727,"name":"娴佺▼鐩戝惉鍣ㄦ煡璇�","permission":"bpm:process-listener:query","parent_id":2726,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2728,"name":"娴佺▼鐩戝惉鍣ㄥ垱寤�","permission":"bpm:process-listener:create","parent_id":2726,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2729,"name":"娴佺▼鐩戝惉鍣ㄦ洿鏂�","permission":"bpm:process-listener:update","parent_id":2726,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2730,"name":"娴佺▼鐩戝惉鍣ㄥ垹闄�","permission":"bpm:process-listener:delete","parent_id":2726,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2731,"name":"娴佺▼琛ㄨ揪寮�","permission":"","parent_id":1186,"type":2,"component":"bpm/processExpression/index","component_name":"BpmProcessExpression","status":0,"deleted":0},{"id":2732,"name":"娴佺▼琛ㄨ揪寮忔煡璇�","permission":"bpm:process-expression:query","parent_id":2731,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2733,"name":"娴佺▼琛ㄨ揪寮忓垱寤�","permission":"bpm:process-expression:create","parent_id":2731,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2734,"name":"娴佺▼琛ㄨ揪寮忔洿鏂�","permission":"bpm:process-expression:update","parent_id":2731,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2735,"name":"娴佺▼琛ㄨ揪寮忓垹闄�","permission":"bpm:process-expression:delete","parent_id":2731,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2736,"name":"鍛樺伐涓氱哗","permission":"crm:statistics-performance:query","parent_id":2560,"type":2,"component":"crm/statistics/performance/index","component_name":"CrmStatisticsPerformance","status":0,"deleted":0},{"id":2737,"name":"瀹㈡埛鐢诲儚","permission":"crm:statistics-portrait:query","parent_id":2560,"type":2,"component":"crm/statistics/portrait/index","component_name":"CrmStatisticsPortrait","status":0,"deleted":0},{"id":2738,"name":"閿�鍞紡鏂�","permission":"crm:statistics-funnel:query","parent_id":2560,"type":2,"component":"crm/statistics/funnel/index","component_name":"CrmStatisticsFunnel","status":0,"deleted":0},{"id":2739,"name":"娑堟伅涓績","permission":"","parent_id":1,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2740,"name":"鐩戞帶涓績","permission":"","parent_id":2,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2741,"name":"棰嗗彇鍏捣瀹㈡埛","permission":"crm:customer:receive","parent_id":2546,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2742,"name":"鍒嗛厤鍏捣瀹㈡埛","permission":"crm:customer:distribute","parent_id":2546,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2755,"name":"鍒犻櫎椤圭洰","permission":"report:go-view-project:delete","parent_id":2153,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2758,"name":"AI 澶фā鍨�","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":1,"deleted":0},{"id":2759,"name":"AI 瀵硅瘽","permission":"","parent_id":2758,"type":2,"component":"ai/chat/index/index.vue","component_name":"AiChat","status":0,"deleted":0},{"id":2760,"name":"鎺у埗鍙�","permission":"","parent_id":2758,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":2761,"name":"API 瀵嗛挜","permission":"","parent_id":2760,"type":2,"component":"ai/model/apiKey/index.vue","component_name":"AiApiKey","status":0,"deleted":0},{"id":2762,"name":"API 瀵嗛挜鏌ヨ","permission":"ai:api-key:query","parent_id":2761,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2763,"name":"API 瀵嗛挜鍒涘缓","permission":"ai:api-key:create","parent_id":2761,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2764,"name":"API 瀵嗛挜鏇存柊","permission":"ai:api-key:update","parent_id":2761,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2765,"name":"API 瀵嗛挜鍒犻櫎","permission":"ai:api-key:delete","parent_id":2761,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2767,"name":"妯″瀷閰嶇疆","permission":"","parent_id":2760,"type":2,"component":"ai/model/model/index.vue","component_name":"AiModel","status":0,"deleted":0},{"id":2768,"name":"鑱婂ぉ妯″瀷鏌ヨ","permission":"ai:model:query","parent_id":2767,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2769,"name":"鑱婂ぉ妯″瀷鍒涘缓","permission":"ai:model:create","parent_id":2767,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2770,"name":"鑱婂ぉ妯″瀷鏇存柊","permission":"ai:model:update","parent_id":2767,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2771,"name":"鑱婂ぉ妯″瀷鍒犻櫎","permission":"ai:model:delete","parent_id":2767,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2773,"name":"鑱婂ぉ瑙掕壊","permission":"","parent_id":2760,"type":2,"component":"ai/model/chatRole/index.vue","component_name":"AiChatRole","status":0,"deleted":0},{"id":2774,"name":"鑱婂ぉ瑙掕壊鏌ヨ","permission":"ai:chat-role:query","parent_id":2773,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2775,"name":"鑱婂ぉ瑙掕壊鍒涘缓","permission":"ai:chat-role:create","parent_id":2773,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2776,"name":"鑱婂ぉ瑙掕壊鏇存柊","permission":"ai:chat-role:update","parent_id":2773,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2777,"name":"鑱婂ぉ瑙掕壊鍒犻櫎","permission":"ai:chat-role:delete","parent_id":2773,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2778,"name":"鑱婂ぉ绠$悊","permission":"","parent_id":2760,"type":2,"component":"ai/chat/manager/index.vue","component_name":"AiChatManager","status":0,"deleted":0},{"id":2779,"name":"浼氳瘽鏌ヨ","permission":"ai:chat-conversation:query","parent_id":2778,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2780,"name":"浼氳瘽鍒犻櫎","permission":"ai:chat-conversation:delete","parent_id":2778,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2781,"name":"娑堟伅鏌ヨ","permission":"ai:chat-message:query","parent_id":2778,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2782,"name":"娑堟伅鍒犻櫎","permission":"ai:chat-message:delete","parent_id":2778,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2783,"name":"AI 缁樼敾","permission":"","parent_id":2758,"type":2,"component":"ai/image/index/index.vue","component_name":"AiImage","status":0,"deleted":0},{"id":2784,"name":"缁樼敾绠$悊","permission":"","parent_id":2760,"type":2,"component":"ai/image/manager/index.vue","component_name":"AiImageManager","status":0,"deleted":0},{"id":2785,"name":"缁樼敾鏌ヨ","permission":"ai:image:query","parent_id":2784,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2786,"name":"缁樼敾鍒犻櫎","permission":"ai:image:delete","parent_id":2784,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2787,"name":"缁樺浘鏇存柊","permission":"ai:image:update","parent_id":2784,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2788,"name":"闊充箰绠$悊","permission":"","parent_id":2760,"type":2,"component":"ai/music/manager/index.vue","component_name":"AiMusicManager","status":0,"deleted":0},{"id":2789,"name":"闊充箰鏌ヨ","permission":"ai:music:query","parent_id":2788,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2790,"name":"闊充箰鏇存柊","permission":"ai:music:update","parent_id":2788,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2791,"name":"闊充箰鍒犻櫎","permission":"ai:music:delete","parent_id":2788,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2792,"name":"AI 鍐欎綔","permission":"","parent_id":2758,"type":2,"component":"ai/write/index/index.vue","component_name":"AiWrite","status":0,"deleted":0},{"id":2793,"name":"鍐欎綔绠$悊","permission":"","parent_id":2760,"type":2,"component":"ai/write/manager/index.vue","component_name":"AiWriteManager","status":0,"deleted":0},{"id":2794,"name":"AI 鍐欎綔鏌ヨ","permission":"ai:write:query","parent_id":2793,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2795,"name":"AI 鍐欎綔鍒犻櫎","permission":"ai:write:delete","parent_id":2793,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2796,"name":"AI 闊充箰","permission":"","parent_id":2758,"type":2,"component":"ai/music/index/index.vue","component_name":"AiMusic","status":0,"deleted":0},{"id":2798,"name":"AI 鎬濈淮瀵煎浘","permission":"","parent_id":2758,"type":2,"component":"ai/mindmap/index/index.vue","component_name":"AiMindMap","status":0,"deleted":0},{"id":2799,"name":"瀵煎浘绠$悊","permission":"","parent_id":2760,"type":2,"component":"ai/mindmap/manager/index","component_name":"AiMindMapManager","status":0,"deleted":0},{"id":2800,"name":"鎬濈淮瀵煎浘鏌ヨ","permission":"ai:mind-map:query","parent_id":2799,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2801,"name":"鎬濈淮瀵煎浘鍒犻櫎","permission":"ai:mind-map:delete","parent_id":2799,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2913,"name":"娴佺▼娓呯悊","permission":"bpm:model:clean","parent_id":1193,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":2915,"name":"AI 鐭ヨ瘑搴�","permission":"","parent_id":2758,"type":2,"component":"ai/knowledge/knowledge/index","component_name":"AiKnowledge","status":0,"deleted":0},{"id":2916,"name":"AI 鐭ヨ瘑搴撴煡璇�","permission":"ai:knowledge:query","parent_id":2915,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2917,"name":"AI 鐭ヨ瘑搴撳垱寤�","permission":"ai:knowledge:create","parent_id":2915,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2918,"name":"AI 鐭ヨ瘑搴撴洿鏂�","permission":"ai:knowledge:update","parent_id":2915,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2919,"name":"AI 鐭ヨ瘑搴撳垹闄�","permission":"ai:knowledge:delete","parent_id":2915,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2920,"name":"宸ュ叿绠$悊","permission":"","parent_id":2760,"type":2,"component":"ai/model/tool/index.vue","component_name":"AiTool","status":0,"deleted":0},{"id":2921,"name":"宸ュ叿鏌ヨ","permission":"ai:tool:query","parent_id":2920,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2922,"name":"宸ュ叿鍒涘缓","permission":"ai:tool:create","parent_id":2920,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2923,"name":"宸ュ叿鏇存柊","permission":"ai:tool:update","parent_id":2920,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":2924,"name":"宸ュ叿鍒犻櫎","permission":"ai:tool:delete","parent_id":2920,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5000,"name":"AI 宸ヤ綔娴�","permission":"","parent_id":2758,"type":2,"component":"ai/workflow/index.vue","component_name":"AiWorkflow","status":0,"deleted":0},{"id":5001,"name":"AI 宸ヤ綔娴佹煡璇�","permission":"ai:workflow:query","parent_id":5000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5002,"name":"AI 宸ヤ綔娴佸垱寤�","permission":"ai:workflow:create","parent_id":5000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5003,"name":"AI 宸ヤ綔娴佹洿鏂�","permission":"ai:workflow:update","parent_id":5000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5004,"name":"AI 宸ヤ綔娴佸垹闄�","permission":"ai:workflow:delete","parent_id":5000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5005,"name":"AI 宸ヤ綔娴佹祴璇�","permission":"ai:workflow:test","parent_id":5000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5009,"name":"浠〃鐩樿璁″櫒","permission":"","parent_id":1281,"type":2,"component":"report/jmreport/bi","component_name":"JimuBI","status":0,"deleted":0},{"id":5010,"name":"绉熸埛鍒囨崲","permission":"system:tenant:visit","parent_id":1138,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5100,"name":"鐢熶骇绠℃帶","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5101,"name":"鐢熶骇鍩虹鏁版嵁","permission":"","parent_id":5100,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5110,"name":"鐗╂枡鍒嗙被","permission":"","parent_id":602455,"type":2,"component":"mes/md/item/type/index","component_name":"MesMdItemType","status":0,"deleted":0},{"id":5111,"name":"鍒嗙被鏌ヨ","permission":"mes:md-item-type:query","parent_id":5110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5112,"name":"鍒嗙被鍒涘缓","permission":"mes:md-item-type:create","parent_id":5110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5113,"name":"鍒嗙被鏇存柊","permission":"mes:md-item-type:update","parent_id":5110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5114,"name":"鍒嗙被鍒犻櫎","permission":"mes:md-item-type:delete","parent_id":5110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5120,"name":"鐢熶骇鐗╂枡绠$悊","permission":"","parent_id":5101,"type":2,"component":"mes/md/item/index","component_name":"MesMdItem","status":0,"deleted":0},{"id":5121,"name":"鐗╂枡鏌ヨ","permission":"mes:md-item:query","parent_id":5120,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5122,"name":"鐗╂枡鍒涘缓","permission":"mes:md-item:create","parent_id":5120,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5123,"name":"鐗╂枡鏇存柊","permission":"mes:md-item:update","parent_id":5120,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5124,"name":"鐗╂枡鍒犻櫎","permission":"mes:md-item:delete","parent_id":5120,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5125,"name":"鐗╂枡瀵煎嚭","permission":"mes:md-item:export","parent_id":5120,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5126,"name":"鐗╂枡瀵煎叆","permission":"mes:md-item:import","parent_id":5120,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5160,"name":"杞﹂棿璁剧疆","permission":"","parent_id":5101,"type":2,"component":"mes/md/workstation/workshop/index","component_name":"MesMdWorkshop","status":0,"deleted":0},{"id":5161,"name":"杞﹂棿鏌ヨ","permission":"mes:md-workshop:query","parent_id":5160,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5162,"name":"杞﹂棿鍒涘缓","permission":"mes:md-workshop:create","parent_id":5160,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5163,"name":"杞﹂棿鏇存柊","permission":"mes:md-workshop:update","parent_id":5160,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5164,"name":"杞﹂棿鍒犻櫎","permission":"mes:md-workshop:delete","parent_id":5160,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5170,"name":"宸ヤ綔绔欒缃�","permission":"","parent_id":5101,"type":2,"component":"mes/md/workstation/index","component_name":"MesMdWorkstation","status":0,"deleted":0},{"id":5171,"name":"宸ヤ綅鏌ヨ","permission":"mes:md-workstation:query","parent_id":5170,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5172,"name":"宸ヤ綅鍒涘缓","permission":"mes:md-workstation:create","parent_id":5170,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5173,"name":"宸ヤ綅鏇存柊","permission":"mes:md-workstation:update","parent_id":5170,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5174,"name":"宸ヤ綅鍒犻櫎","permission":"mes:md-workstation:delete","parent_id":5170,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5175,"name":"宸ヤ綅瀵煎嚭","permission":"mes:md-workstation:export","parent_id":5170,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5190,"name":"缂栫爜瑙勫垯","permission":"","parent_id":1,"type":2,"component":"mes/md/autocode/index","component_name":"MesAutoCode","status":0,"deleted":0},{"id":5191,"name":"缂栫爜瑙勫垯鏌ヨ","permission":"mes:auto-code-rule:query","parent_id":5190,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5192,"name":"缂栫爜瑙勫垯鍒涘缓","permission":"mes:auto-code-rule:create","parent_id":5190,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5193,"name":"缂栫爜瑙勫垯鏇存柊","permission":"mes:auto-code-rule:update","parent_id":5190,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5194,"name":"缂栫爜瑙勫垯鍒犻櫎","permission":"mes:auto-code-rule:delete","parent_id":5190,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5195,"name":"缂栫爜瑙勫垯瀵煎嚭","permission":"mes:auto-code-rule:export","parent_id":5190,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5200,"name":"鎺掔彮绠$悊","permission":"","parent_id":5100,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5220,"name":"鐝粍璁剧疆","permission":"","parent_id":5200,"type":2,"component":"mes/cal/team/index","component_name":"MesCalTeam","status":0,"deleted":0},{"id":5221,"name":"鐝粍鏌ヨ","permission":"mes:cal-team:query","parent_id":5220,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5222,"name":"鐝粍鍒涘缓","permission":"mes:cal-team:create","parent_id":5220,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5223,"name":"鐝粍鏇存柊","permission":"mes:cal-team:update","parent_id":5220,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5224,"name":"鐝粍鍒犻櫎","permission":"mes:cal-team:delete","parent_id":5220,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5225,"name":"鐝粍瀵煎嚭","permission":"mes:cal-team:export","parent_id":5220,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5230,"name":"鎺掔彮璁″垝","permission":"","parent_id":5200,"type":2,"component":"mes/cal/plan/index","component_name":"MesCalPlan","status":0,"deleted":0},{"id":5231,"name":"鎺掔彮璁″垝鏌ヨ","permission":"mes:cal-plan:query","parent_id":5230,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5232,"name":"鎺掔彮璁″垝鍒涘缓","permission":"mes:cal-plan:create","parent_id":5230,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5233,"name":"鎺掔彮璁″垝鏇存柊","permission":"mes:cal-plan:update","parent_id":5230,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5234,"name":"鎺掔彮璁″垝鍒犻櫎","permission":"mes:cal-plan:delete","parent_id":5230,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5235,"name":"鎺掔彮璁″垝瀵煎嚭","permission":"mes:cal-plan:export","parent_id":5230,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5250,"name":"鑺傚亣鏃ヨ缃�","permission":"","parent_id":5200,"type":2,"component":"mes/cal/holiday/index","component_name":"MesCalHoliday","status":0,"deleted":0},{"id":5251,"name":"鍋囨湡鏌ヨ","permission":"mes:cal-holiday:query","parent_id":5250,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5252,"name":"鍋囨湡鍒涘缓","permission":"mes:cal-holiday:create","parent_id":5250,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5253,"name":"鍋囨湡鏇存柊","permission":"mes:cal-holiday:update","parent_id":5250,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5254,"name":"鍋囨湡鍒犻櫎","permission":"mes:cal-holiday:delete","parent_id":5250,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5255,"name":"鍋囨湡瀵煎嚭","permission":"mes:cal-holiday:export","parent_id":5250,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5260,"name":"鎺掔彮鏃ュ巻","permission":"","parent_id":5200,"type":2,"component":"mes/cal/calendar/index","component_name":"MesCalCalendar","status":0,"deleted":0},{"id":5261,"name":"鎺掔彮鏃ュ巻鏌ヨ","permission":"mes:cal-team-shift:query","parent_id":5260,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5300,"name":"璁惧绠$悊","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5310,"name":"璁惧绫诲瀷","permission":"","parent_id":5300,"type":2,"component":"mes/dv/machinery/type/index","component_name":"MesDvMachineryType","status":0,"deleted":0},{"id":5311,"name":"绫诲瀷鏌ヨ","permission":"mes:dv-machinery-type:query","parent_id":5310,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5312,"name":"绫诲瀷鍒涘缓","permission":"mes:dv-machinery-type:create","parent_id":5310,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5313,"name":"绫诲瀷鏇存柊","permission":"mes:dv-machinery-type:update","parent_id":5310,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5314,"name":"绫诲瀷鍒犻櫎","permission":"mes:dv-machinery-type:delete","parent_id":5310,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5315,"name":"绫诲瀷瀵煎嚭","permission":"mes:dv-machinery-type:export","parent_id":5310,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5320,"name":"璁惧鍙拌处","permission":"","parent_id":5300,"type":2,"component":"mes/dv/machinery/index","component_name":"MesDvMachinery","status":0,"deleted":0},{"id":5321,"name":"璁惧鏌ヨ","permission":"mes:dv-machinery:query","parent_id":5320,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5322,"name":"璁惧鍒涘缓","permission":"mes:dv-machinery:create","parent_id":5320,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5323,"name":"璁惧鏇存柊","permission":"mes:dv-machinery:update","parent_id":5320,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5324,"name":"璁惧鍒犻櫎","permission":"mes:dv-machinery:delete","parent_id":5320,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5325,"name":"璁惧瀵煎嚭","permission":"mes:dv-machinery:export","parent_id":5320,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5326,"name":"璁惧瀵煎叆","permission":"mes:dv-machinery:import","parent_id":5320,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5330,"name":"鐐规淇濆吇椤圭洰","permission":"","parent_id":5300,"type":2,"component":"mes/dv/subject/index","component_name":"MesDvSubject","status":0,"deleted":0},{"id":5331,"name":"椤圭洰鏌ヨ","permission":"mes:dv-subject:query","parent_id":5330,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5332,"name":"椤圭洰鍒涘缓","permission":"mes:dv-subject:create","parent_id":5330,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5333,"name":"椤圭洰鏇存柊","permission":"mes:dv-subject:update","parent_id":5330,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5334,"name":"椤圭洰鍒犻櫎","permission":"mes:dv-subject:delete","parent_id":5330,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5335,"name":"椤圭洰瀵煎嚭","permission":"mes:dv-subject:export","parent_id":5330,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5340,"name":"淇濆吇璁板綍","permission":"","parent_id":5300,"type":2,"component":"mes/dv/maintenrecord/index","component_name":"MesDvMaintenRecord","status":0,"deleted":0},{"id":5341,"name":"淇濆吇璁板綍鏌ヨ","permission":"mes:dv-mainten-record:query","parent_id":5340,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5342,"name":"淇濆吇璁板綍鍒涘缓","permission":"mes:dv-mainten-record:create","parent_id":5340,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5343,"name":"淇濆吇璁板綍鏇存柊","permission":"mes:dv-mainten-record:update","parent_id":5340,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5344,"name":"淇濆吇璁板綍鍒犻櫎","permission":"mes:dv-mainten-record:delete","parent_id":5340,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5345,"name":"淇濆吇璁板綍瀵煎嚭","permission":"mes:dv-mainten-record:export","parent_id":5340,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5350,"name":"鐐规淇濆吇鏂规","permission":"","parent_id":5300,"type":2,"component":"mes/dv/checkplan/index","component_name":"MesDvCheckPlan","status":0,"deleted":0},{"id":5351,"name":"鏂规鏌ヨ","permission":"mes:dv-check-plan:query","parent_id":5350,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5352,"name":"鏂规鍒涘缓","permission":"mes:dv-check-plan:create","parent_id":5350,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5353,"name":"鏂规鏇存柊","permission":"mes:dv-check-plan:update","parent_id":5350,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5354,"name":"鏂规鍒犻櫎","permission":"mes:dv-check-plan:delete","parent_id":5350,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5355,"name":"鏂规瀵煎嚭","permission":"mes:dv-check-plan:export","parent_id":5350,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5360,"name":"鐐规璁板綍","permission":"","parent_id":5300,"type":2,"component":"mes/dv/checkrecord/index","component_name":"MesDvCheckRecord","status":0,"deleted":0},{"id":5361,"name":"鐐规璁板綍鏌ヨ","permission":"mes:dv-check-record:query","parent_id":5360,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5362,"name":"鐐规璁板綍鍒涘缓","permission":"mes:dv-check-record:create","parent_id":5360,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5363,"name":"鐐规璁板綍鏇存柊","permission":"mes:dv-check-record:update","parent_id":5360,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5364,"name":"鐐规璁板綍鍒犻櫎","permission":"mes:dv-check-record:delete","parent_id":5360,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5365,"name":"鐐规璁板綍瀵煎嚭","permission":"mes:dv-check-record:export","parent_id":5360,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5366,"name":"宸ュ崟瀵煎嚭","permission":"mes:dv-repair:export","parent_id":5360,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5370,"name":"缁翠慨鍗�","permission":"","parent_id":5300,"type":2,"component":"mes/dv/repair/index","component_name":"MesDvRepair","status":0,"deleted":0},{"id":5371,"name":"宸ュ崟鏌ヨ","permission":"mes:dv-repair:query","parent_id":5370,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5372,"name":"宸ュ崟鍒涘缓","permission":"mes:dv-repair:create","parent_id":5370,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5373,"name":"宸ュ崟鏇存柊","permission":"mes:dv-repair:update","parent_id":5370,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5374,"name":"宸ュ崟鍒犻櫎","permission":"mes:dv-repair:delete","parent_id":5370,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5375,"name":"宸ュ崟瀵煎嚭","permission":"mes:dv-repair:export","parent_id":5370,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5380,"name":"璁¢噺鍣ㄥ叿","permission":"","parent_id":5300,"type":2,"component":"mes/dv/metering/index","component_name":"MesDvMetering","status":0,"deleted":0},{"id":5381,"name":"璁¢噺鍣ㄥ叿鏌ヨ","permission":"mes:dv-metering:query","parent_id":5380,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5382,"name":"璁¢噺鍣ㄥ叿鍒涘缓","permission":"mes:dv-metering:create","parent_id":5380,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5383,"name":"璁¢噺鍣ㄥ叿鏇存柊","permission":"mes:dv-metering:update","parent_id":5380,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5384,"name":"璁¢噺鍣ㄥ叿鍒犻櫎","permission":"mes:dv-metering:delete","parent_id":5380,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5385,"name":"璁¢噺鍣ㄥ叿瀵煎嚭","permission":"mes:dv-metering:export","parent_id":5380,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5386,"name":"璁¢噺妫�娴嬭褰�","permission":"","parent_id":5300,"type":2,"component":"mes/dv/meteringcheck/index","component_name":"MesDvMeteringCheck","status":0,"deleted":0},{"id":5387,"name":"妫�娴嬭褰曟煡璇�","permission":"mes:dv-metering-check:query","parent_id":5386,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5388,"name":"妫�娴嬭褰曞垱寤�","permission":"mes:dv-metering-check:create","parent_id":5386,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5389,"name":"妫�娴嬭褰曟洿鏂�","permission":"mes:dv-metering-check:update","parent_id":5386,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5390,"name":"妫�娴嬭褰曞垹闄�","permission":"mes:dv-metering-check:delete","parent_id":5386,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5391,"name":"妫�娴嬭褰曞鍑�","permission":"mes:dv-metering-check:export","parent_id":5386,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5400,"name":"宸ュ叿绠$悊","permission":"","parent_id":5100,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5410,"name":"宸ュ叿绫诲瀷璁剧疆","permission":"","parent_id":5400,"type":2,"component":"mes/tm/tool/type/index","component_name":"MesTmToolType","status":0,"deleted":0},{"id":5411,"name":"绫诲瀷鏌ヨ","permission":"mes:tm-tool-type:query","parent_id":5410,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5412,"name":"绫诲瀷鍒涘缓","permission":"mes:tm-tool-type:create","parent_id":5410,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5413,"name":"绫诲瀷鏇存柊","permission":"mes:tm-tool-type:update","parent_id":5410,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5414,"name":"绫诲瀷鍒犻櫎","permission":"mes:tm-tool-type:delete","parent_id":5410,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5415,"name":"绫诲瀷瀵煎嚭","permission":"mes:tm-tool-type:export","parent_id":5410,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5420,"name":"宸ヨ澶瑰叿鍙拌处","permission":"","parent_id":5400,"type":2,"component":"mes/tm/tool/index","component_name":"MesTmTool","status":0,"deleted":0},{"id":5421,"name":"宸ュ叿鏌ヨ","permission":"mes:tm-tool:query","parent_id":5420,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5422,"name":"宸ュ叿鍒涘缓","permission":"mes:tm-tool:create","parent_id":5420,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5423,"name":"宸ュ叿鏇存柊","permission":"mes:tm-tool:update","parent_id":5420,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5424,"name":"宸ュ叿鍒犻櫎","permission":"mes:tm-tool:delete","parent_id":5420,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5425,"name":"宸ュ叿瀵煎嚭","permission":"mes:tm-tool:export","parent_id":5420,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5500,"name":"璐ㄩ噺绠$悊","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5510,"name":"甯歌缂洪櫡","permission":"","parent_id":5500,"type":2,"component":"mes/qc/defect/index","component_name":"MesQcDefect","status":0,"deleted":0},{"id":5511,"name":"缂洪櫡绫诲瀷鏌ヨ","permission":"mes:qc-defect:query","parent_id":5510,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5512,"name":"缂洪櫡绫诲瀷鍒涘缓","permission":"mes:qc-defect:create","parent_id":5510,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5513,"name":"缂洪櫡绫诲瀷鏇存柊","permission":"mes:qc-defect:update","parent_id":5510,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5514,"name":"缂洪櫡绫诲瀷鍒犻櫎","permission":"mes:qc-defect:delete","parent_id":5510,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5515,"name":"缂洪櫡绫诲瀷瀵煎嚭","permission":"mes:qc-defect:export","parent_id":5510,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5530,"name":"鐢熶骇璁㈠崟","permission":"","parent_id":5700,"type":2,"component":"mes/pro/workorder/index","component_name":"MesProWorkOrder","status":0,"deleted":0},{"id":5531,"name":"宸ュ崟鏌ヨ","permission":"mes:pro-work-order:query","parent_id":5530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5532,"name":"宸ュ崟鍒涘缓","permission":"mes:pro-work-order:create","parent_id":5530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5533,"name":"宸ュ崟鏇存柊","permission":"mes:pro-work-order:update","parent_id":5530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5534,"name":"宸ュ崟鍒犻櫎","permission":"mes:pro-work-order:delete","parent_id":5530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5535,"name":"宸ュ崟瀵煎嚭","permission":"mes:pro-work-order:export","parent_id":5530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5540,"name":"鐢熶骇鎺掍骇","permission":"","parent_id":5700,"type":2,"component":"mes/pro/task/index","component_name":"MesProTask","status":0,"deleted":0},{"id":5541,"name":"鎺掍骇鏌ヨ","permission":"mes:pro-task:query","parent_id":5540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5542,"name":"鎺掍骇鍒涘缓","permission":"mes:pro-task:create","parent_id":5540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5543,"name":"鎺掍骇鏇存柊","permission":"mes:pro-task:update","parent_id":5540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5544,"name":"鎺掍骇鍒犻櫎","permission":"mes:pro-task:delete","parent_id":5540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5545,"name":"鎺掍骇瀵煎嚭","permission":"mes:pro-task:export","parent_id":5540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5550,"name":"鐢熶骇鎶ュ伐","permission":"","parent_id":5700,"type":2,"component":"mes/pro/feedback/index","component_name":"MesProFeedback","status":0,"deleted":0},{"id":5551,"name":"鎶ュ伐鏌ヨ","permission":"mes:pro-feedback:query","parent_id":5550,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5552,"name":"鎶ュ伐鍒涘缓","permission":"mes:pro-feedback:create","parent_id":5550,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5553,"name":"鎶ュ伐鏇存柊","permission":"mes:pro-feedback:update","parent_id":5550,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5554,"name":"鎶ュ伐鍒犻櫎","permission":"mes:pro-feedback:delete","parent_id":5550,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5555,"name":"鎶ュ伐瀵煎嚭","permission":"mes:pro-feedback:export","parent_id":5550,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5560,"name":"宸ュ簭娴佽浆","permission":"","parent_id":5700,"type":2,"component":"mes/pro/card/index","component_name":"MesProCard","status":1,"deleted":0},{"id":5561,"name":"娴佽浆鍗℃煡璇�","permission":"mes:pro-card:query","parent_id":5560,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5562,"name":"娴佽浆鍗″垱寤�","permission":"mes:pro-card:create","parent_id":5560,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5563,"name":"娴佽浆鍗℃洿鏂�","permission":"mes:pro-card:update","parent_id":5560,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5564,"name":"娴佽浆鍗″垹闄�","permission":"mes:pro-card:delete","parent_id":5560,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5565,"name":"娴佽浆鍗″鍑�","permission":"mes:pro-card:export","parent_id":5560,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5566,"name":"娴佽浆鍗″畬鎴�","permission":"mes:pro-card:finish","parent_id":5560,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5610,"name":"妫�娴嬮」璁剧疆","permission":"","parent_id":5500,"type":2,"component":"mes/qc/indicator/index","component_name":"MesQcIndicator","status":0,"deleted":0},{"id":5611,"name":"璐ㄦ鎸囨爣鏌ヨ","permission":"mes:qc-indicator:query","parent_id":5610,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5612,"name":"璐ㄦ鎸囨爣鍒涘缓","permission":"mes:qc-indicator:create","parent_id":5610,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5613,"name":"璐ㄦ鎸囨爣鏇存柊","permission":"mes:qc-indicator:update","parent_id":5610,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5614,"name":"璐ㄦ鎸囨爣鍒犻櫎","permission":"mes:qc-indicator:delete","parent_id":5610,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5615,"name":"璐ㄦ鎸囨爣瀵煎嚭","permission":"mes:qc-indicator:export","parent_id":5610,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5630,"name":"璐ㄦ鏂规","permission":"","parent_id":5500,"type":2,"component":"mes/qc/template/index","component_name":"MesQcTemplate","status":0,"deleted":0},{"id":5631,"name":"璐ㄦ鏂规鏌ヨ","permission":"mes:qc-template:query","parent_id":5630,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5632,"name":"璐ㄦ鏂规鍒涘缓","permission":"mes:qc-template:create","parent_id":5630,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5633,"name":"璐ㄦ鏂规鏇存柊","permission":"mes:qc-template:update","parent_id":5630,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5634,"name":"璐ㄦ鏂规鍒犻櫎","permission":"mes:qc-template:delete","parent_id":5630,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5635,"name":"璐ㄦ鏂规瀵煎嚭","permission":"mes:qc-template:export","parent_id":5630,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5640,"name":"鏉ユ枡妫�楠�","permission":"","parent_id":5500,"type":2,"component":"mes/qc/iqc/index","component_name":"MesQcIqc","status":0,"deleted":0},{"id":5641,"name":"鏉ユ枡妫�楠屾煡璇�","permission":"mes:qc-iqc:query","parent_id":5640,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5642,"name":"鏉ユ枡妫�楠屽垱寤�","permission":"mes:qc-iqc:create","parent_id":5640,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5643,"name":"鏉ユ枡妫�楠屾洿鏂�","permission":"mes:qc-iqc:update","parent_id":5640,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5644,"name":"鏉ユ枡妫�楠屽垹闄�","permission":"mes:qc-iqc:delete","parent_id":5640,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5645,"name":"鏉ユ枡妫�楠屽鍑�","permission":"mes:qc-iqc:export","parent_id":5640,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5650,"name":"杩囩▼妫�楠�","permission":"","parent_id":5500,"type":2,"component":"mes/qc/ipqc/index","component_name":"MesQcIpqc","status":0,"deleted":0},{"id":5651,"name":"杩囩▼妫�楠屾煡璇�","permission":"mes:qc-ipqc:query","parent_id":5650,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5652,"name":"杩囩▼妫�楠屽垱寤�","permission":"mes:qc-ipqc:create","parent_id":5650,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5653,"name":"杩囩▼妫�楠屾洿鏂�","permission":"mes:qc-ipqc:update","parent_id":5650,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5654,"name":"杩囩▼妫�楠屽垹闄�","permission":"mes:qc-ipqc:delete","parent_id":5650,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5655,"name":"杩囩▼妫�楠屽鍑�","permission":"mes:qc-ipqc:export","parent_id":5650,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5660,"name":"鍑鸿揣妫�楠�","permission":"","parent_id":5500,"type":2,"component":"mes/qc/oqc/index","component_name":"MesQcOqc","status":0,"deleted":0},{"id":5661,"name":"鍑鸿揣妫�楠屾煡璇�","permission":"mes:qc-oqc:query","parent_id":5660,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5662,"name":"鍑鸿揣妫�楠屽垱寤�","permission":"mes:qc-oqc:create","parent_id":5660,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5663,"name":"鍑鸿揣妫�楠屾洿鏂�","permission":"mes:qc-oqc:update","parent_id":5660,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5664,"name":"鍑鸿揣妫�楠屽垹闄�","permission":"mes:qc-oqc:delete","parent_id":5660,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5665,"name":"鍑鸿揣妫�楠屽鍑�","permission":"mes:qc-oqc:export","parent_id":5660,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5670,"name":"閫�璐ф楠�","permission":"","parent_id":5500,"type":2,"component":"mes/qc/rqc/index","component_name":"MesQcRqc","status":0,"deleted":0},{"id":5671,"name":"閫�璐ф楠屾煡璇�","permission":"mes:qc-rqc:query","parent_id":5670,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5672,"name":"閫�璐ф楠屽垱寤�","permission":"mes:qc-rqc:create","parent_id":5670,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5673,"name":"閫�璐ф楠屾洿鏂�","permission":"mes:qc-rqc:update","parent_id":5670,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5674,"name":"閫�璐ф楠屽垹闄�","permission":"mes:qc-rqc:delete","parent_id":5670,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5675,"name":"閫�璐ф楠屽鍑�","permission":"mes:qc-rqc:export","parent_id":5670,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5680,"name":"寰呮浠诲姟","permission":"","parent_id":5500,"type":2,"component":"mes/qc/pendinginspect/index","component_name":"MesQcPendingInspect","status":0,"deleted":0},{"id":5681,"name":"寰呮浠诲姟鏌ヨ","permission":"mes:qc-pending-inspect:query","parent_id":5680,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5690,"name":"涓嶅悎鏍煎搧澶勭悊","permission":"","parent_id":5500,"type":2,"component":"mes/qc/ncr/index","component_name":"MesQcNcr","status":0,"deleted":0},{"id":5691,"name":"NCR鏌ヨ","permission":"mes:qc-ncr:query","parent_id":5690,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5692,"name":"NCR鍒涘缓","permission":"mes:qc-ncr:create","parent_id":5690,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5693,"name":"NCR鏇存柊","permission":"mes:qc-ncr:update","parent_id":5690,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5694,"name":"NCR鍒犻櫎","permission":"mes:qc-ncr:delete","parent_id":5690,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5695,"name":"NCR瀵煎嚭","permission":"mes:qc-ncr:export","parent_id":5690,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5696,"name":"NCR璇勫","permission":"mes:qc-ncr:review","parent_id":5690,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5697,"name":"NCR澶勭疆","permission":"mes:qc-ncr:dispose","parent_id":5690,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5698,"name":"NCR鍏抽棴","permission":"mes:qc-ncr:close","parent_id":5690,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5700,"name":"鐢熶骇绠$悊","permission":"","parent_id":5100,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5710,"name":"宸ュ簭璁剧疆","permission":"","parent_id":6809,"type":2,"component":"mes/process-design/process/index","component_name":"MesProcessDesignProcess","status":0,"deleted":0},{"id":5711,"name":"宸ュ簭鏌ヨ","permission":"mes:pro-process:query","parent_id":5710,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5712,"name":"宸ュ簭鍒涘缓","permission":"mes:pro-process:create","parent_id":5710,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5713,"name":"宸ュ簭鏇存柊","permission":"mes:pro-process:update","parent_id":5710,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5714,"name":"宸ュ簭鍒犻櫎","permission":"mes:pro-process:delete","parent_id":5710,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5715,"name":"宸ュ簭瀵煎嚭","permission":"mes:pro-process:export","parent_id":5710,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5720,"name":"宸ヨ壓璺嚎","permission":"","parent_id":6809,"type":2,"component":"mes/process-design/route/index","component_name":"MesProcessDesignRoute","status":0,"deleted":0},{"id":5721,"name":"宸ヨ壓璺嚎鏌ヨ","permission":"mes:pro-route:query","parent_id":5720,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5722,"name":"宸ヨ壓璺嚎鍒涘缓","permission":"mes:pro-route:create","parent_id":5720,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5723,"name":"宸ヨ壓璺嚎鏇存柊","permission":"mes:pro-route:update","parent_id":5720,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5724,"name":"宸ヨ壓璺嚎鍒犻櫎","permission":"mes:pro-route:delete","parent_id":5720,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5725,"name":"宸ヨ壓璺嚎瀵煎嚭","permission":"mes:pro-route:export","parent_id":5720,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5750,"name":"瀹夌伅鍛煎彨","permission":"","parent_id":5700,"type":2,"component":"mes/pro/andon/record/index","component_name":"MesProAndonRecord","status":1,"deleted":0},{"id":5751,"name":"瀹夌伅璁板綍鏌ヨ","permission":"mes:pro-andon-record:query","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5752,"name":"瀹夌伅璁板綍鍒涘缓","permission":"mes:pro-andon-record:create","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5753,"name":"瀹夌伅璁板綍鏇存柊","permission":"mes:pro-andon-record:update","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5754,"name":"瀹夌伅璁板綍鍒犻櫎","permission":"mes:pro-andon-record:delete","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5755,"name":"瀹夌伅璁板綍瀵煎嚭","permission":"mes:pro-andon-record:export","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5756,"name":"瀹夌伅閰嶇疆鏌ヨ","permission":"mes:pro-andon-config:query","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5757,"name":"瀹夌伅閰嶇疆鍒涘缓","permission":"mes:pro-andon-config:create","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5758,"name":"瀹夌伅閰嶇疆鏇存柊","permission":"mes:pro-andon-config:update","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5759,"name":"瀹夌伅閰嶇疆鍒犻櫎","permission":"mes:pro-andon-config:delete","parent_id":5750,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5780,"name":"浠撳偍鐗╂祦","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5781,"name":"浠撳簱璁剧疆","permission":"","parent_id":5780,"type":2,"component":"wls/warehouse/index","component_name":"MesWmWarehouse","status":0,"deleted":0},{"id":5782,"name":"浠撳簱鏌ヨ","permission":"mes:wm-warehouse:query","parent_id":5781,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5783,"name":"浠撳簱鍒涘缓","permission":"mes:wm-warehouse:create","parent_id":5781,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5784,"name":"浠撳簱鏇存柊","permission":"mes:wm-warehouse:update","parent_id":5781,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5785,"name":"浠撳簱鍒犻櫎","permission":"mes:wm-warehouse:delete","parent_id":5781,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5786,"name":"搴撳瓨鐜版湁閲�","permission":"","parent_id":5780,"type":2,"component":"wls/materialstock/index","component_name":"MesWmMaterialStock","status":0,"deleted":0},{"id":5787,"name":"搴撳瓨鍙拌处鏌ヨ","permission":"mes:wm-material-stock:query","parent_id":5786,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5788,"name":"搴撳瓨鍙拌处鍒涘缓","permission":"mes:wm-material-stock:create","parent_id":5786,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5789,"name":"搴撳瓨鍙拌处鏇存柊","permission":"mes:wm-material-stock:update","parent_id":5786,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5790,"name":"搴撳瓨鍙拌处鍒犻櫎","permission":"mes:wm-material-stock:delete","parent_id":5786,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5791,"name":"搴撳瓨鍙拌处瀵煎嚭","permission":"mes:wm-material-stock:export","parent_id":5786,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5792,"name":"鍒拌揣閫氱煡","permission":"","parent_id":602477,"type":2,"component":"wls/arrivalnotice/index","component_name":"MesWmArrivalNotice","status":0,"deleted":0},{"id":5793,"name":"鍒拌揣閫氱煡鍗曟煡璇�","permission":"mes:wm-arrival-notice:query","parent_id":5792,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5794,"name":"鍒拌揣閫氱煡鍗曞垱寤�","permission":"mes:wm-arrival-notice:create","parent_id":5792,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5795,"name":"鍒拌揣閫氱煡鍗曟洿鏂�","permission":"mes:wm-arrival-notice:update","parent_id":5792,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5796,"name":"鍒拌揣閫氱煡鍗曞垹闄�","permission":"mes:wm-arrival-notice:delete","parent_id":5792,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5797,"name":"鍒拌揣閫氱煡鍗曞鍑�","permission":"mes:wm-arrival-notice:export","parent_id":5792,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5798,"name":"閲囪喘鍏ュ簱","permission":"","parent_id":602477,"type":2,"component":"wls/itemreceipt/index","component_name":"MesWmItemReceipt","status":0,"deleted":0},{"id":5799,"name":"閲囪喘鍏ュ簱鍗曟煡璇�","permission":"mes:wm-item-receipt:query","parent_id":5798,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5800,"name":"閲囪喘鍏ュ簱鍗曞垱寤�","permission":"mes:wm-item-receipt:create","parent_id":5798,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5801,"name":"閲囪喘鍏ュ簱鍗曟洿鏂�","permission":"mes:wm-item-receipt:update","parent_id":5798,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5802,"name":"閲囪喘鍏ュ簱鍗曞垹闄�","permission":"mes:wm-item-receipt:delete","parent_id":5798,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5803,"name":"閲囪喘鍏ュ簱鍗曞鍑�","permission":"mes:wm-item-receipt:export","parent_id":5798,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5804,"name":"閲囪喘鍏ュ簱鍗曞畬鎴�","permission":"mes:wm-item-receipt:finish","parent_id":5798,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5805,"name":"鐢熶骇棰嗘枡","permission":"","parent_id":602478,"type":2,"component":"wls/productissue/index","component_name":"MesWmProductIssue","status":0,"deleted":0},{"id":5806,"name":"棰嗘枡鍑哄簱鍗曟煡璇�","permission":"mes:wm-product-issue:query","parent_id":5805,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5807,"name":"棰嗘枡鍑哄簱鍗曟柊澧�","permission":"mes:wm-product-issue:create","parent_id":5805,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5808,"name":"棰嗘枡鍑哄簱鍗曚慨鏀�","permission":"mes:wm-product-issue:update","parent_id":5805,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5809,"name":"棰嗘枡鍑哄簱鍗曞垹闄�","permission":"mes:wm-product-issue:delete","parent_id":5805,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5810,"name":"棰嗘枡鍑哄簱鍗曞鍑�","permission":"mes:wm-product-issue:export","parent_id":5805,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5811,"name":"棰嗘枡鍑哄簱鍗曞畬鎴�","permission":"mes:wm-product-issue:finish","parent_id":5805,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5819,"name":"浜у搧鍏ュ簱","permission":"","parent_id":602478,"type":2,"component":"wls/productreceipt/index","component_name":"MesWmProductReceipt","status":0,"deleted":0},{"id":5820,"name":"浜у搧鍏ュ簱鍗曟煡璇�","permission":"mes:wm-product-receipt:query","parent_id":5819,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5821,"name":"浜у搧鍏ュ簱鍗曟柊澧�","permission":"mes:wm-product-receipt:create","parent_id":5819,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5822,"name":"浜у搧鍏ュ簱鍗曚慨鏀�","permission":"mes:wm-product-receipt:update","parent_id":5819,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5823,"name":"浜у搧鍏ュ簱鍗曞垹闄�","permission":"mes:wm-product-receipt:delete","parent_id":5819,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5824,"name":"浜у搧鍏ュ簱鍗曞鍑�","permission":"mes:wm-product-receipt:export","parent_id":5819,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5825,"name":"浜у搧鍏ュ簱鍗曞畬鎴�","permission":"mes:wm-product-receipt:finish","parent_id":5819,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5830,"name":"閲囪喘閫�璐�","permission":"","parent_id":602477,"type":2,"component":"wls/returnvendor/index","component_name":"MesWmReturnVendor","status":0,"deleted":0},{"id":5831,"name":"渚涘簲鍟嗛��璐у崟鏌ヨ","permission":"mes:wm-return-vendor:query","parent_id":5830,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5832,"name":"渚涘簲鍟嗛��璐у崟鏂板","permission":"mes:wm-return-vendor:create","parent_id":5830,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5833,"name":"渚涘簲鍟嗛��璐у崟淇敼","permission":"mes:wm-return-vendor:update","parent_id":5830,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5834,"name":"渚涘簲鍟嗛��璐у崟鍒犻櫎","permission":"mes:wm-return-vendor:delete","parent_id":5830,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5835,"name":"渚涘簲鍟嗛��璐у崟瀵煎嚭","permission":"mes:wm-return-vendor:export","parent_id":5830,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5836,"name":"渚涘簲鍟嗛��璐у崟鐘舵�佸彉鏇�","permission":"mes:wm-return-vendor:update-status","parent_id":5830,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5840,"name":"鐢熶骇閫�鏂�","permission":"","parent_id":602478,"type":2,"component":"wls/returnissue/index","component_name":"MesWmReturnIssue","status":0,"deleted":0},{"id":5841,"name":"鐢熶骇閫�鏂欏崟鏌ヨ","permission":"mes:wm-return-issue:query","parent_id":5840,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5842,"name":"鐢熶骇閫�鏂欏崟鏂板","permission":"mes:wm-return-issue:create","parent_id":5840,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5843,"name":"鐢熶骇閫�鏂欏崟淇敼","permission":"mes:wm-return-issue:update","parent_id":5840,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5844,"name":"鐢熶骇閫�鏂欏崟鍒犻櫎","permission":"mes:wm-return-issue:delete","parent_id":5840,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5845,"name":"鐢熶骇閫�鏂欏崟瀵煎嚭","permission":"mes:wm-return-issue:export","parent_id":5840,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5846,"name":"鐢熶骇閫�鏂欏崟鎵ц","permission":"mes:wm-return-issue:finish","parent_id":5840,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5847,"name":"閿�鍞��璐�","permission":"","parent_id":602479,"type":2,"component":"wls/returnsales/index","component_name":"MesWmReturnSales","status":0,"deleted":0},{"id":5848,"name":"閿�鍞��璐у崟鏌ヨ","permission":"mes:wm-return-sales:query","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5849,"name":"閿�鍞��璐у崟鏂板","permission":"mes:wm-return-sales:create","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5850,"name":"閿�鍞��璐у崟淇敼","permission":"mes:wm-return-sales:update","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5851,"name":"閿�鍞��璐у崟鍒犻櫎","permission":"mes:wm-return-sales:delete","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5852,"name":"閿�鍞��璐у崟瀵煎嚭","permission":"mes:wm-return-sales:export","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5853,"name":"閿�鍞��璐у崟鎻愪氦","permission":"mes:wm-return-sales:submit","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5854,"name":"閿�鍞��璐у崟瀹屾垚閫�璐�","permission":"mes:wm-return-sales:finish","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5855,"name":"閿�鍞��璐у崟鎵ц涓婃灦","permission":"mes:wm-return-sales:stock","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5856,"name":"閿�鍞��璐у崟鍙栨秷","permission":"mes:wm-return-sales:cancel","parent_id":5847,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5857,"name":"鏉傞」鍑哄簱","permission":"","parent_id":5780,"type":2,"component":"wls/miscissue/index","component_name":null,"status":0,"deleted":0},{"id":5858,"name":"鏉傞」鍑哄簱鏌ヨ","permission":"mes:wm-misc-issue:query","parent_id":5857,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5859,"name":"鏉傞」鍑哄簱鏂板","permission":"mes:wm-misc-issue:create","parent_id":5857,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5860,"name":"鏉傞」鍑哄簱淇敼","permission":"mes:wm-misc-issue:update","parent_id":5857,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5861,"name":"鏉傞」鍑哄簱鍒犻櫎","permission":"mes:wm-misc-issue:delete","parent_id":5857,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5862,"name":"鏉傞」鍑哄簱瀵煎嚭","permission":"mes:wm-misc-issue:export","parent_id":5857,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5863,"name":"鏉傞」鍑哄簱鎵ц","permission":"mes:wm-misc-issue:finish","parent_id":5857,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5867,"name":"鍙戣揣閫氱煡","permission":"","parent_id":602479,"type":2,"component":"wls/salesnotice/index","component_name":"MesWmSalesNotice","status":0,"deleted":0},{"id":5868,"name":"鏌ヨ鍙戣揣閫氱煡","permission":"mes:wm-sales-notice:query","parent_id":5867,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5869,"name":"鍒涘缓鍙戣揣閫氱煡","permission":"mes:wm-sales-notice:create","parent_id":5867,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5870,"name":"鏇存柊鍙戣揣閫氱煡","permission":"mes:wm-sales-notice:update","parent_id":5867,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5871,"name":"鍒犻櫎鍙戣揣閫氱煡","permission":"mes:wm-sales-notice:delete","parent_id":5867,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5872,"name":"瀵煎嚭鍙戣揣閫氱煡","permission":"mes:wm-sales-notice:export","parent_id":5867,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5873,"name":"澶栧崗鍏ュ簱","permission":"","parent_id":5780,"type":2,"component":"wls/outsourcereceipt/index","component_name":"MesWmOutsourceReceipt","status":0,"deleted":0},{"id":5874,"name":"澶栧崗鍏ュ簱鍗曟煡璇�","permission":"mes:wm-outsource-receipt:query","parent_id":5873,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5875,"name":"澶栧崗鍏ュ簱鍗曟柊澧�","permission":"mes:wm-outsource-receipt:create","parent_id":5873,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5876,"name":"澶栧崗鍏ュ簱鍗曚慨鏀�","permission":"mes:wm-outsource-receipt:update","parent_id":5873,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5877,"name":"澶栧崗鍏ュ簱鍗曞垹闄�","permission":"mes:wm-outsource-receipt:delete","parent_id":5873,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5878,"name":"澶栧崗鍏ュ簱鍗曞鍑�","permission":"mes:wm-outsource-receipt:export","parent_id":5873,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5879,"name":"澶栧崗鍏ュ簱鍗曞畬鎴�","permission":"mes:wm-outsource-receipt:finish","parent_id":5873,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5881,"name":"澶栧崗鍙戞枡","permission":"","parent_id":5780,"type":2,"component":"wls/outsourceissue/index","component_name":"MesWmOutsourceIssue","status":0,"deleted":0},{"id":5882,"name":"澶栧崗鍙戞枡鍗曟煡璇�","permission":"mes:wm-outsource-issue:query","parent_id":5881,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5883,"name":"澶栧崗鍙戞枡鍗曟柊澧�","permission":"mes:wm-outsource-issue:create","parent_id":5881,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5884,"name":"澶栧崗鍙戞枡鍗曚慨鏀�","permission":"mes:wm-outsource-issue:update","parent_id":5881,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5885,"name":"澶栧崗鍙戞枡鍗曞垹闄�","permission":"mes:wm-outsource-issue:delete","parent_id":5881,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5886,"name":"澶栧崗鍙戞枡鍗曞鍑�","permission":"mes:wm-outsource-issue:export","parent_id":5881,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5887,"name":"澶栧崗鍙戞枡鍗曟墽琛屽嚭搴�","permission":"mes:wm-outsource-issue:execute","parent_id":5881,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5888,"name":"鏉傞」鍏ュ簱","permission":"","parent_id":5780,"type":2,"component":"wls/miscreceipt/index","component_name":null,"status":0,"deleted":0},{"id":5889,"name":"鏉傞」鍏ュ簱鏌ヨ","permission":"mes:wm:misc-receipt:query","parent_id":5888,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5890,"name":"鏉傞」鍏ュ簱鍒涘缓","permission":"mes:wm:misc-receipt:create","parent_id":5888,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5891,"name":"鏉傞」鍏ュ簱鏇存柊","permission":"mes:wm:misc-receipt:update","parent_id":5888,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5892,"name":"鏉傞」鍏ュ簱鍒犻櫎","permission":"mes:wm:misc-receipt:delete","parent_id":5888,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5893,"name":"鏉傞」鍏ュ簱鎻愪氦","permission":"mes:wm:misc-receipt:submit","parent_id":5888,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5894,"name":"鏉傞」鍏ュ簱鎵ц","permission":"mes:wm:misc-receipt:finish","parent_id":5888,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5895,"name":"鏉傞」鍏ュ簱鍙栨秷","permission":"mes:wm:misc-receipt:cancel","parent_id":5888,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5896,"name":"鏉傞」鍏ュ簱瀵煎嚭","permission":"mes:wm:misc-receipt:export","parent_id":5888,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5897,"name":"SN 鐮�","permission":"","parent_id":5780,"type":2,"component":"wls/sn/index","component_name":"MesWmSn","status":0,"deleted":0},{"id":5898,"name":"SN 鐮佹煡璇�","permission":"mes:wm-sn:query","parent_id":5897,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5899,"name":"SN 鐮佺敓鎴�","permission":"mes:wm-sn:create","parent_id":5897,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5900,"name":"SN 鐮佸垹闄�","permission":"mes:wm-sn:delete","parent_id":5897,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5901,"name":"SN 鐮佸鍑�","permission":"mes:wm-sn:export","parent_id":5897,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5906,"name":"鏉$爜閰嶇疆","permission":"","parent_id":5780,"type":2,"component":"wls/barcode/config/index","component_name":"MesWmBarcodeConfig","status":0,"deleted":0},{"id":5907,"name":"鏉$爜閰嶇疆鏌ヨ","permission":"mes:wm-barcode-config:query","parent_id":5906,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5908,"name":"鏉$爜閰嶇疆鍒涘缓","permission":"mes:wm-barcode-config:create","parent_id":5906,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5909,"name":"鏉$爜閰嶇疆鏇存柊","permission":"mes:wm-barcode-config:update","parent_id":5906,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5910,"name":"鏉$爜閰嶇疆鍒犻櫎","permission":"mes:wm-barcode-config:delete","parent_id":5906,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5911,"name":"璧嬭兘绠$悊","permission":"","parent_id":5780,"type":2,"component":"wls/barcode/index","component_name":"MesWmBarcode","status":0,"deleted":0},{"id":5912,"name":"鏉$爜娓呭崟鏌ヨ","permission":"mes:wm-barcode:query","parent_id":5911,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5913,"name":"鏉$爜娓呭崟鍒涘缓","permission":"mes:wm-barcode:create","parent_id":5911,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5914,"name":"鏉$爜娓呭崟鏇存柊","permission":"mes:wm-barcode:update","parent_id":5911,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5915,"name":"鏉$爜娓呭崟鍒犻櫎","permission":"mes:wm-barcode:delete","parent_id":5911,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5916,"name":"鏉$爜娓呭崟瀵煎嚭","permission":"mes:wm-barcode:export","parent_id":5911,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5917,"name":"瑁呯绠$悊","permission":"","parent_id":5780,"type":2,"component":"wls/packages/index","component_name":"MesWmPackages","status":0,"deleted":0},{"id":5918,"name":"瑁呯绠$悊鏌ヨ","permission":"mes:wm-package:query","parent_id":5917,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5919,"name":"瑁呯绠$悊鏂板","permission":"mes:wm-package:create","parent_id":5917,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5920,"name":"瑁呯绠$悊淇敼","permission":"mes:wm-package:update","parent_id":5917,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5921,"name":"瑁呯绠$悊鍒犻櫎","permission":"mes:wm-package:delete","parent_id":5917,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5922,"name":"杞Щ璋冩嫧","permission":"","parent_id":5780,"type":2,"component":"wls/transfer/index","component_name":"MesWmTransfer","status":0,"deleted":0},{"id":5923,"name":"璋冩嫧鍗曟煡璇�","permission":"mes:wm-transfer:query","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5924,"name":"璋冩嫧鍗曟柊澧�","permission":"mes:wm-transfer:create","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5925,"name":"璋冩嫧鍗曚慨鏀�","permission":"mes:wm-transfer:update","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5926,"name":"璋冩嫧鍗曞垹闄�","permission":"mes:wm-transfer:delete","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5927,"name":"璋冩嫧鍗曞鍑�","permission":"mes:wm-transfer:export","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5928,"name":"璋冩嫧鍗曟彁浜�","permission":"mes:wm-transfer:submit","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5929,"name":"璋冩嫧鍗曠‘璁�","permission":"mes:wm-transfer:confirm","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5930,"name":"璋冩嫧鍗曞畬鎴�","permission":"mes:wm-transfer:finish","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5931,"name":"璋冩嫧鍗曞彇娑�","permission":"mes:wm-transfer:cancel","parent_id":5922,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5950,"name":"搴撳瓨鐩樼偣","permission":"","parent_id":5780,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":5951,"name":"鐩樼偣鏂规","permission":"","parent_id":5950,"type":2,"component":"wls/stocktaking/plan/index","component_name":"MesWmStockTakingPlan","status":0,"deleted":0},{"id":5952,"name":"鐩樼偣鏂规鏌ヨ","permission":"mes:wm-stock-taking-plan:query","parent_id":5951,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5953,"name":"鐩樼偣鏂规鍒涘缓","permission":"mes:wm-stock-taking-plan:create","parent_id":5951,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5954,"name":"鐩樼偣鏂规鏇存柊","permission":"mes:wm-stock-taking-plan:update","parent_id":5951,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5955,"name":"鐩樼偣鏂规鍒犻櫎","permission":"mes:wm-stock-taking-plan:delete","parent_id":5951,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5956,"name":"鐩樼偣鏂规瀵煎嚭","permission":"mes:wm-stock-taking-plan:export","parent_id":5951,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5957,"name":"鐩樼偣浠诲姟","permission":"","parent_id":5950,"type":2,"component":"wls/stocktaking/task/index","component_name":"MesWmStockTakingTask","status":0,"deleted":0},{"id":5958,"name":"鐩樼偣浠诲姟鏌ヨ","permission":"mes:wm-stock-taking-task:query","parent_id":5957,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5959,"name":"鐩樼偣浠诲姟鍒涘缓","permission":"mes:wm-stock-taking-task:create","parent_id":5957,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5960,"name":"鐩樼偣浠诲姟鏇存柊","permission":"mes:wm-stock-taking-task:update","parent_id":5957,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5961,"name":"鐩樼偣浠诲姟鍒犻櫎","permission":"mes:wm-stock-taking-task:delete","parent_id":5957,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5962,"name":"鐩樼偣浠诲姟瀵煎嚭","permission":"mes:wm-stock-taking-task:export","parent_id":5957,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5966,"name":"鎵规杩芥函","permission":"","parent_id":5500,"type":2,"component":"mes/qc/batchtrace/index","component_name":"BatchTrace","status":0,"deleted":0},{"id":5967,"name":"鎵规杩芥函鏌ヨ","permission":"mes:wm-batch:query","parent_id":5966,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":5969,"name":"鎶ュ憡瀹℃壒","permission":"mes:pro-feedback:approve","parent_id":5550,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5970,"name":"閿�鍞嚭搴�","permission":"","parent_id":602479,"type":2,"component":"wls/productsales/index","component_name":"MesWmProductSales","status":0,"deleted":0},{"id":5971,"name":"鏌ヨ閿�鍞嚭搴�","permission":"mes:wm-product-sales:query","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5972,"name":"鍒涘缓閿�鍞嚭搴�","permission":"mes:wm-product-sales:create","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5973,"name":"鏇存柊閿�鍞嚭搴�","permission":"mes:wm-product-sales:update","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5974,"name":"鍒犻櫎閿�鍞嚭搴�","permission":"mes:wm-product-sales:delete","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5975,"name":"瀵煎嚭閿�鍞嚭搴�","permission":"mes:wm-product-sales:export","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5976,"name":"鎻愪氦閿�鍞嚭搴�","permission":"mes:wm-product-sales:submit","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5977,"name":"鎵ц鎷h揣","permission":"mes:wm-product-sales:stock","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5978,"name":"濉啓杩愬崟","permission":"mes:wm-product-sales:shipping","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5979,"name":"鎵ц鍑哄簱","permission":"mes:wm-product-sales:finish","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5980,"name":"鍙栨秷閿�鍞嚭搴�","permission":"mes:wm-product-sales:cancel","parent_id":5970,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5981,"name":"宸ヤ綔璁板綍","permission":"","parent_id":5700,"type":2,"component":"mes/pro/workrecord/index","component_name":"MesProWorkRecordLog","status":0,"deleted":0},{"id":5982,"name":"宸ヤ綔璁板綍鏌ヨ","permission":"mes:pro-workrecord:query","parent_id":5981,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5983,"name":"宸ヤ綔璁板綍瀵煎嚭","permission":"mes:pro-workrecord:export","parent_id":5981,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5984,"name":"涓婂伐涓嬪伐","permission":"mes:pro-workrecord:clock","parent_id":5981,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":5985,"name":"MES 棣栭〉","permission":"mes:home:query","parent_id":5100,"type":2,"component":"mes/home/index","component_name":"MesHome","status":0,"deleted":0},{"id":6001,"name":"浜哄姏璧勬簮","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6002,"name":"浜轰簨瀹℃壒","permission":"","parent_id":6001,"type":1,"component":null,"component_name":null,"status":1,"deleted":0},{"id":6003,"name":"璇峰亣鐢宠","permission":"","parent_id":6002,"type":2,"component":"hrm/leave/index","component_name":"HrmLeaveApplication","status":0,"deleted":0},{"id":6004,"name":"璋冨矖鐢宠","permission":"","parent_id":6002,"type":2,"component":"hrm/transfer/index","component_name":"HrmTransferApplication","status":0,"deleted":0},{"id":6005,"name":"绂昏亴鐢宠","permission":"","parent_id":6002,"type":2,"component":"hrm/resignation/index","component_name":"HrmResignationApplication","status":0,"deleted":0},{"id":6006,"name":"鍛樺伐绠$悊","permission":"","parent_id":6001,"type":2,"component":"hrm/employee/index","component_name":"HrmEmployee","status":0,"deleted":0},{"id":6010,"name":"鑰冨嫟绠$悊","permission":"","parent_id":6001,"type":1,"component":null,"component_name":null,"status":1,"deleted":0},{"id":6011,"name":"鑰冨嫟璁板綍","permission":"","parent_id":6010,"type":2,"component":"hrm/attendance/record/index","component_name":"HrmAttendanceRecord","status":0,"deleted":0},{"id":6012,"name":"鑰冨嫟寮傚父","permission":"","parent_id":6010,"type":2,"component":"hrm/attendance/exception/index","component_name":"HrmAttendanceException","status":0,"deleted":0},{"id":6013,"name":"鑰冨嫟瑙勫垯","permission":"","parent_id":6010,"type":2,"component":"hrm/attendance/rule/index","component_name":"HrmAttendanceRule","status":0,"deleted":0},{"id":6014,"name":"鑺傚亣鏃ラ厤缃�","permission":"","parent_id":6010,"type":2,"component":"hrm/attendance/holiday/index","component_name":"HrmAttendanceHoliday","status":0,"deleted":0},{"id":6015,"name":"鑰冨嫟缁熻","permission":"","parent_id":6010,"type":2,"component":"hrm/attendance/summary/index","component_name":"HrmAttendanceSummary","status":0,"deleted":0},{"id":6016,"name":"鐝绠$悊","permission":"","parent_id":6010,"type":2,"component":"hrm/shift/index","component_name":"HrmShift","status":0,"deleted":0},{"id":6017,"name":"鎺掔彮绠$悊","permission":"","parent_id":6010,"type":2,"component":"hrm/schedule/index","component_name":"HrmSchedule","status":0,"deleted":0},{"id":6020,"name":"钖叕绠$悊","permission":"","parent_id":6001,"type":1,"component":null,"component_name":null,"status":1,"deleted":0},{"id":6021,"name":"钖叕鏍哥畻","permission":"","parent_id":6020,"type":2,"component":"hrm/salary/calculation/index","component_name":"HrmSalaryCalculation","status":0,"deleted":0},{"id":6022,"name":"钖祫鍙戞斁","permission":"","parent_id":6020,"type":2,"component":"hrm/salary/payment/index","component_name":"HrmSalaryPayment","status":0,"deleted":0},{"id":6023,"name":"鍛樺伐绀句繚鍏Н閲戞。妗�","permission":"","parent_id":6020,"type":2,"component":"hrm/salary/employee-social-security/index","component_name":"HrmSocialSecurityConfig","status":0,"deleted":0},{"id":6024,"name":"涓◣绋庣巼閰嶇疆","permission":"","parent_id":6020,"type":2,"component":"hrm/salary/tax-rate-config/index","component_name":"HrmTaxRateConfig","status":0,"deleted":0},{"id":6500,"name":"IM 鍗虫椂閫氳","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":1,"deleted":0},{"id":6510,"name":"鏁版嵁缁熻","permission":"im:manager:statistics:query","parent_id":6500,"type":2,"component":"im/manager/statistics/index","component_name":"ImStatistics","status":0,"deleted":0},{"id":6515,"name":"濂藉弸鐢宠","permission":"im:manager:friend-request:query","parent_id":6600,"type":2,"component":"im/manager/friend/request/index","component_name":"ImFriendRequest","status":0,"deleted":0},{"id":6520,"name":"濂藉弸鍒楄〃","permission":"im:manager:friend:list","parent_id":6600,"type":2,"component":"im/manager/friend/index","component_name":"ImFriend","status":0,"deleted":0},{"id":6521,"name":"濂藉弸鏌ヨ","permission":"im:manager:friend:query","parent_id":6520,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6530,"name":"濂藉弸娑堟伅","permission":"im:manager:message:private:list","parent_id":6600,"type":2,"component":"im/manager/message/private/index","component_name":"ImPrivateMessage","status":0,"deleted":0},{"id":6531,"name":"绉佽亰娑堟伅鏌ヨ","permission":"im:manager:message:query","parent_id":6530,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6540,"name":"缇よ亰鍒楄〃","permission":"im:manager:group:list","parent_id":6610,"type":2,"component":"im/manager/group/index","component_name":"ImGroup","status":0,"deleted":0},{"id":6541,"name":"缇ょ粍鏌ヨ","permission":"im:manager:group:query","parent_id":6540,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6542,"name":"缇ょ粍灏佺/瑙e皝","permission":"im:manager:group:ban","parent_id":6540,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6545,"name":"缇よ亰鐢宠","permission":"im:manager:group-request:query","parent_id":6610,"type":2,"component":"im/manager/group/request/index","component_name":"ImGroupRequest","status":0,"deleted":0},{"id":6550,"name":"缇よ亰娑堟伅","permission":"im:manager:message:group:list","parent_id":6610,"type":2,"component":"im/manager/message/group/index","component_name":"ImGroupMessage","status":0,"deleted":0},{"id":6551,"name":"缇よ亰娑堟伅鏌ヨ","permission":"im:manager:message:query","parent_id":6550,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6560,"name":"鏁忔劅璇嶇鐞�","permission":"im:manager:sensitive-word:list","parent_id":6500,"type":2,"component":"im/manager/sensitiveword/index","component_name":"ImSensitiveWord","status":0,"deleted":0},{"id":6561,"name":"鏁忔劅璇嶆煡璇�","permission":"im:manager:sensitive-word:query","parent_id":6560,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6562,"name":"鏁忔劅璇嶆柊澧�","permission":"im:manager:sensitive-word:create","parent_id":6560,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6563,"name":"鏁忔劅璇嶄慨鏀�","permission":"im:manager:sensitive-word:update","parent_id":6560,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6564,"name":"鏁忔劅璇嶅垹闄�","permission":"im:manager:sensitive-word:delete","parent_id":6560,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6570,"name":"琛ㄦ儏绠$悊","permission":"","parent_id":6500,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6571,"name":"绯荤粺琛ㄦ儏","permission":"im:manager:face-pack:list","parent_id":6570,"type":2,"component":"im/manager/face/pack/index","component_name":"ImManagerFacePack","status":0,"deleted":0},{"id":6572,"name":"琛ㄦ儏鍖呮煡璇�","permission":"im:manager:face-pack:query","parent_id":6571,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6573,"name":"琛ㄦ儏鍖呭垱寤�","permission":"im:manager:face-pack:create","parent_id":6571,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6574,"name":"琛ㄦ儏鍖呬慨鏀�","permission":"im:manager:face-pack:update","parent_id":6571,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6575,"name":"琛ㄦ儏鍖呭垹闄�","permission":"im:manager:face-pack:delete","parent_id":6571,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6576,"name":"琛ㄦ儏鍥炬煡璇�","permission":"im:manager:face-pack-item:query","parent_id":6571,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6577,"name":"琛ㄦ儏鍥惧垱寤�","permission":"im:manager:face-pack-item:create","parent_id":6571,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6578,"name":"琛ㄦ儏鍥句慨鏀�","permission":"im:manager:face-pack-item:update","parent_id":6571,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6579,"name":"琛ㄦ儏鍥惧垹闄�","permission":"im:manager:face-pack-item:delete","parent_id":6571,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6580,"name":"鐢ㄦ埛琛ㄦ儏","permission":"im:manager:face-user-item:list","parent_id":6570,"type":2,"component":"im/manager/face/userItem/index","component_name":"ImManagerFaceUserItem","status":0,"deleted":0},{"id":6581,"name":"鐢ㄦ埛琛ㄦ儏鏌ヨ","permission":"im:manager:face-user-item:query","parent_id":6580,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6582,"name":"鐢ㄦ埛琛ㄦ儏鍒犻櫎","permission":"im:manager:face-user-item:delete","parent_id":6580,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":6600,"name":"绉佽亰绠$悊","permission":"","parent_id":6500,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6610,"name":"缇よ亰绠$悊","permission":"","parent_id":6500,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6611,"name":"閫氳瘽璁板綍","permission":"","parent_id":6500,"type":2,"component":"im/manager/rtc/index","component_name":"ImRtcCall","status":0,"deleted":0},{"id":6612,"name":"閫氳瘽璁板綍鏌ヨ","permission":"im:manager:rtc:query","parent_id":6611,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6700,"name":"棰戦亾绠$悊","permission":"","parent_id":6500,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":6710,"name":"棰戦亾鍒楄〃","permission":"","parent_id":6700,"type":2,"component":"im/manager/channel/list/index","component_name":"ImChannel","status":0,"deleted":0},{"id":6711,"name":"棰戦亾鏌ヨ","permission":"im:manager:channel:query","parent_id":6710,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6712,"name":"棰戦亾鍒涘缓","permission":"im:manager:channel:create","parent_id":6710,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6713,"name":"棰戦亾淇敼","permission":"im:manager:channel:update","parent_id":6710,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6714,"name":"棰戦亾鍒犻櫎","permission":"im:manager:channel:delete","parent_id":6710,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6720,"name":"棰戦亾绱犳潗","permission":"","parent_id":6700,"type":2,"component":"im/manager/channel/material/index","component_name":"ImChannelMaterial","status":0,"deleted":0},{"id":6721,"name":"绱犳潗鏌ヨ","permission":"im:manager:channel-material:query","parent_id":6720,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6722,"name":"绱犳潗鍒涘缓","permission":"im:manager:channel-material:create","parent_id":6720,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6723,"name":"绱犳潗淇敼","permission":"im:manager:channel-material:update","parent_id":6720,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6724,"name":"绱犳潗鍒犻櫎","permission":"im:manager:channel-material:delete","parent_id":6720,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6730,"name":"棰戦亾娑堟伅","permission":"","parent_id":6700,"type":2,"component":"im/manager/channel/message/index","component_name":"ImChannelMessage","status":0,"deleted":0},{"id":6731,"name":"娑堟伅鏌ヨ","permission":"im:manager:channel-message:query","parent_id":6730,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6732,"name":"绔嬪嵆鎺ㄩ��","permission":"im:manager:channel-message:send","parent_id":6730,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6733,"name":"娑堟伅鍒犻櫎","permission":"im:manager:channel-message:delete","parent_id":6730,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6734,"name":"瑙f暎缇�","permission":"im:manager:group:dissolve","parent_id":6540,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":6809,"name":"宸ヨ壓璁捐","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":60031,"name":"璇峰亣鐢宠鏌ヨ","permission":"hrm:leave:query","parent_id":6003,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60032,"name":"璇峰亣鐢宠鏂板","permission":"hrm:leave:create","parent_id":6003,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60033,"name":"璇峰亣鐢宠淇敼","permission":"hrm:leave:update","parent_id":6003,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60034,"name":"璇峰亣鐢宠鍒犻櫎","permission":"hrm:leave:delete","parent_id":6003,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60035,"name":"璇峰亣鐢宠鎻愪氦","permission":"hrm:leave:submit","parent_id":6003,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60041,"name":"璋冨矖鐢宠鎾ら攢","permission":"hrm:transfer:cancel","parent_id":6004,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60042,"name":"璋冨矖鐢宠鏂板","permission":"hrm:transfer:create","parent_id":6004,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60043,"name":"璋冨矖鐢宠淇敼","permission":"hrm:transfer:update","parent_id":6004,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60044,"name":"璋冨矖鐢宠鍒犻櫎","permission":"hrm:transfer:delete","parent_id":6004,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60045,"name":"璋冨矖鐢宠鎻愪氦","permission":"hrm:transfer:submit","parent_id":6004,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60051,"name":"绂昏亴鐢宠鎾ら攢","permission":"hrm:resignation:cancel","parent_id":6005,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60052,"name":"绂昏亴鐢宠鏂板","permission":"hrm:resignation:create","parent_id":6005,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60053,"name":"绂昏亴鐢宠淇敼","permission":"hrm:resignation:update","parent_id":6005,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60054,"name":"绂昏亴鐢宠鍒犻櫎","permission":"hrm:resignation:delete","parent_id":6005,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60055,"name":"绂昏亴鐢宠鎻愪氦","permission":"hrm:resignation:submit","parent_id":6005,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60061,"name":"鍛樺伐鏌ヨ","permission":"hrm:employee:query","parent_id":6006,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60062,"name":"鍛樺伐鏂板","permission":"hrm:employee:create","parent_id":6006,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60063,"name":"鍛樺伐淇敼","permission":"hrm:employee:update","parent_id":6006,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60064,"name":"鍛樺伐鍒犻櫎","permission":"hrm:employee:delete","parent_id":6006,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60065,"name":"鍛樺伐瀵煎嚭","permission":"hrm:employee:export","parent_id":6006,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60066,"name":"鍛樺伐瀵煎叆","permission":"hrm:employee:import","parent_id":6006,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":60112,"name":"鑰冨嫟璁板綍瀵煎叆","permission":"hrm:attendance-record:import","parent_id":6011,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60113,"name":"鑰冨嫟璁板綍瀵煎嚭","permission":"hrm:attendance-record:export","parent_id":6011,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60114,"name":"鎵撳崱","permission":"hrm:attendance-record:clock","parent_id":6011,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60132,"name":"鑰冨嫟瑙勫垯鏂板","permission":"hrm:attendance-rule:create","parent_id":6013,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60133,"name":"鑰冨嫟瑙勫垯淇敼","permission":"hrm:attendance-rule:update","parent_id":6013,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60134,"name":"鑰冨嫟瑙勫垯鍒犻櫎","permission":"hrm:attendance-rule:delete","parent_id":6013,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60135,"name":"鑰冨嫟瑙勫垯瀵煎嚭","permission":"hrm:attendance-rule:export","parent_id":6013,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60142,"name":"鑺傚亣鏃ラ厤缃柊澧�","permission":"hrm:attendance-holiday:create","parent_id":6014,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60143,"name":"鑺傚亣鏃ラ厤缃慨鏀�","permission":"hrm:attendance-holiday:update","parent_id":6014,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60144,"name":"鑺傚亣鏃ラ厤缃垹闄�","permission":"hrm:attendance-holiday:delete","parent_id":6014,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60145,"name":"鑺傚亣鏃ラ厤缃鍑�","permission":"hrm:attendance-holiday:export","parent_id":6014,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60152,"name":"鑰冨嫟缁熻鐢熸垚","permission":"hrm:attendance-summary:generate","parent_id":6015,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60153,"name":"鑰冨嫟缁熻瀵煎嚭","permission":"hrm:attendance-summary:export","parent_id":6015,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60161,"name":"鐝鏌ヨ","permission":"hrm:shift:query","parent_id":6016,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60162,"name":"鐝鏂板","permission":"hrm:shift:create","parent_id":6016,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60163,"name":"鐝淇敼","permission":"hrm:shift:update","parent_id":6016,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60164,"name":"鐝鍒犻櫎","permission":"hrm:shift:delete","parent_id":6016,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60165,"name":"鐝瀵煎嚭","permission":"hrm:shift:export","parent_id":6016,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60171,"name":"鎺掔彮鏌ヨ","permission":"hrm:employee-schedule:query","parent_id":6017,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60172,"name":"鎺掔彮淇濆瓨","permission":"hrm:employee-schedule:save","parent_id":6017,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60212,"name":"钖叕鏍哥畻鎵ц","permission":"hrm:salary-calculation:calculate","parent_id":6021,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60213,"name":"钖叕鏍哥畻纭","permission":"hrm:salary-calculation:confirm","parent_id":6021,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60214,"name":"钖叕鏍哥畻瀵煎嚭","permission":"hrm:salary-calculation:export","parent_id":6021,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60242,"name":"鎾ら攢","permission":"hrm:leave:cancel","parent_id":6003,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60243,"name":"鏂板","permission":"hrm:attendance-exception:create","parent_id":6012,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60244,"name":"鍙戞斁","permission":"hrm:salary-payment:pay","parent_id":6022,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":60245,"name":"瀵煎嚭","permission":"hrm:salary-payment:export","parent_id":6022,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602322,"name":"绀句繚閰嶇疆鏂板","permission":"hrm:employee-social-security:create","parent_id":6023,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602333,"name":"绀句繚閰嶇疆淇敼","permission":"hrm:employee-social-security:update","parent_id":6023,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602344,"name":"绀句繚閰嶇疆鍒犻櫎","permission":"hrm:employee-social-security:delete","parent_id":6023,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602422,"name":"涓◣閰嶇疆鏂板","permission":"hrm:tax-rate-config:create","parent_id":6024,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602433,"name":"涓◣閰嶇疆淇敼","permission":"hrm:tax-rate-config:update","parent_id":6024,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602444,"name":"涓◣閰嶇疆鍒犻櫎","permission":"hrm:tax-rate-config:delete","parent_id":6024,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602445,"name":"绀句繚鍏Н閲戞柟妗�","permission":"","parent_id":6020,"type":2,"component":"hrm/salary/social-security-scheme/index","component_name":null,"status":0,"deleted":0},{"id":602446,"name":"鏂板","permission":"hrm:social-security-scheme:create","parent_id":602445,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602447,"name":"缂栬緫","permission":"hrm:social-security-scheme:update","parent_id":602445,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602448,"name":"鍒犻櫎","permission":"hrm:social-security-scheme:delete","parent_id":602445,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602449,"name":"璇峰亣鎵f閰嶇疆","permission":"","parent_id":6020,"type":2,"component":"hrm/salary/leave-type-config/index","component_name":null,"status":0,"deleted":0},{"id":602450,"name":"缂栬緫","permission":"hrm:leave-type-config:update","parent_id":602449,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602451,"name":"鎻愪氦","permission":"hrm:attendance-exception:submit","parent_id":6012,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602452,"name":"搴撳尯鍒楄〃","permission":"","parent_id":5780,"type":2,"component":"/wls/warehouse/location/index","component_name":null,"status":0,"deleted":0},{"id":602453,"name":"搴撲綅鍒楄〃","permission":"","parent_id":5780,"type":2,"component":"/wls/warehouse/area/index","component_name":null,"status":0,"deleted":0},{"id":602455,"name":"鍩虹鏁版嵁","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":602461,"name":"鐗╂枡绠$悊","permission":"","parent_id":602455,"type":2,"component":"basicData/mdm/index","component_name":"MdmItem","status":0,"deleted":0},{"id":602462,"name":"鐗╂枡鏌ヨ","permission":"mdm:item:query","parent_id":602461,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602463,"name":"鐗╂枡鍒涘缓","permission":"mdm:item:create","parent_id":602461,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602464,"name":"鐗╂枡鏇存柊","permission":"mdm:item:update","parent_id":602461,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602465,"name":"鐗╂枡鍒犻櫎","permission":"mdm:item:delete","parent_id":602461,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602466,"name":"鐗╂枡瀵煎嚭","permission":"mdm:item:export","parent_id":602461,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602467,"name":"璁¢噺鍗曚綅","permission":"","parent_id":602455,"type":2,"component":"basicData/mdm/unit/index","component_name":"MdmUnit","status":0,"deleted":0},{"id":602468,"name":"璁¢噺鍗曚綅鏌ヨ","permission":"mdm:unit:query","parent_id":602467,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602469,"name":"璁¢噺鍗曚綅鍒涘缓","permission":"mdm:unit:create","parent_id":602467,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602470,"name":"璁¢噺鍗曚綅鏇存柊","permission":"mdm:unit:update","parent_id":602467,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602471,"name":"璁¢噺鍗曚綅鍒犻櫎","permission":"mdm:unit:delete","parent_id":602467,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602472,"name":"璋冩暣","permission":"mes:wm-material-stock:adjust","parent_id":5786,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602474,"name":"鍩虹鍙傛暟","permission":"","parent_id":6809,"type":2,"component":"mes/process-design/parameter/index","component_name":"MesParameter","status":0,"deleted":0},{"id":602475,"name":"鍙傛暟妯℃澘","permission":"","parent_id":6809,"type":2,"component":"mes/process-design/template/index","component_name":"MesTemplate","status":0,"deleted":0},{"id":602476,"name":"搴撳瓨浜嬪姟娴佹按","permission":"","parent_id":5780,"type":2,"component":"wls/transaction/index","component_name":null,"status":0,"deleted":0},{"id":602477,"name":"閲囪喘浠撳簱","permission":"","parent_id":5780,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":602478,"name":"鐢熶骇浠撳簱","permission":"","parent_id":5780,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":602479,"name":"閿�鍞粨搴�","permission":"","parent_id":5780,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":602480,"name":"鍒涘缓宸ヨ壓鍙傛暟","permission":"mes:pd:parameter:create","parent_id":602474,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602481,"name":"缂栬緫宸ヨ壓鍙傛暟","permission":"mes:pd:parameter:update","parent_id":602474,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602482,"name":"鍒犻櫎宸ヨ壓鍙傛暟","permission":"mes:pd:parameter:delete","parent_id":602474,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602483,"name":"瀵煎嚭宸ヨ壓鍙傛暟","permission":"mes:pd:parameter:export","parent_id":602474,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602484,"name":"鍒涘缓宸ヨ壓鍙傛暟妯℃澘","permission":"mes:pd:template:create","parent_id":602475,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602485,"name":"缂栬緫宸ヨ壓鍙傛暟妯℃澘","permission":"mes:pd:template:update","parent_id":602475,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602486,"name":"鍒犻櫎宸ヨ壓鍙傛暟妯℃澘","permission":"mes:pd:template:delete","parent_id":602475,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602487,"name":"瀵煎嚭宸ヨ壓鍙傛暟妯℃澘","permission":"mes:pd:template:export","parent_id":602475,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602498,"name":"閲囪喘鐢宠","permission":"","parent_id":2602,"type":2,"component":"erp/purchase/request/index","component_name":null,"status":0,"deleted":0},{"id":602499,"name":"鏂板","permission":"erp:purchase-request:create","parent_id":602498,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602500,"name":"瀵煎嚭","permission":"erp:purchase-request:export","parent_id":602498,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602501,"name":"鍒犻櫎","permission":"erp:purchase-request:delete","parent_id":602498,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602502,"name":"缂栬緫","permission":"erp:purchase-request:update","parent_id":602498,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602503,"name":"纭鏀惰揣","permission":"erp:purchase-order:confirm-receipt","parent_id":2666,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602504,"name":"鐢熶骇璁″垝","permission":"","parent_id":5700,"type":2,"component":"mes/pro/mps/index","component_name":null,"status":0,"deleted":0},{"id":602505,"name":"瀵煎嚭","permission":"mes:pro-mps:export","parent_id":602504,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602506,"name":"鍚堝苟涓嬪彂","permission":"mes:pro-mps:merge-issue","parent_id":602504,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602507,"name":"缂栬緫","permission":"mes:pro-mps:update","parent_id":602504,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602508,"name":"涓嬪彂","permission":"mes:pro-mps:issue","parent_id":602504,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602509,"name":"鍙栨秷","permission":"mes:pro-mps:cancel","parent_id":602504,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602510,"name":"鍒犻櫎","permission":"mes:pro-mps:delete","parent_id":602504,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602511,"name":"鏂板","permission":"mes:pro-mps:create","parent_id":602504,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602512,"name":"閿�鍞姤浠�","permission":"","parent_id":2617,"type":2,"component":"crm/saleQuotation/index","component_name":null,"status":0,"deleted":0},{"id":602513,"name":"鏂板","permission":"crm:sale-quotation:create","parent_id":602512,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602514,"name":"缂栬緫","permission":"crm:sale-quotation:update","parent_id":602512,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602515,"name":"杞悎鍚�","permission":"crm:sale-quotation:update","parent_id":602512,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602516,"name":"鍒犻櫎","permission":"crm:sale-quotation:delete","parent_id":602512,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602517,"name":"鏂囦欢瀛樺偍","permission":"","parent_id":1,"type":2,"component":"","component_name":"","status":0,"deleted":0},{"id":602518,"name":"鏂囦欢涓婁紶","permission":"system:storage-blob:upload","parent_id":602517,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602519,"name":"鍏叡鏂囦欢涓婁紶","permission":"system:storage-blob:public-upload","parent_id":602517,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602520,"name":"闄勪欢鏌ヨ","permission":"system:storage-attachment:query","parent_id":602517,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602521,"name":"闄勪欢缁戝畾","permission":"system:storage-attachment:create","parent_id":602517,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602522,"name":"闄勪欢鍒犻櫎","permission":"system:storage-attachment:delete","parent_id":602517,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602523,"name":"绉诲簱","permission":"mes:wm-material-stock:move","parent_id":5786,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602524,"name":"SRM 渚涘簲鍟嗙鐞�","permission":"","parent_id":2602,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":602525,"name":"渚涘簲鍟嗘。妗�","permission":"","parent_id":602524,"type":2,"component":"srm/supplier/index","component_name":"SrmSupplier","status":0,"deleted":0},{"id":602526,"name":"渚涘簲鍟嗘煡璇�","permission":"srm:supplier:query","parent_id":602525,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602527,"name":"渚涘簲鍟嗗垱寤�","permission":"srm:supplier:create","parent_id":602525,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602528,"name":"渚涘簲鍟嗘洿鏂�","permission":"srm:supplier:update","parent_id":602525,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602529,"name":"渚涘簲鍟嗗垹闄�","permission":"srm:supplier:delete","parent_id":602525,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602530,"name":"渚涘簲鍟嗗噯鍏�","permission":"","parent_id":602524,"type":2,"component":"srm/supplierApply/index","component_name":"SrmSupplierApply","status":0,"deleted":0},{"id":602531,"name":"鍑嗗叆鏌ヨ","permission":"srm:supplier-apply:query","parent_id":602530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602532,"name":"鍑嗗叆鍒涘缓","permission":"srm:supplier-apply:create","parent_id":602530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602533,"name":"鍑嗗叆鏇存柊","permission":"srm:supplier-apply:update","parent_id":602530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602534,"name":"鍑嗗叆鍒犻櫎","permission":"srm:supplier-apply:delete","parent_id":602530,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602535,"name":"渚涘簲鍟嗚祫璐�","permission":"","parent_id":602524,"type":2,"component":"srm/supplierCertificate/index","component_name":"SrmSupplierCertificate","status":0,"deleted":0},{"id":602536,"name":"璧勮川鏌ヨ","permission":"srm:supplier-certificate:query","parent_id":602535,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602537,"name":"璧勮川鍒涘缓","permission":"srm:supplier-certificate:create","parent_id":602535,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602538,"name":"璧勮川鏇存柊","permission":"srm:supplier-certificate:update","parent_id":602535,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602539,"name":"璧勮川鍒犻櫎","permission":"srm:supplier-certificate:delete","parent_id":602535,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602540,"name":"渚涘簲鍟嗙哗鏁�","permission":"","parent_id":602524,"type":2,"component":"srm/supplierEvaluation/index","component_name":"SrmSupplierEvaluation","status":0,"deleted":0},{"id":602541,"name":"璇勪环鏌ヨ","permission":"srm:supplier-evaluation:query","parent_id":602540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602542,"name":"璇勪环鍒涘缓","permission":"srm:supplier-evaluation:create","parent_id":602540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602543,"name":"璇勪环鏇存柊","permission":"srm:supplier-evaluation:update","parent_id":602540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602544,"name":"璇勪环鍒犻櫎","permission":"srm:supplier-evaluation:delete","parent_id":602540,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602545,"name":"鎷涙姇鏍囩鐞�","permission":"","parent_id":602524,"type":2,"component":"srm/tender/index","component_name":"SrmTender","status":0,"deleted":0},{"id":602546,"name":"鎷涙爣鏌ヨ","permission":"srm:tender-project:query","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602547,"name":"鎷涙爣鍒涘缓","permission":"srm:tender-project:create","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602548,"name":"鎷涙爣鏇存柊","permission":"srm:tender-project:update","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602549,"name":"鎷涙爣鍒犻櫎","permission":"srm:tender-project:delete","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602550,"name":"鎶曟爣鏌ヨ","permission":"srm:tender-bid:query","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602551,"name":"鎶曟爣鍒涘缓","permission":"srm:tender-bid:create","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602552,"name":"鎶曟爣鏇存柊","permission":"srm:tender-bid:update","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602553,"name":"鎶ヤ环鏌ヨ","permission":"srm:supplier-quote:query","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602554,"name":"鎶ヤ环鍒涘缓","permission":"srm:supplier-quote:create","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602555,"name":"鎶ヤ环鏇存柊","permission":"srm:supplier-quote:update","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602556,"name":"璇勬爣鏌ヨ","permission":"srm:bid-evaluation:query","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602557,"name":"璇勬爣鍒涘缓","permission":"srm:bid-evaluation:create","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602558,"name":"璇勬爣鏇存柊","permission":"srm:bid-evaluation:update","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602559,"name":"寮�鏍囨煡璇�","permission":"srm:bid-open:query","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602560,"name":"寮�鏍囧垱寤�","permission":"srm:bid-open:create","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602561,"name":"瀹氭爣鏌ヨ","permission":"srm:bid-award:query","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602562,"name":"瀹氭爣鍒涘缓","permission":"srm:bid-award:create","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602563,"name":"瀹氭爣鏇存柊","permission":"srm:bid-award:update","parent_id":602545,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602569,"name":"缁熻鍒嗘瀽","permission":"","parent_id":602524,"type":2,"component":"srm/statistics/index","component_name":"SrmStatistics","status":0,"deleted":0},{"id":602570,"name":"缁熻鏌ヨ","permission":"srm:statistics:query","parent_id":602569,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602571,"name":"浜у搧璁捐","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":602572,"name":"璁捐椤圭洰","permission":"","parent_id":602571,"type":2,"component":"mes/pd/project/index","component_name":"MesPdProject","status":0,"deleted":0},{"id":602573,"name":"璁捐椤圭洰鏌ヨ","permission":"mes:pd-project:query","parent_id":602572,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602574,"name":"璁捐椤圭洰鍒涘缓","permission":"mes:pd-project:create","parent_id":602572,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602575,"name":"璁捐椤圭洰鏇存柊","permission":"mes:pd-project:update","parent_id":602572,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602576,"name":"璁捐椤圭洰鍒犻櫎","permission":"mes:pd-project:delete","parent_id":602572,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602577,"name":"璁捐椤圭洰瀵煎嚭","permission":"mes:pd-project:export","parent_id":602572,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602578,"name":"璁捐褰掓。","permission":"","parent_id":602571,"type":2,"component":"mes/pd/archive/index","component_name":"MesPdArchive","status":0,"deleted":0},{"id":602579,"name":"璁捐褰掓。鏌ヨ","permission":"mes:pd-archive:query","parent_id":602578,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602580,"name":"璁捐褰掓。鏇存柊","permission":"mes:pd-archive:update","parent_id":602578,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602581,"name":"璁捐褰掓。鍒犻櫎","permission":"mes:pd-archive:delete","parent_id":602578,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602582,"name":"璁捐褰掓。瀵煎嚭","permission":"mes:pd-archive:export","parent_id":602578,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602583,"name":"鏌ョ湅鍏ㄩ儴瀹㈡埛","permission":"crm:customer:view-all","parent_id":2546,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":602584,"name":"鍙戝竷","permission":"mes:pd-project:update","parent_id":602572,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602585,"name":"瀹℃牳","permission":"mes:pd-project:audit","parent_id":602572,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602586,"name":"褰掓。","permission":"mes:pd-project:archive","parent_id":602572,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602587,"name":"鍞悗绠$悊","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":602588,"name":"鍞悗宸ュ崟","permission":"","parent_id":602587,"type":2,"component":"/aftersales/ticket/index","component_name":null,"status":0,"deleted":0},{"id":602589,"name":"閫�璐х敵璇�","permission":"","parent_id":602587,"type":2,"component":"/aftersales/return/index","component_name":null,"status":0,"deleted":0},{"id":602590,"name":"鏂板","permission":"aftersales:ticket:create","parent_id":602588,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602591,"name":"缂栬緫銆佸垎閰嶃�佸畬缁撶瓑","permission":"aftersales:ticket:update","parent_id":602588,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602592,"name":"鍒犻櫎","permission":"aftersales:ticket:delete","parent_id":602588,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602593,"name":"鏂板","permission":"aftersales:return:create","parent_id":602589,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602594,"name":"瀹℃牳","permission":"aftersales:return:approve","parent_id":602589,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602595,"name":"鏌ョ湅鍏ㄩ儴","permission":"aftersales:admin","parent_id":602588,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602596,"name":"API瀵嗛挜绠$悊","permission":"","parent_id":1185,"type":2,"component":"ai/model/apiKey/index","component_name":null,"status":0,"deleted":0},{"id":602597,"name":"鏂板","permission":"ai:api-key:create","parent_id":602596,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602598,"name":"缂栬緫","permission":"ai:api-key:update","parent_id":602596,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602599,"name":"鍒犻櫎","permission":"ai:api-key:delete","parent_id":602596,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602600,"name":"妯″瀷绠$悊","permission":"","parent_id":1185,"type":2,"component":"ai/model/model/index","component_name":null,"status":0,"deleted":0},{"id":602601,"name":"鏂板","permission":"ai:model:create","parent_id":602600,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602602,"name":"缂栬緫","permission":"ai:model:update","parent_id":602600,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602603,"name":"鍒犻櫎","permission":"ai:model:delete","parent_id":602600,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602604,"name":"鐭ヨ瘑搴撶鐞�","permission":"","parent_id":1185,"type":2,"component":"ai/knowledge/knowledge/index","component_name":null,"status":0,"deleted":0},{"id":602605,"name":"鏂板","permission":"ai:knowledge:create","parent_id":602604,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602606,"name":"缂栬緫","permission":"ai:knowledge:update","parent_id":602604,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602607,"name":"鍒犻櫎","permission":"ai:knowledge:delete","parent_id":602604,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602608,"name":"閫氱煡鍏憡","permission":"","parent_id":1185,"type":2,"component":"bpm/oa/notice/index","component_name":null,"status":0,"deleted":0},{"id":602609,"name":"鏂板","permission":"bpm:oa-notice:create","parent_id":602608,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602610,"name":"缂栬緫","permission":"bpm:oa-notice:update","parent_id":602608,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":602611,"name":"鍒犻櫎","permission":"bpm:oa-notice:delete","parent_id":602608,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063000,"name":"鍐崇瓥BI澶у睆","permission":"","parent_id":0,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1063001,"name":"閲囪喘閿�鍞敭鍚庡ぇ灞�","permission":"","parent_id":1063000,"type":2,"component":"bi/dashboard/index","component_name":"BiPurchaseSalesDashboard","status":0,"deleted":0},{"id":1063002,"name":"浠撳簱澶у睆","permission":"","parent_id":1063000,"type":2,"component":"bi/warehouse/index","component_name":"BiWarehouseDashboard","status":1,"deleted":0},{"id":1063003,"name":"鐢熶骇璁惧澶у睆","permission":"","parent_id":1063000,"type":2,"component":"bi/dashboard/index","component_name":"BiProductionEquipmentDashboard","status":0,"deleted":0},{"id":1063004,"name":"璐ㄩ噺澶у睆","permission":"","parent_id":1063000,"type":2,"component":"bi/dashboard/index","component_name":"BiQualityDashboard","status":0,"deleted":0},{"id":1063005,"name":"浜鸿祫鍔炲叕澶у睆","permission":"","parent_id":1063000,"type":2,"component":"bi/dashboard/index","component_name":"BiHrOaDashboard","status":0,"deleted":0},{"id":1063006,"name":"閰嶇疆绠$悊","permission":"","parent_id":1063000,"type":1,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1063007,"name":"鍥捐〃閰嶇疆","permission":"","parent_id":1063006,"type":2,"component":"bi/config/chart/index","component_name":"BiChartConfig","status":0,"deleted":0},{"id":1063008,"name":"鏁版嵁婧愰厤缃�","permission":"","parent_id":1063006,"type":2,"component":"bi/config/data-source/index","component_name":"BiDataSourceConfig","status":0,"deleted":0},{"id":1063009,"name":"浠撳簱鍧愭爣閰嶇疆","permission":"","parent_id":1063006,"type":2,"component":"bi/config/warehouse-coordinate/index","component_name":"","status":0,"deleted":0},{"id":1063071,"name":"鍥捐〃閰嶇疆鏌ヨ","permission":"bi:chart-config:query","parent_id":1063007,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063072,"name":"鍥捐〃閰嶇疆鏂板","permission":"bi:chart-config:create","parent_id":1063007,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063073,"name":"鍥捐〃閰嶇疆淇敼","permission":"bi:chart-config:update","parent_id":1063007,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063074,"name":"鍥捐〃閰嶇疆鍒犻櫎","permission":"bi:chart-config:delete","parent_id":1063007,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063081,"name":"鏁版嵁婧愰厤缃煡璇�","permission":"bi:data-source-config:query","parent_id":1063008,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063082,"name":"鏁版嵁婧愰厤缃柊澧�","permission":"bi:data-source-config:create","parent_id":1063008,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063083,"name":"鏁版嵁婧愰厤缃慨鏀�","permission":"bi:data-source-config:update","parent_id":1063008,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063084,"name":"鏁版嵁婧愰厤缃垹闄�","permission":"bi:data-source-config:delete","parent_id":1063008,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063091,"name":"浠撳簱鍧愭爣鏌ヨ","permission":"bi:warehouse-coordinate:query","parent_id":1063009,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063092,"name":"浠撳簱鍧愭爣淇敼","permission":"bi:warehouse-coordinate:update","parent_id":1063009,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063093,"name":"寮�绁ㄧ鐞�","permission":"","parent_id":2617,"type":2,"component":"crm/invoice/index","component_name":null,"status":0,"deleted":0},{"id":1063094,"name":"瀵煎嚭","permission":"crm:invoice:export","parent_id":1063093,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063095,"name":"鏂板缓寮�绁�","permission":"crm:invoice:create","parent_id":1063093,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063096,"name":"缂栬緫 / 鎻愪氦瀹℃牳 / 鏌ョ湅瀹℃壒","permission":"crm:invoice:update","parent_id":1063093,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063097,"name":"鍒犻櫎寮�绁�","permission":"crm:invoice:delete","parent_id":1063093,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063105,"name":"鍛樺伐鍚堝悓","permission":"","parent_id":6001,"type":2,"component":"hrm/employee/contract/index","component_name":null,"status":1,"deleted":0},{"id":1063106,"name":"鍚堝悓鏌ヨ","permission":"hrm:employee-contract:query","parent_id":1063105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063107,"name":"鍚堝悓鏂板","permission":"hrm:employee-contract:create","parent_id":1063105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063108,"name":"鍚堝悓淇敼","permission":"hrm:employee-contract:update","parent_id":1063105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063109,"name":"鍚堝悓鍒犻櫎","permission":"hrm:employee-contract:delete","parent_id":1063105,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1063110,"name":"閲囪喘鏉ョエ","permission":"","parent_id":2602,"type":2,"component":"erp/purchase/invoice/index","component_name":"ErpPurchaseInvoice","status":0,"deleted":0},{"id":1063111,"name":"鏉ョエ鏌ヨ","permission":"erp:purchase-invoice:query","parent_id":1063110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063112,"name":"鏉ョエ鍒涘缓","permission":"erp:purchase-invoice:create","parent_id":1063110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063113,"name":"鏉ョエ鏇存柊","permission":"erp:purchase-invoice:update","parent_id":1063110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063114,"name":"鏉ョエ鍒犻櫎","permission":"erp:purchase-invoice:delete","parent_id":1063110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063115,"name":"鏉ョエ瀵煎嚭","permission":"erp:purchase-invoice:export","parent_id":1063110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063116,"name":"浠樻","permission":"","parent_id":2602,"type":2,"component":"erp/finance/payment/index","component_name":"","status":0,"deleted":0},{"id":1063117,"name":"浠樻鍗曟煡璇�","permission":"erp:finance-payment:query","parent_id":1063116,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063118,"name":"浠樻鍗曞垱寤�","permission":"erp:finance-payment:create","parent_id":1063116,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063119,"name":"浠樻鍗曟洿鏂�","permission":"erp:finance-payment:update","parent_id":1063116,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063120,"name":"浠樻鍗曞垹闄�","permission":"erp:finance-payment:delete","parent_id":1063116,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063121,"name":"浠樻鍗曞鍑�","permission":"erp:finance-payment:export","parent_id":1063116,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1063122,"name":"浠樻鍗曞鎵�","permission":"erp:finance-payment:update-status","parent_id":1063116,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065000,"name":"閿�鍞鍒�","permission":"","parent_id":2617,"type":2,"component":"crm/salesTarget/index","component_name":"","status":0,"deleted":0},{"id":1065001,"name":"閿�鍞鍒掓煡璇�","permission":"crm:sales-target:query","parent_id":1065000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065002,"name":"閿�鍞鍒掑垱寤�","permission":"crm:sales-target:create","parent_id":1065000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065003,"name":"閿�鍞鍒掓洿鏂�","permission":"crm:sales-target:update","parent_id":1065000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065004,"name":"閿�鍞鍒掑垹闄�","permission":"crm:sales-target:delete","parent_id":1065000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065005,"name":"閿�鍞鍒掑鍑�","permission":"crm:sales-target:export","parent_id":1065000,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065100,"name":"杈炬垚鍒嗘瀽","permission":"","parent_id":2617,"type":2,"component":"crm/salesTarget/analysis/index","component_name":"","status":0,"deleted":0},{"id":1065101,"name":"杈炬垚鍒嗘瀽鏌ヨ","permission":"crm:sales-target:query","parent_id":1065100,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065200,"name":"閮ㄩ棬瀵煎叆","permission":"system:dept:import","parent_id":103,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1065201,"name":"宀椾綅瀵煎叆","permission":"system:post:import","parent_id":104,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1065202,"name":"璇峰亣鎵f閰嶇疆鏂板","permission":"hrm:leave-type-config:create","parent_id":602449,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065203,"name":"璇峰亣鎵f閰嶇疆鏌ヨ","permission":"hrm:leave-type-config:query","parent_id":602449,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065204,"name":"璇峰亣鎵f閰嶇疆淇敼","permission":"hrm:leave-type-config:update","parent_id":602449,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065205,"name":"璇峰亣鎵f閰嶇疆鍒犻櫎","permission":"hrm:leave-type-config:delete","parent_id":602449,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065206,"name":"鐗╂枡瀵煎叆","permission":"mdm:item:import","parent_id":602461,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065207,"name":"鐗╂枡鍒嗙被","permission":"mes:md-item-type:import","parent_id":5110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065208,"name":"璁¢噺鍗曚綅瀵煎叆","permission":"mdm:unit:import","parent_id":602467,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065209,"name":"鍏徃淇℃伅閰嶇疆","permission":"","parent_id":1,"type":2,"component":"","component_name":"","status":0,"deleted":0},{"id":1065210,"name":"鍏徃淇℃伅淇敼","permission":"system:company-config:update","parent_id":1065209,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065211,"name":"鍔犵彮鐢宠","permission":"","parent_id":6002,"type":2,"component":"hrm/overtime/index","component_name":null,"status":0,"deleted":0},{"id":1065212,"name":"鏂板","permission":"hrm:overtime:create","parent_id":1065211,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065213,"name":"缂栬緫","permission":"hrm:overtime:update","parent_id":1065211,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065214,"name":"鎻愪氦","permission":"hrm:overtime:submit","parent_id":1065211,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065215,"name":"鎾ら攢","permission":"hrm:overtime:cancel","parent_id":1065211,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065216,"name":"鍒犻櫎","permission":"hrm:overtime:delete","parent_id":1065211,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065217,"name":"鏁版嵁搴撳浠�","permission":"system:database:backup","parent_id":1,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065218,"name":"鐗╂枡鍒嗙被瀵煎嚭","permission":"mes:md-item-type:export","parent_id":5110,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1065219,"name":"璁¢噺鍗曚綅瀵煎嚭","permission":"mdm:unit:export","parent_id":602467,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075301,"name":"渚涘簲鍟嗗鍑�","permission":"srm:supplier:export","parent_id":602525,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075302,"name":"渚涘簲鍟嗗鍏�","permission":"srm:supplier:import","parent_id":602525,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075303,"name":"搴撳瓨浜嬪姟娴佹按鏌ヨ","permission":"mes:wm-transaction:query","parent_id":602476,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075305,"name":"涓氬姟闄勪欢閰嶇疆","permission":"","parent_id":1186,"type":2,"component":"bpm/businessAttach/index","component_name":"BpmBusinessAttach","status":0,"deleted":0},{"id":1075306,"name":"涓氬姟闄勪欢閰嶇疆鏌ヨ","permission":"bpm:business-attach:query","parent_id":1075305,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075307,"name":"涓氬姟闄勪欢閰嶇疆鍒涘缓","permission":"bpm:business-attach:create","parent_id":1075305,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075308,"name":"涓氬姟闄勪欢閰嶇疆鏇存柊","permission":"bpm:business-attach:update","parent_id":1075305,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075309,"name":"涓氬姟闄勪欢閰嶇疆鍒犻櫎","permission":"bpm:business-attach:delete","parent_id":1075305,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075310,"name":"閲囪喘鐢宠瀵煎叆","permission":"erp:purchase-request:import","parent_id":602498,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1075311,"name":"鍚堝悓瀵煎叆","permission":"crm:contract:import","parent_id":2398,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1075312,"name":"娴佺▼鍏嶅鎵�-鏌ヨ","permission":"bpm:process-auto-approve:query","parent_id":1193,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075313,"name":"娴佺▼鍏嶅鎵�-璁剧疆","permission":"bpm:process-auto-approve:update","parent_id":1193,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075314,"name":"宸ュ崟鏌ヨ","permission":"aftersales:ticket:query","parent_id":602588,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075315,"name":"鍥炶璁板綍鏌ヨ","permission":"aftersales:visit:query","parent_id":602588,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075316,"name":"鐧昏鍥炶","permission":"aftersales:visit:create","parent_id":602588,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075317,"name":"閫�璐ф煡璇�","permission":"aftersales:return:query","parent_id":602589,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075318,"name":"闂搴�","permission":"","parent_id":602587,"type":2,"component":"/aftersales/problem/index","component_name":"AftersalesProblem","status":0,"deleted":0},{"id":1075319,"name":"闂鏌ヨ","permission":"aftersales:problem:query","parent_id":1075318,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075320,"name":"闂鏂板","permission":"aftersales:problem:create","parent_id":1075318,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075321,"name":"闂淇敼","permission":"aftersales:problem:update","parent_id":1075318,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075322,"name":"闂鍒犻櫎","permission":"aftersales:problem:delete","parent_id":1075318,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075323,"name":"闂鍙戝竷","permission":"aftersales:problem:publish","parent_id":1075318,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075324,"name":"闂鍋滅敤","permission":"aftersales:problem:disable","parent_id":1075318,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075400,"name":"鎶ュ憡妯℃澘璁捐","permission":"","parent_id":5500,"type":2,"component":"mes/qc/report/template/index","component_name":null,"status":0,"deleted":0},{"id":1075401,"name":"鎶ュ憡妯℃澘鏌ヨ","permission":"qc-report:template:query","parent_id":1075400,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075402,"name":"鎶ュ憡妯℃澘鍒涘缓","permission":"qc-report:template:create","parent_id":1075400,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075403,"name":"鎶ュ憡妯℃澘鏇存柊","permission":"qc-report:template:update","parent_id":1075400,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075404,"name":"鎶ュ憡妯℃澘鍒犻櫎","permission":"qc-report:template:delete","parent_id":1075400,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075405,"name":"鎶ュ憡妯℃澘鍙戝竷","permission":"qc-report:template:publish","parent_id":1075400,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075410,"name":"鎶ュ憡瀹炰緥","permission":"","parent_id":5500,"type":2,"component":"mes/qc/report/instance/index","component_name":null,"status":0,"deleted":0},{"id":1075411,"name":"鎶ュ憡瀹炰緥鏌ヨ","permission":"qc-report:instance:query","parent_id":1075410,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075412,"name":"鎶ュ憡瀹炰緥鍑轰欢","permission":"qc-report:instance:create","parent_id":1075410,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075413,"name":"鎶ュ憡瀹炰緥瀵煎嚭PDF","permission":"qc-report:instance:export","parent_id":1075410,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075414,"name":"鎶ュ憡瀹炰緥鍒犻櫎","permission":"qc-report:instance:delete","parent_id":1075410,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075415,"name":"鎶ュ憡妯℃澘AI瀵煎叆","permission":"qc-report:template:ai-import","parent_id":1075400,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075416,"name":"鎶ュ憡瀹炰緥璐ㄦ鍗曞嚭浠�","permission":"qc-report:instance:generate","parent_id":1075410,"type":3,"component":null,"component_name":null,"status":0,"deleted":0},{"id":1075417,"name":"寮�绁ㄥ鍏�","permission":"crm:invoice:import","parent_id":1063093,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075418,"name":"鏉ユ枡妫�楠屽鍏�","permission":"mes:qc-iqc:import","parent_id":5640,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075419,"name":"杩囩▼妫�楠屽鍏�","permission":"mes:qc-ipqc:import","parent_id":5650,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075420,"name":"鍑鸿揣妫�楠屽鍏�","permission":"mes:qc-oqc:import","parent_id":5660,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075421,"name":"妫�娴嬬粨鏋滃彴璐�","permission":"","parent_id":5500,"type":2,"component":"mes/qc/ledger/index","component_name":"MesQcInspectionLedger","status":0,"deleted":0},{"id":1075422,"name":"妫�娴嬬粨鏋滃彴璐︽煡璇�","permission":"mes:qc-inspection-ledger:query","parent_id":1075421,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075423,"name":"妫�娴嬬粨鏋滃彴璐﹀鍑�","permission":"mes:qc-inspection-ledger:export","parent_id":1075421,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075424,"name":"搴撳瓨鐜版湁閲忓鍏�","permission":"mes:wm-material-stock:import","parent_id":5786,"type":3,"component":"","component_name":null,"status":0,"deleted":0},{"id":1075425,"name":"鑳借�楃鐞�","permission":"","parent_id":0,"type":1,"component":"","component_name":"","status":0,"deleted":0},{"id":1075426,"name":"鑳借�楄褰�","permission":"energy:record:query","parent_id":1075425,"type":2,"component":"energy/record/index","component_name":"EnergyRecord","status":0,"deleted":0},{"id":1075427,"name":"鏁版嵁鍒嗘瀽","permission":"energy:analysis:query","parent_id":1075425,"type":2,"component":"energy/analysis/index","component_name":"EnergyAnalysis","status":0,"deleted":0},{"id":1075428,"name":"鏂板鑳借�楄褰�","permission":"energy:record:create","parent_id":1075426,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075429,"name":"淇敼鑳借�楄褰�","permission":"energy:record:update","parent_id":1075426,"type":3,"component":"","component_name":"","status":0,"deleted":0},{"id":1075430,"name":"鍒犻櫎鑳借�楄褰�","permission":"energy:record:delete","parent_id":1075426,"type":3,"component":"","component_name":"","status":0,"deleted":0}]
diff --git a/sql/mysql/energy_management_init.sql b/sql/mysql/energy_management_init.sql
new file mode 100644
index 0000000..b3cc210
--- /dev/null
+++ b/sql/mysql/energy_management_init.sql
@@ -0,0 +1,61 @@
+-- 鐙珛鑳借�楃鐞嗭細鏂板鍙拌处鍙婁竴绾ц彍鍗曪紝涓嶅叧鑱斿叾浠栦笟鍔¤〃銆�
+-- 鍙噸澶嶆墽琛屻�傛墽琛屽墠璇风‘璁ょ洰鏍囧簱锛岃彍鍗曞彧榛樿鍒嗛厤缁欒秴绾х鐞嗗憳锛坮ole_id=1锛夈��
+CREATE TABLE IF NOT EXISTS `mes_energy_record` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '璁板綍缂栧彿',
+  `record_date` date NOT NULL COMMENT '缁熻鏃ユ湡',
+  `energy_type` varchar(20) NOT NULL COMMENT 'WATER姘�/ELECTRICITY鐢�/STEAM钂告苯',
+  `usage_area` varchar(100) NOT NULL COMMENT '浣跨敤鍖哄煙锛堟墜宸ュ~鍐欙級',
+  `product_category` varchar(50) NOT NULL COMMENT '浜у搧绫诲埆锛堟湰妯″潡锛�',
+  `usage_purpose` varchar(100) NOT NULL COMMENT '鐢ㄩ��/宸ュ簭锛堟墜宸ュ~鍐欙級',
+  `quantity` decimal(18,3) NOT NULL COMMENT '鐢ㄩ噺锛屾按m鲁/鐢祂Wh/钂告苯t',
+  `unit_price` decimal(12,4) NOT NULL DEFAULT 0 COMMENT '鍏�/鑳芥簮鍗曚綅',
+  `amount` decimal(26,2) NOT NULL DEFAULT 0 COMMENT '璐圭敤=鐢ㄩ噺*鍗曚环锛屽洓鑸嶄簲鍏ュ埌鍒�',
+  `recorder` varchar(50) NOT NULL COMMENT '褰曞叆浜哄鍚嶏紙鎵嬪伐濉啓锛�',
+  `remark` varchar(500) NOT NULL DEFAULT '',
+  `creator` varchar(64) DEFAULT '',
+  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `updater` varchar(64) DEFAULT '',
+  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `deleted` bit(1) NOT NULL DEFAULT b'0',
+  `tenant_id` bigint NOT NULL DEFAULT 0,
+  PRIMARY KEY (`id`),
+  KEY `idx_energy_date` (`tenant_id`, `deleted`, `record_date`, `energy_type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鐙珛鑳借�楁墜宸ュ彴璐�';
+
+START TRANSACTION;
+SET @energy_root = (SELECT id FROM system_menu WHERE parent_id=0 AND path='/energy' AND deleted=b'0' LIMIT 1);
+SET @energy_next = (SELECT IFNULL(MAX(id),0)+1 FROM system_menu);
+INSERT INTO system_menu (id,name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,create_time,updater,update_time,deleted)
+SELECT @energy_next,'鑳借�楃鐞�','',1,65,0,'/energy','lucide:zap','','',0,1,1,1,'1',NOW(),'1',NOW(),0 FROM DUAL WHERE @energy_root IS NULL;
+SET @energy_root = COALESCE(@energy_root,@energy_next);
+
+SET @energy_record = (SELECT id FROM system_menu WHERE parent_id=@energy_root AND path='record' AND deleted=b'0' LIMIT 1);
+SET @energy_next = (SELECT MAX(id)+1 FROM system_menu);
+INSERT INTO system_menu (id,name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,create_time,updater,update_time,deleted)
+SELECT @energy_next,'鑳借�楄褰�','energy:record:query',2,1,@energy_root,'record','lucide:clipboard-list','energy/record/index','EnergyRecord',0,1,0,1,'1',NOW(),'1',NOW(),0 FROM DUAL WHERE @energy_record IS NULL;
+SET @energy_record = COALESCE(@energy_record,@energy_next);
+
+SET @energy_analysis = (SELECT id FROM system_menu WHERE parent_id=@energy_root AND path='analysis' AND deleted=b'0' LIMIT 1);
+SET @energy_next = (SELECT MAX(id)+1 FROM system_menu);
+INSERT INTO system_menu (id,name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,create_time,updater,update_time,deleted)
+SELECT @energy_next,'鏁版嵁鍒嗘瀽','energy:analysis:query',2,2,@energy_root,'analysis','lucide:chart-no-axes-combined','energy/analysis/index','EnergyAnalysis',0,1,0,1,'1',NOW(),'1',NOW(),0 FROM DUAL WHERE @energy_analysis IS NULL;
+SET @energy_analysis = COALESCE(@energy_analysis,@energy_next);
+
+SET @energy_next = (SELECT MAX(id)+1 FROM system_menu);
+INSERT INTO system_menu (id,name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,create_time,updater,update_time,deleted)
+SELECT @energy_next,'鏂板鑳借�楄褰�','energy:record:create',3,1,@energy_record,'','','','',0,1,0,1,'1',NOW(),'1',NOW(),0 FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission='energy:record:create' AND deleted=b'0');
+SET @energy_next = (SELECT MAX(id)+1 FROM system_menu);
+INSERT INTO system_menu (id,name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,create_time,updater,update_time,deleted)
+SELECT @energy_next,'淇敼鑳借�楄褰�','energy:record:update',3,2,@energy_record,'','','','',0,1,0,1,'1',NOW(),'1',NOW(),0 FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission='energy:record:update' AND deleted=b'0');
+SET @energy_next = (SELECT MAX(id)+1 FROM system_menu);
+INSERT INTO system_menu (id,name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,create_time,updater,update_time,deleted)
+SELECT @energy_next,'鍒犻櫎鑳借�楄褰�','energy:record:delete',3,3,@energy_record,'','','','',0,1,0,1,'1',NOW(),'1',NOW(),0 FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE permission='energy:record:delete' AND deleted=b'0');
+
+INSERT INTO system_role_menu (role_id,menu_id,creator,create_time,updater,update_time,deleted,tenant_id)
+SELECT 1,m.id,'1',NOW(),'1',NOW(),0,r.tenant_id FROM system_menu m JOIN system_role r ON r.id=1 AND r.deleted=b'0'
+WHERE m.deleted=b'0' AND (m.id=@energy_root OR m.parent_id=@energy_root OR m.parent_id=@energy_record)
+AND NOT EXISTS (SELECT 1 FROM system_role_menu rm WHERE rm.role_id=1 AND rm.menu_id=m.id AND rm.deleted=b'0');
+COMMIT;
diff --git a/sql/mysql/mdm_unit_import_export_permission_patch.sql b/sql/mysql/mdm_unit_import_export_permission_patch.sql
new file mode 100644
index 0000000..211cf35
--- /dev/null
+++ b/sql/mysql/mdm_unit_import_export_permission_patch.sql
@@ -0,0 +1,10 @@
+-- mom-hm 璁¢噺鍗曚綅瀵煎叆/瀵煎嚭鏉冮檺涓� MdmUnitMeasureController 淇濇寔涓�鑷淬��
+-- 淇濈暀鑿滃崟 ID 鍜屽凡鏈夎鑹叉巿鏉冿紱鍙噸澶嶆墽琛屻��
+-- 鎵ц鍚庢竻闄よ繖涓や釜鏉冮檺鐨勫悗绔紦瀛橈紝骞堕噸鏂扮櫥褰曞姞杞藉墠绔潈闄愩��
+UPDATE `mom-hm`.`system_menu`
+SET permission = 'mdm:unit:import', updater = '1', update_time = NOW()
+WHERE permission = 'mdm:unit-measure:import';
+
+UPDATE `mom-hm`.`system_menu`
+SET permission = 'mdm:unit:export', updater = '1', update_time = NOW()
+WHERE permission = 'mdm:unit-measure:export';
diff --git a/sql/mysql/menu_page_query_role_grants_pending.sql b/sql/mysql/menu_page_query_role_grants_pending.sql
new file mode 100644
index 0000000..c7f681d
--- /dev/null
+++ b/sql/mysql/menu_page_query_role_grants_pending.sql
@@ -0,0 +1,3 @@
+-- 寰呯敤鎴风‘璁わ細缁欏凡鏈夊搴旈〉闈㈡巿鏉冪殑瑙掕壊琛ユ巿鏌ヨ鏉冮檺锛屽寘鍚汉璧勬晱鎰熸暟鎹��
+INSERT INTO `mom-hm`.system_role_menu (role_id,menu_id,creator,create_time,updater,update_time,deleted)
+SELECT DISTINCT parentGrant.role_id,m.id,'1',NOW(),'1',NOW(),b'0' FROM `mom-hm`.system_menu m JOIN `mom-hm`.system_role_menu parentGrant ON parentGrant.menu_id=m.parent_id AND parentGrant.deleted=b'0' JOIN `mom-hm`.system_role r ON r.id=parentGrant.role_id AND r.deleted=b'0' AND r.status=0 WHERE m.permission IN ('bi:dashboard:query','bpm:oa-notice:query','crm:invoice:query','crm:sale-quotation:query','erp:purchase-request:query','hrm:overtime:query','hrm:resignation:query','hrm:transfer:query','hrm:attendance-exception:query','hrm:attendance-holiday:query','hrm:attendance-record:query','hrm:attendance-rule:query','hrm:attendance-summary:query','hrm:employee-social-security:query','hrm:salary-calculation:query','hrm:salary-payment:query','hrm:social-security-scheme:query','hrm:tax-rate-config:query','mes:pd-document:query','mes:pd-process-param:query','mes:pd-process-param-template:query','mes:pro-mps:query','srm:tender-config:query') AND m.deleted=b'0' AND m.status=0 AND NOT EXISTS (SELECT 1 FROM `mom-hm`.system_role_menu rm WHERE rm.role_id=parentGrant.role_id AND rm.menu_id=m.id);
diff --git a/sql/mysql/menu_permission_consistency_patch.sql b/sql/mysql/menu_permission_consistency_patch.sql
new file mode 100644
index 0000000..afbd7dc
--- /dev/null
+++ b/sql/mysql/menu_permission_consistency_patch.sql
@@ -0,0 +1,126 @@
+-- mom-hm 鍏ㄤ笟鍔¤彍鍗曟潈闄愪竴鑷存�цˉ涓侊紙2026-10-12锛夈��
+-- 浠ュ疄闄� Controller 鏉冮檺涓哄噯锛涙棫鏉冮檺鏀瑰悕淇濈暀鑿滃崟 ID 涓庢棦鏈夎鑹叉巿鏉冦��
+-- 琛ラ綈宸叉湁椤甸潰缂哄け鐨勬寜閽潈闄愶紱鏂版搷浣滄潈闄愰粯璁ゅ彧鎺堜簣瓒呯骇绠$悊鍛樸��
+-- 鏂板鏉冮檺浠呰嚜鍔ㄦ巿浜堣秴绾х鐞嗗憳锛涙櫘閫氳鑹叉煡璇㈡巿鏉冭鍗曠嫭寰呯‘璁よ剼鏈��
+-- 鍙噸澶嶆墽琛屻�傛墽琛屽悗娓呯悊鍙楀奖鍝嶇殑 permission_menu_ids 缂撳瓨锛屽苟閲嶆柊鐧诲綍銆�
+
+UPDATE `mom-hm`.system_menu SET permission='crm:sale-quotation:convert-contract',updater='1',update_time=NOW() WHERE id=602515 AND parent_id=602512 AND name='杞悎鍚�' AND permission='crm:sale-quotation:update' AND deleted=b'0';
+
+UPDATE `mom-hm`.system_menu SET permission = CASE permission WHEN 'mdm:unit-measure:import' THEN 'mdm:unit:import' WHEN 'mdm:unit-measure:export' THEN 'mdm:unit:export' WHEN 'mes:pd:parameter:create' THEN 'mes:pd-process-param:create' WHEN 'mes:pd:template:create' THEN 'mes:pd-process-param-template:create' WHEN 'mes:pd:parameter:update' THEN 'mes:pd-process-param:update' WHEN 'mes:pd:template:update' THEN 'mes:pd-process-param-template:update' WHEN 'mes:pd:parameter:delete' THEN 'mes:pd-process-param:delete' WHEN 'mes:pd:template:delete' THEN 'mes:pd-process-param-template:delete' WHEN 'mes:pd:parameter:export' THEN 'mes:pd-process-param:export' WHEN 'mes:pd:template:export' THEN 'mes:pd-process-param-template:export' WHEN 'mes:wm-outsource-issue:execute' THEN 'mes:wm-outsource-issue:finish' WHEN 'mes:wm-return-vendor:update-status' THEN 'mes:wm-return-vendor:finish' WHEN 'mes:wm-material-stock:move' THEN 'mes:wm-material-stock:update' WHEN 'mes:pd-project:archive' THEN 'mes:pd-project:update' ELSE permission END, updater='1',update_time=NOW() WHERE permission IN ('mdm:unit-measure:import','mdm:unit-measure:export','mes:pd:parameter:create','mes:pd:template:create','mes:pd:parameter:update','mes:pd:template:update','mes:pd:parameter:delete','mes:pd:template:delete','mes:pd:parameter:export','mes:pd:template:export','mes:wm-outsource-issue:execute','mes:wm-return-vendor:update-status','mes:wm-material-stock:move','mes:pd-project:archive');
+
+INSERT INTO `mom-hm`.system_menu (id,name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,create_time,updater,update_time,deleted)
+SELECT next_id.id + desired.offset_id,desired.name,desired.permission,3,90,parent.id,'','#','',NULL,0,b'1',b'0',b'1','1',NOW(),'1',NOW(),b'0'
+FROM (SELECT 1 AS offset_id,'bi:dashboard:query' AS permission,1063007 AS parent_id,'鍥捐〃閰嶇疆-鏌ヨ' AS name
+UNION ALL
+SELECT 2 AS offset_id,'bpm:oa-notice:query' AS permission,602608 AS parent_id,'閫氱煡鍏憡-鏌ヨ' AS name
+UNION ALL
+SELECT 3 AS offset_id,'crm:invoice:query' AS permission,1063093 AS parent_id,'寮�绁ㄧ鐞�-鏌ヨ' AS name
+UNION ALL
+SELECT 4 AS offset_id,'crm:sale-quotation:query' AS permission,602512 AS parent_id,'閿�鍞姤浠�-鏌ヨ' AS name
+UNION ALL
+SELECT 5 AS offset_id,'crm:sale-quotation:export' AS permission,602512 AS parent_id,'閿�鍞姤浠�-瀵煎嚭' AS name
+UNION ALL
+SELECT 6 AS offset_id,'crm:sale-quotation:convert-contract' AS permission,602512 AS parent_id,'閿�鍞姤浠�-杞悎鍚�' AS name
+UNION ALL
+SELECT 7 AS offset_id,'erp:purchase-order:import' AS permission,2666 AS parent_id,'閲囪喘璁㈠崟-瀵煎叆' AS name
+UNION ALL
+SELECT 8 AS offset_id,'erp:purchase-request:query' AS permission,602498 AS parent_id,'閲囪喘鐢宠-鏌ヨ' AS name
+UNION ALL
+SELECT 9 AS offset_id,'erp:purchase-request:submit' AS permission,602498 AS parent_id,'閲囪喘鐢宠-鎻愪氦' AS name
+UNION ALL
+SELECT 10 AS offset_id,'erp:purchase-request:generate-order' AS permission,602498 AS parent_id,'閲囪喘鐢宠-鐢熸垚璁㈠崟' AS name
+UNION ALL
+SELECT 11 AS offset_id,'erp:sale-order:cancel' AS permission,2638 AS parent_id,'閿�鍞鍗�-鎾ら攢' AS name
+UNION ALL
+SELECT 12 AS offset_id,'erp:sale-order:enable' AS permission,2638 AS parent_id,'閿�鍞鍗�-鍚敤' AS name
+UNION ALL
+SELECT 13 AS offset_id,'erp:sale-order:import' AS permission,2638 AS parent_id,'閿�鍞鍗�-瀵煎叆' AS name
+UNION ALL
+SELECT 14 AS offset_id,'hrm:leave:export' AS permission,6003 AS parent_id,'璇峰亣鐢宠-瀵煎嚭' AS name
+UNION ALL
+SELECT 15 AS offset_id,'hrm:overtime:query' AS permission,1065211 AS parent_id,'鍔犵彮鐢宠-鏌ヨ' AS name
+UNION ALL
+SELECT 16 AS offset_id,'hrm:resignation:query' AS permission,6005 AS parent_id,'绂昏亴鐢宠-鏌ヨ' AS name
+UNION ALL
+SELECT 17 AS offset_id,'hrm:resignation:export' AS permission,6005 AS parent_id,'绂昏亴鐢宠-瀵煎嚭' AS name
+UNION ALL
+SELECT 18 AS offset_id,'hrm:transfer:query' AS permission,6004 AS parent_id,'璋冨矖鐢宠-鏌ヨ' AS name
+UNION ALL
+SELECT 19 AS offset_id,'hrm:transfer:export' AS permission,6004 AS parent_id,'璋冨矖鐢宠-瀵煎嚭' AS name
+UNION ALL
+SELECT 20 AS offset_id,'hrm:attendance-exception:update' AS permission,6012 AS parent_id,'鑰冨嫟寮傚父-缂栬緫' AS name
+UNION ALL
+SELECT 21 AS offset_id,'hrm:attendance-exception:delete' AS permission,6012 AS parent_id,'鑰冨嫟寮傚父-鍒犻櫎' AS name
+UNION ALL
+SELECT 22 AS offset_id,'hrm:attendance-exception:query' AS permission,6012 AS parent_id,'鑰冨嫟寮傚父-鏌ヨ' AS name
+UNION ALL
+SELECT 23 AS offset_id,'hrm:attendance-holiday:query' AS permission,6014 AS parent_id,'鑺傚亣鏃ラ厤缃�-鏌ヨ' AS name
+UNION ALL
+SELECT 24 AS offset_id,'hrm:attendance-record:query' AS permission,6011 AS parent_id,'鑰冨嫟璁板綍-鏌ヨ' AS name
+UNION ALL
+SELECT 25 AS offset_id,'hrm:attendance-rule:query' AS permission,6013 AS parent_id,'鑰冨嫟瑙勫垯-鏌ヨ' AS name
+UNION ALL
+SELECT 26 AS offset_id,'hrm:attendance-summary:query' AS permission,6015 AS parent_id,'鑰冨嫟缁熻-鏌ヨ' AS name
+UNION ALL
+SELECT 27 AS offset_id,'hrm:employee-social-security:query' AS permission,6023 AS parent_id,'鍛樺伐绀句繚鍏Н閲戞。妗�-鏌ヨ' AS name
+UNION ALL
+SELECT 28 AS offset_id,'hrm:salary-calculation:query' AS permission,6021 AS parent_id,'钖叕鏍哥畻-鏌ヨ' AS name
+UNION ALL
+SELECT 29 AS offset_id,'hrm:salary-calculation:delete' AS permission,6021 AS parent_id,'钖叕鏍哥畻-鍒犻櫎' AS name
+UNION ALL
+SELECT 30 AS offset_id,'hrm:salary-calculation:save' AS permission,6021 AS parent_id,'钖叕鏍哥畻-淇濆瓨' AS name
+UNION ALL
+SELECT 31 AS offset_id,'hrm:salary-payment:query' AS permission,6022 AS parent_id,'钖祫鍙戞斁-鏌ヨ' AS name
+UNION ALL
+SELECT 32 AS offset_id,'hrm:salary-payment:generate' AS permission,6022 AS parent_id,'钖祫鍙戞斁-鐢熸垚' AS name
+UNION ALL
+SELECT 33 AS offset_id,'hrm:salary-payment:delete' AS permission,6022 AS parent_id,'钖祫鍙戞斁-鍒犻櫎' AS name
+UNION ALL
+SELECT 34 AS offset_id,'hrm:social-security-scheme:query' AS permission,602445 AS parent_id,'绀句繚鍏Н閲戞柟妗�-鏌ヨ' AS name
+UNION ALL
+SELECT 35 AS offset_id,'hrm:tax-rate-config:query' AS permission,6024 AS parent_id,'涓◣绋庣巼閰嶇疆-鏌ヨ' AS name
+UNION ALL
+SELECT 36 AS offset_id,'mes:dv-metering:import' AS permission,5380 AS parent_id,'璁¢噺鍣ㄥ叿-瀵煎叆' AS name
+UNION ALL
+SELECT 37 AS offset_id,'mes:md-workshop:export' AS permission,5160 AS parent_id,'杞﹂棿璁剧疆-瀵煎嚭' AS name
+UNION ALL
+SELECT 38 AS offset_id,'mes:pd-archive:create' AS permission,602578 AS parent_id,'璁捐褰掓。-鏂板' AS name
+UNION ALL
+SELECT 39 AS offset_id,'mes:pd-document:create' AS permission,602572 AS parent_id,'璁捐椤圭洰-鏂板' AS name
+UNION ALL
+SELECT 40 AS offset_id,'mes:pd-document:update' AS permission,602572 AS parent_id,'璁捐椤圭洰-缂栬緫' AS name
+UNION ALL
+SELECT 41 AS offset_id,'mes:pd-document:delete' AS permission,602572 AS parent_id,'璁捐椤圭洰-鍒犻櫎' AS name
+UNION ALL
+SELECT 42 AS offset_id,'mes:pd-document:query' AS permission,602572 AS parent_id,'璁捐椤圭洰-鏌ヨ' AS name
+UNION ALL
+SELECT 43 AS offset_id,'mes:pd-document:export' AS permission,602572 AS parent_id,'璁捐椤圭洰-瀵煎嚭' AS name
+UNION ALL
+SELECT 44 AS offset_id,'mes:pd-process-param:query' AS permission,602474 AS parent_id,'鍩虹鍙傛暟-鏌ヨ' AS name
+UNION ALL
+SELECT 45 AS offset_id,'mes:pd-process-param-template:query' AS permission,602475 AS parent_id,'鍙傛暟妯℃澘-鏌ヨ' AS name
+UNION ALL
+SELECT 46 AS offset_id,'mes:pro-mps:query' AS permission,602504 AS parent_id,'鐢熶骇璁″垝-鏌ヨ' AS name
+UNION ALL
+SELECT 47 AS offset_id,'mes:qc-ipqc:finish' AS permission,5650 AS parent_id,'杩囩▼妫�楠�-瀹屾垚' AS name
+UNION ALL
+SELECT 48 AS offset_id,'mes:qc-iqc:finish' AS permission,5640 AS parent_id,'鏉ユ枡妫�楠�-瀹屾垚' AS name
+UNION ALL
+SELECT 49 AS offset_id,'mes:qc-oqc:finish' AS permission,5660 AS parent_id,'鍑鸿揣妫�楠�-瀹屾垚' AS name
+UNION ALL
+SELECT 50 AS offset_id,'mes:qc-rqc:finish' AS permission,5670 AS parent_id,'閫�璐ф楠�-瀹屾垚' AS name
+UNION ALL
+SELECT 51 AS offset_id,'mes:wm-stock-taking-task:finish' AS permission,5957 AS parent_id,'鐩樼偣浠诲姟-瀹屾垚' AS name
+UNION ALL
+SELECT 52 AS offset_id,'srm:tender-config:query' AS permission,602545 AS parent_id,'鎷涙姇鏍囩鐞�-鏌ヨ' AS name
+UNION ALL
+SELECT 54 AS offset_id,'hrm:employee-contract:import' AS permission,6006 AS parent_id,'鍛樺伐鍚堝悓-瀵煎叆' AS name
+UNION ALL
+SELECT 53 AS offset_id,'srm:tender-config:update' AS permission,602545 AS parent_id,'鎷涙姇鏍囩鐞�-缂栬緫' AS name) desired
+JOIN `mom-hm`.system_menu parent ON parent.id=desired.parent_id AND parent.type=2 AND parent.status=0 AND parent.deleted=b'0'
+CROSS JOIN (SELECT COALESCE(MAX(id),0) AS id FROM `mom-hm`.system_menu) next_id
+WHERE NOT EXISTS (SELECT 1 FROM `mom-hm`.system_menu existing WHERE existing.permission=desired.permission AND existing.deleted=b'0');
+
+INSERT INTO `mom-hm`.system_role_menu (role_id,menu_id,creator,create_time,updater,update_time,deleted)
+SELECT r.id,m.id,'1',NOW(),'1',NOW(),b'0' FROM `mom-hm`.system_role r JOIN `mom-hm`.system_menu m ON m.permission IN ('mdm:unit:import','mdm:unit:export','mes:pd-process-param:create','mes:pd-process-param-template:create','mes:pd-process-param:update','mes:pd-process-param-template:update','mes:pd-process-param:delete','mes:pd-process-param-template:delete','mes:pd-process-param:export','mes:pd-process-param-template:export','mes:wm-outsource-issue:finish','mes:wm-return-vendor:finish','mes:wm-material-stock:update','mes:pd-project:update','bi:dashboard:query','bpm:oa-notice:query','crm:invoice:query','crm:sale-quotation:query','crm:sale-quotation:export','crm:sale-quotation:convert-contract','erp:purchase-order:import','erp:purchase-request:query','erp:purchase-request:submit','erp:purchase-request:generate-order','erp:sale-order:cancel','erp:sale-order:enable','erp:sale-order:import','hrm:leave:export','hrm:overtime:query','hrm:resignation:query','hrm:resignation:export','hrm:transfer:query','hrm:transfer:export','hrm:attendance-exception:update','hrm:attendance-exception:delete','hrm:attendance-exception:query','hrm:attendance-holiday:query','hrm:attendance-record:query','hrm:attendance-rule:query','hrm:attendance-summary:query','hrm:employee-social-security:query','hrm:salary-calculation:query','hrm:salary-calculation:delete','hrm:salary-calculation:save','hrm:salary-payment:query','hrm:salary-payment:generate','hrm:salary-payment:delete','hrm:social-security-scheme:query','hrm:tax-rate-config:query','mes:dv-metering:import','mes:md-workshop:export','mes:pd-archive:create','mes:pd-document:create','mes:pd-document:update','mes:pd-document:delete','mes:pd-document:query','mes:pd-document:export','mes:pd-process-param:query','mes:pd-process-param-template:query','mes:pro-mps:query','mes:qc-ipqc:finish','mes:qc-iqc:finish','mes:qc-oqc:finish','mes:qc-rqc:finish','mes:wm-stock-taking-task:finish','srm:tender-config:query','srm:tender-config:update','hrm:employee-contract:import') AND m.deleted=b'0' AND m.status=0 WHERE r.code='super_admin' AND r.deleted=b'0' AND NOT EXISTS (SELECT 1 FROM `mom-hm`.system_role_menu rm WHERE rm.role_id=r.id AND rm.menu_id=m.id);
+
diff --git a/sql/mysql/mes_dv_metering_remind_config_patch.sql b/sql/mysql/mes_dv_metering_remind_config_patch.sql
new file mode 100644
index 0000000..f367574
--- /dev/null
+++ b/sql/mysql/mes_dv_metering_remind_config_patch.sql
@@ -0,0 +1,14 @@
+-- mom-hm 璁¢噺鍣ㄥ叿鍒版湡鎻愰啋閰嶇疆琛ヤ竵銆�
+-- 琛ラ綈鍙傛暟閰嶇疆鍜屽嵆灏嗗埌鏈熺珯鍐呬俊妯℃澘锛屾部鐢� mes_dv_metering_init.sql 鐨勯粯璁ゅ�笺��
+-- 鍙噸澶嶆墽琛岋紝涓嶈鐩栧凡鏈夌殑鏈夋晥閰嶇疆鍜屾ā鏉裤��
+-- visible=0 琛ㄧず绂佹鍏紑鎸夐敭璇诲彇锛涗粛鍙湪 /infra/config 绠$悊璇ュ弬鏁般��
+
+INSERT INTO `mom-hm`.`infra_config` (`category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
+SELECT 'biz', 2, 'MES 璁¢噺鍣ㄥ叿鍒版湡鎻愰啋澶╂暟', 'mes.dv-metering.remind-days', '30', b'0', '璁¢噺鍣ㄥ叿涓嬫妫�娴嬫棩鏈熷埌鏈熷墠 N 澶╂彁閱掞紙绔欏唴淇″彂閫佺粰璐d换浜猴級', '1', NOW(), '1', NOW(), b'0'
+FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM `mom-hm`.`infra_config` WHERE `config_key` = 'mes.dv-metering.remind-days' AND `deleted` = b'0');
+
+INSERT INTO `mom-hm`.`system_notify_template` (`name`, `code`, `nickname`, `content`, `type`, `params`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
+SELECT '璁¢噺鍣ㄥ叿鍒版湡鎻愰啋', 'mes_metering_expire_remind', 'MES 绯荤粺', '璁¢噺鍣ㄥ叿銆恵meteringCode}銆憑meteringName} 灏嗕簬 {nextCheckDate} 鍒版湡锛岃鍙婃椂瀹夋帓鏍″噯/妫�瀹氥��', 2, '["meteringCode","meteringName","nextCheckDate"]', 0, '1', NOW(), '1', NOW(), b'0'
+FROM DUAL
+WHERE NOT EXISTS (SELECT 1 FROM `mom-hm`.`system_notify_template` WHERE `code` = 'mes_metering_expire_remind' AND `deleted` = b'0');
diff --git a/sql/mysql/mes_wm_material_stock_import_menu.sql b/sql/mysql/mes_wm_material_stock_import_menu.sql
new file mode 100644
index 0000000..8a6c025
--- /dev/null
+++ b/sql/mysql/mes_wm_material_stock_import_menu.sql
@@ -0,0 +1,12 @@
+-- mom-hm 搴撳瓨鐜版湁閲忓鍏ユ潈闄愯ˉ涓侊紝鍙噸澶嶆墽琛屻��
+-- 鏍规嵁缁勪欢鍚嶅畾浣嶇埗鑿滃崟锛屼互 MAX(id)+1 鍒嗛厤鎸夐挳缂栧彿锛屾仮澶嶈蒋鍒犻櫎/绂佺敤鐨勬潈闄愩��
+-- 浠呴粯璁ゆ巿鏉冭秴绾х鐞嗗憳锛涗笟鍔¤鑹茶鍦ㄨ鑹茬鐞嗕腑鍕鹃�夆�滃簱瀛樼幇鏈夐噺瀵煎叆鈥濄��
+-- 鎵ц鍚庨噸鏂扮櫥褰曪紱鑻ュ悗绔浘缂撳瓨缂哄け鏉冮檺锛屽湪鑿滃崟绠$悊涓繚瀛樿鎸夐挳浠ュ埛鏂版潈闄愮紦瀛樸��
+
+INSERT INTO `mom-hm`.system_menu (id,name,permission,type,sort,parent_id,path,icon,component,component_name,status,visible,keep_alive,always_show,creator,create_time,updater,update_time,deleted) SELECT next_id.id,'搴撳瓨鐜版湁閲忓鍏�','mes:wm-material-stock:import',3,8,parent.id,'','#','',NULL,0,b'1',b'0',b'1','1',NOW(),'1',NOW(),b'0' FROM `mom-hm`.system_menu parent CROSS JOIN (SELECT COALESCE(MAX(id),0)+1 AS id FROM `mom-hm`.system_menu) next_id WHERE parent.component_name='MesWmMaterialStock' AND parent.type=2 AND parent.deleted=b'0' AND NOT EXISTS (SELECT 1 FROM `mom-hm`.system_menu WHERE permission='mes:wm-material-stock:import');
+
+UPDATE `mom-hm`.system_menu child JOIN `mom-hm`.system_menu parent ON parent.component_name='MesWmMaterialStock' AND parent.type=2 AND parent.deleted=b'0' SET child.parent_id=parent.id,child.type=3,child.status=0,child.deleted=b'0',child.updater='1',child.update_time=NOW() WHERE child.permission='mes:wm-material-stock:import' AND (child.parent_id<>parent.id OR child.type<>3 OR child.status<>0 OR child.deleted<>b'0');
+
+INSERT INTO `mom-hm`.system_role_menu (role_id,menu_id,creator,create_time,updater,update_time,deleted) SELECT r.id,m.id,'1',NOW(),'1',NOW(),b'0' FROM `mom-hm`.system_role r JOIN `mom-hm`.system_menu m ON m.permission='mes:wm-material-stock:import' AND m.deleted=b'0' WHERE r.code='super_admin' AND r.deleted=b'0' AND NOT EXISTS (SELECT 1 FROM `mom-hm`.system_role_menu rm WHERE rm.role_id=r.id AND rm.menu_id=m.id);
+
+UPDATE `mom-hm`.system_role_menu rm JOIN `mom-hm`.system_role r ON r.id=rm.role_id AND r.code='super_admin' AND r.deleted=b'0' JOIN `mom-hm`.system_menu m ON m.id=rm.menu_id AND m.permission='mes:wm-material-stock:import' AND m.deleted=b'0' SET rm.deleted=b'0',rm.updater='1',rm.update_time=NOW() WHERE rm.deleted<>b'0';
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/EnergyRecordController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/EnergyRecordController.java
new file mode 100644
index 0000000..5895cff
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/EnergyRecordController.java
@@ -0,0 +1,68 @@
+package cn.iocoder.yudao.module.mes.controller.admin.energy;
+
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.mes.controller.admin.energy.vo.*;
+import cn.iocoder.yudao.module.mes.service.energy.EnergyRecordService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "绠$悊鍚庡彴 - 鐙珛鑳借�楃鐞�")
+@RestController
+@RequestMapping("/energy/record")
+@Validated
+public class EnergyRecordController {
+    @Resource(name = "energyRecordService")
+    private EnergyRecordService energyRecordService;
+
+    @PostMapping("/create")
+    @Operation(summary = "鎵嬪姩鏂板鑳借�楄褰�")
+    @PreAuthorize("@ss.hasPermission('energy:record:create')")
+    public CommonResult<Long> create(@Valid @RequestBody EnergyRecordSaveReqVO req) {
+        return success(energyRecordService.create(req));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "淇敼鑳借�楄褰�")
+    @PreAuthorize("@ss.hasPermission('energy:record:update')")
+    public CommonResult<Boolean> update(@Valid @RequestBody EnergyRecordSaveReqVO req) {
+        energyRecordService.update(req);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "鍒犻櫎鑳借�楄褰�")
+    @PreAuthorize("@ss.hasPermission('energy:record:delete')")
+    public CommonResult<Boolean> delete(@RequestParam("id") Long id) {
+        energyRecordService.delete(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "鏌ョ湅鑳借�楄褰�")
+    @PreAuthorize("@ss.hasPermission('energy:record:query')")
+    public CommonResult<EnergyRecordRespVO> get(@RequestParam("id") Long id) {
+        return success(BeanUtils.toBean(energyRecordService.get(id), EnergyRecordRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "鍒嗛〉鏌ヨ鑳借�楄褰�")
+    @PreAuthorize("@ss.hasPermission('energy:record:query')")
+    public CommonResult<PageResult<EnergyRecordRespVO>> page(@Valid EnergyRecordPageReqVO req) {
+        return success(BeanUtils.toBean(energyRecordService.page(req), EnergyRecordRespVO.class));
+    }
+
+    @GetMapping("/analysis")
+    @Operation(summary = "鑳借�楁暟鎹垎鏋愶紙鎸夎兘婧愬垎鍒眹鎬荤敤閲忥級")
+    @PreAuthorize("@ss.hasPermission('energy:analysis:query')")
+    public CommonResult<EnergyAnalysisRespVO> analysis(@Valid EnergyAnalysisReqVO req) {
+        return success(energyRecordService.analysis(req));
+    }
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyAnalysisReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyAnalysisReqVO.java
new file mode 100644
index 0000000..66df378
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyAnalysisReqVO.java
@@ -0,0 +1,31 @@
+package cn.iocoder.yudao.module.mes.controller.admin.energy.vo;
+
+import jakarta.validation.constraints.AssertTrue;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Pattern;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDate;
+
+@Data
+public class EnergyAnalysisReqVO {
+    @NotNull
+    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
+    private LocalDate startDate;
+    @NotNull
+    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
+    private LocalDate endDate;
+    @Pattern(regexp = "WATER|ELECTRICITY|STEAM")
+    private String energyType;
+    private String usageArea;
+    private String productCategory;
+    @NotNull
+    @Pattern(regexp = "DAY|MONTH")
+    private String groupBy = "DAY";
+
+    @AssertTrue(message = "缁熻鏃ユ湡鑼冨洿蹇呴』鍦ㄤ袱骞翠互鍐咃紝涓斿紑濮嬫棩鏈熶笉鑳芥櫄浜庣粨鏉熸棩鏈�")
+    public boolean isDateRangeValid() {
+        return startDate == null || endDate == null
+                || (!startDate.isAfter(endDate) && !endDate.isAfter(startDate.plusYears(2)));
+    }
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyAnalysisRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyAnalysisRespVO.java
new file mode 100644
index 0000000..1606754
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyAnalysisRespVO.java
@@ -0,0 +1,29 @@
+package cn.iocoder.yudao.module.mes.controller.admin.energy.vo;
+
+import lombok.Data;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class EnergyAnalysisRespVO {
+    private BigDecimal totalAmount = BigDecimal.ZERO;
+    private long recordCount;
+    private List<Summary> summary = new ArrayList<>();
+    private List<Bucket> trend = new ArrayList<>();
+    private List<Bucket> areas = new ArrayList<>();
+
+    @Data
+    public static class Summary {
+        private String energyType;
+        private BigDecimal quantity = BigDecimal.ZERO;
+        private BigDecimal amount = BigDecimal.ZERO;
+        private long recordCount;
+    }
+
+    @Data
+    public static class Bucket extends Summary {
+        /** 瓒嬪娍涓烘棩鏈�/鏈堬紝鍖哄煙鍒嗗竷涓哄尯鍩熷悕绉般�� */
+        private String label;
+    }
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordPageReqVO.java
new file mode 100644
index 0000000..45de23c
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordPageReqVO.java
@@ -0,0 +1,27 @@
+package cn.iocoder.yudao.module.mes.controller.admin.energy.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import jakarta.validation.constraints.AssertTrue;
+import jakarta.validation.constraints.Pattern;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDate;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EnergyRecordPageReqVO extends PageParam {
+    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
+    private LocalDate startDate;
+    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
+    private LocalDate endDate;
+    @Pattern(regexp = "WATER|ELECTRICITY|STEAM")
+    private String energyType;
+    private String usageArea;
+    private String productCategory;
+
+    @AssertTrue(message = "寮�濮嬫棩鏈熶笉鑳芥櫄浜庣粨鏉熸棩鏈�")
+    public boolean isDateRangeValid() {
+        return startDate == null || endDate == null || !startDate.isAfter(endDate);
+    }
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordRespVO.java
new file mode 100644
index 0000000..4c9c526
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordRespVO.java
@@ -0,0 +1,22 @@
+package cn.iocoder.yudao.module.mes.controller.admin.energy.vo;
+
+import lombok.Data;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class EnergyRecordRespVO {
+    private Long id;
+    private LocalDate recordDate;
+    private String energyType;
+    private String usageArea;
+    private String productCategory;
+    private String usagePurpose;
+    private BigDecimal quantity;
+    private BigDecimal unitPrice;
+    private BigDecimal amount;
+    private String recorder;
+    private String remark;
+    private LocalDateTime createTime;
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordSaveReqVO.java
new file mode 100644
index 0000000..a6508d3
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/energy/vo/EnergyRecordSaveReqVO.java
@@ -0,0 +1,42 @@
+package cn.iocoder.yudao.module.mes.controller.admin.energy.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.*;
+import lombok.Data;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+@Schema(description = "绠$悊鍚庡彴 - 鑳借�楄褰曟柊澧�/淇敼")
+public class EnergyRecordSaveReqVO {
+    @Positive
+    private Long id;
+    @NotNull(message = "缁熻鏃ユ湡涓嶈兘涓虹┖")
+    @PastOrPresent(message = "缁熻鏃ユ湡涓嶈兘鏅氫簬浠婂ぉ")
+    private LocalDate recordDate;
+    @NotBlank
+    @Pattern(regexp = "WATER|ELECTRICITY|STEAM", message = "鑳芥簮绫诲瀷鍙兘涓烘按銆佺數銆佽捀姹�")
+    private String energyType;
+    @NotBlank(message = "浣跨敤鍖哄煙涓嶈兘涓虹┖")
+    @Size(max = 100)
+    private String usageArea;
+    @NotBlank(message = "浜у搧绫诲埆涓嶈兘涓虹┖")
+    @Size(max = 50)
+    private String productCategory;
+    @NotBlank(message = "鐢ㄩ�斾笉鑳戒负绌�")
+    @Size(max = 100)
+    private String usagePurpose;
+    @NotNull
+    @DecimalMin(value = "0", inclusive = false, message = "鐢ㄩ噺蹇呴』澶т簬闆�")
+    @Digits(integer = 15, fraction = 3, message = "鐢ㄩ噺鏈�澶�15浣嶆暣鏁般��3浣嶅皬鏁�")
+    private BigDecimal quantity;
+    @NotNull
+    @DecimalMin(value = "0", message = "鍗曚环涓嶈兘涓鸿礋鏁�")
+    @Digits(integer = 8, fraction = 4, message = "鍗曚环鏈�澶�8浣嶆暣鏁般��4浣嶅皬鏁�")
+    private BigDecimal unitPrice;
+    @NotBlank(message = "褰曞叆浜轰笉鑳戒负绌�")
+    @Size(max = 50)
+    private String recorder;
+    @Size(max = 500)
+    private String remark;
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/energy/EnergyRecordDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/energy/EnergyRecordDO.java
new file mode 100644
index 0000000..74860fe
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/energy/EnergyRecordDO.java
@@ -0,0 +1,29 @@
+package cn.iocoder.yudao.module.mes.dal.dataobject.energy;
+
+import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/** 鐙珛鑳借�楀彴璐︼紝涓嶅叧鑱旇澶囥�佸伐鍗曘�佷骇鍝佹垨閮ㄩ棬涓绘暟鎹�� */
+@TableName("mes_energy_record")
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EnergyRecordDO extends TenantBaseDO {
+    @TableId
+    private Long id;
+    private LocalDate recordDate;
+    /** WATER / ELECTRICITY / STEAM锛屽崟浣嶅垎鍒负 m鲁 / kWh / t銆� */
+    private String energyType;
+    private String usageArea;
+    private String productCategory;
+    private String usagePurpose;
+    private BigDecimal quantity;
+    private BigDecimal unitPrice;
+    private BigDecimal amount;
+    private String recorder;
+    private String remark;
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java
new file mode 100644
index 0000000..14a16fd
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java
@@ -0,0 +1,54 @@
+package cn.iocoder.yudao.module.mes.dal.mysql.energy;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.mes.controller.admin.energy.vo.EnergyRecordPageReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.energy.vo.EnergyAnalysisReqVO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.energy.EnergyRecordDO;
+import lombok.Data;
+import org.apache.ibatis.annotations.*;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Mapper
+public interface EnergyRecordMapper extends BaseMapperX<EnergyRecordDO> {
+    default PageResult<EnergyRecordDO> selectPage(EnergyRecordPageReqVO req) {
+        return selectPage(req, new LambdaQueryWrapperX<EnergyRecordDO>()
+                .geIfPresent(EnergyRecordDO::getRecordDate, req.getStartDate())
+                .leIfPresent(EnergyRecordDO::getRecordDate, req.getEndDate())
+                .eqIfPresent(EnergyRecordDO::getEnergyType, req.getEnergyType())
+                .likeIfPresent(EnergyRecordDO::getUsageArea, req.getUsageArea())
+                .eqIfPresent(EnergyRecordDO::getProductCategory, req.getProductCategory())
+                .orderByDesc(EnergyRecordDO::getRecordDate, EnergyRecordDO::getId));
+    }
+
+    // 鎸夋暟鎹簱鍒嗙粍锛岄伩鍏嶅姞杞藉叏閮ㄥ彴璐︼紱绉熸埛鎷︽埅鍣ㄨ嚜鍔ㄦ坊鍔� tenant_id 鏉′欢銆�
+    @Select("""
+        <script>
+        SELECT energy_type AS energyType,
+          <choose><when test="req.groupBy == 'MONTH'">DATE_FORMAT(record_date, '%Y-%m')</when>
+          <otherwise>DATE_FORMAT(record_date, '%Y-%m-%d')</otherwise></choose> AS period,
+          usage_area AS usageArea, SUM(quantity) AS quantity, SUM(amount) AS amount,
+          COUNT(*) AS recordCount
+        FROM mes_energy_record
+        WHERE deleted = 0 AND record_date BETWEEN #{req.startDate} AND #{req.endDate}
+        <if test="req.energyType != null and req.energyType != ''">AND energy_type = #{req.energyType}</if>
+        <if test="req.usageArea != null and req.usageArea != ''">AND usage_area LIKE CONCAT('%', #{req.usageArea}, '%')</if>
+        <if test="req.productCategory != null and req.productCategory != ''">AND product_category = #{req.productCategory}</if>
+        GROUP BY energy_type, period, usage_area
+        ORDER BY period, energy_type, usage_area
+        </script>
+        """)
+    List<Aggregate> selectAnalysis(@Param("req") EnergyAnalysisReqVO req);
+
+    @Data
+    class Aggregate {
+        private String energyType;
+        private String period;
+        private String usageArea;
+        private BigDecimal quantity;
+        private BigDecimal amount;
+        private long recordCount;
+    }
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordService.java
new file mode 100644
index 0000000..a5940dd
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordService.java
@@ -0,0 +1,114 @@
+package cn.iocoder.yudao.module.mes.service.energy;
+
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.mes.controller.admin.energy.vo.*;
+import cn.iocoder.yudao.module.mes.dal.dataobject.energy.EnergyRecordDO;
+import cn.iocoder.yudao.module.mes.dal.mysql.energy.EnergyRecordMapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import java.math.RoundingMode;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+
+@Service
+public class EnergyRecordService {
+    private static final ErrorCode NOT_EXISTS = new ErrorCode(1_040_950_000, "鑳借�楄褰曚笉瀛樺湪鎴栧凡鍒犻櫎");
+    private static final ErrorCode ID_REQUIRED = new ErrorCode(1_040_950_001, "淇敼鑳借�楄褰曞繀椤绘彁渚涚紪鍙�");
+    @Resource
+    private EnergyRecordMapper recordMapper;
+
+    public Long create(EnergyRecordSaveReqVO req) {
+        EnergyRecordDO record = toRecord(req);
+        record.setId(null);
+        recordMapper.insert(record);
+        return record.getId();
+    }
+
+    public void update(EnergyRecordSaveReqVO req) {
+        if (req.getId() == null) {
+            throw exception(ID_REQUIRED);
+        }
+        get(req.getId());
+        if (recordMapper.updateById(toRecord(req)) == 0) {
+            throw exception(NOT_EXISTS);
+        }
+    }
+
+    public void delete(Long id) {
+        get(id);
+        if (recordMapper.deleteById(id) == 0) {
+            throw exception(NOT_EXISTS);
+        }
+    }
+
+    public EnergyRecordDO get(Long id) {
+        EnergyRecordDO record = recordMapper.selectById(id);
+        if (record == null) {
+            throw exception(NOT_EXISTS);
+        }
+        return record;
+    }
+
+    public PageResult<EnergyRecordDO> page(EnergyRecordPageReqVO req) {
+        return recordMapper.selectPage(req);
+    }
+
+    static EnergyRecordDO toRecord(EnergyRecordSaveReqVO req) {
+        EnergyRecordDO record = BeanUtils.toBean(req, EnergyRecordDO.class);
+        record.setUsageArea(req.getUsageArea().trim());
+        record.setProductCategory(req.getProductCategory().trim());
+        record.setUsagePurpose(req.getUsagePurpose().trim());
+        record.setRecorder(req.getRecorder().trim());
+        // 绌哄娉ㄤ篃鍙湪淇敼鏃舵竻闄ゃ��
+        record.setRemark(req.getRemark() == null ? "" : req.getRemark().trim());
+        record.setAmount(req.getQuantity().multiply(req.getUnitPrice()).setScale(2, RoundingMode.HALF_UP));
+        return record;
+    }
+
+    public EnergyAnalysisRespVO analysis(EnergyAnalysisReqVO req) {
+        return aggregate(recordMapper.selectAnalysis(req));
+    }
+
+    static EnergyAnalysisRespVO aggregate(List<EnergyRecordMapper.Aggregate> rows) {
+        EnergyAnalysisRespVO result = new EnergyAnalysisRespVO();
+        Map<String, EnergyAnalysisRespVO.Summary> summary = new LinkedHashMap<>();
+        for (String type : List.of("WATER", "ELECTRICITY", "STEAM")) {
+            EnergyAnalysisRespVO.Summary item = new EnergyAnalysisRespVO.Summary();
+            item.setEnergyType(type);
+            summary.put(type, item);
+        }
+        Map<List<String>, EnergyAnalysisRespVO.Bucket> trend = new LinkedHashMap<>();
+        Map<List<String>, EnergyAnalysisRespVO.Bucket> areas = new LinkedHashMap<>();
+        for (EnergyRecordMapper.Aggregate row : rows) {
+            add(summary.get(row.getEnergyType()), row);
+            add(bucket(trend, row.getPeriod(), row.getEnergyType()), row);
+            add(bucket(areas, row.getUsageArea(), row.getEnergyType()), row);
+            result.setTotalAmount(result.getTotalAmount().add(row.getAmount()));
+            result.setRecordCount(result.getRecordCount() + row.getRecordCount());
+        }
+        result.setSummary(List.copyOf(summary.values()));
+        result.setTrend(List.copyOf(trend.values()));
+        result.setAreas(List.copyOf(areas.values()));
+        return result;
+    }
+
+    private static EnergyAnalysisRespVO.Bucket bucket(Map<List<String>, EnergyAnalysisRespVO.Bucket> map,
+                                                       String label, String type) {
+        return map.computeIfAbsent(List.of(label, type), key -> {
+            EnergyAnalysisRespVO.Bucket item = new EnergyAnalysisRespVO.Bucket();
+            item.setLabel(label);
+            item.setEnergyType(type);
+            return item;
+        });
+    }
+
+    private static void add(EnergyAnalysisRespVO.Summary item, EnergyRecordMapper.Aggregate row) {
+        item.setQuantity(item.getQuantity().add(row.getQuantity()));
+        item.setAmount(item.getAmount().add(row.getAmount()));
+        item.setRecordCount(item.getRecordCount() + row.getRecordCount());
+    }
+}
diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/controller/admin/energy/EnergyRecordControllerContextTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/controller/admin/energy/EnergyRecordControllerContextTest.java
new file mode 100644
index 0000000..be350e5
--- /dev/null
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/controller/admin/energy/EnergyRecordControllerContextTest.java
@@ -0,0 +1,33 @@
+package cn.iocoder.yudao.module.mes.controller.admin.energy;
+
+import cn.iocoder.yudao.module.mes.dal.dataobject.energy.EnergyRecordDO;
+import cn.iocoder.yudao.module.mes.dal.mysql.energy.EnergyRecordMapper;
+import cn.iocoder.yudao.module.mes.service.energy.EnergyRecordService;
+import org.junit.jupiter.api.Test;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.*;
+
+class EnergyRecordControllerContextTest {
+
+    @Test
+    void injectsEnergyServiceWhenAnUnrelatedRecordServiceBeanExists() {
+        EnergyRecordMapper mapper = mock(EnergyRecordMapper.class);
+        EnergyRecordDO record = new EnergyRecordDO();
+        record.setId(12L);
+        when(mapper.selectById(12L)).thenReturn(record);
+
+        try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext()) {
+            // 妯℃嫙鏃ュ織缁勪欢鐨勫悓鍚� Bean锛岄槻姝� @Resource 鎸夊瓧娈靛悕璇�夈��
+            context.registerBean("recordService", Object.class, Object::new);
+            context.registerBean("energyRecordMapper", EnergyRecordMapper.class, () -> mapper);
+            context.register(EnergyRecordService.class, EnergyRecordController.class);
+            context.refresh();
+
+            EnergyRecordController controller = context.getBean(EnergyRecordController.class);
+            assertEquals(12L, controller.get(12L).getData().getId());
+            verify(mapper).selectById(12L);
+        }
+    }
+}
diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordServiceTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordServiceTest.java
new file mode 100644
index 0000000..b4254be
--- /dev/null
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordServiceTest.java
@@ -0,0 +1,160 @@
+package cn.iocoder.yudao.module.mes.service.energy;
+
+import cn.iocoder.yudao.module.mes.controller.admin.energy.vo.*;
+import cn.iocoder.yudao.module.mes.dal.dataobject.energy.EnergyRecordDO;
+import cn.iocoder.yudao.module.mes.dal.mysql.energy.EnergyRecordMapper;
+import jakarta.validation.Validation;
+import org.apache.ibatis.session.Configuration;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
+
+@ExtendWith(MockitoExtension.class)
+class EnergyRecordServiceTest {
+    @Mock
+    private EnergyRecordMapper mapper;
+    @InjectMocks
+    private EnergyRecordService service;
+
+    @Test
+    void calculatesMoneyWithDecimalRoundingAndClearsRemark() {
+        EnergyRecordSaveReqVO req = request();
+        req.setQuantity(new BigDecimal("12.345"));
+        req.setUnitPrice(new BigDecimal("0.6789"));
+        EnergyRecordDO record = EnergyRecordService.toRecord(req);
+        assertEquals(new BigDecimal("8.38"), record.getAmount());
+        assertEquals("鐕曠獫鐢熶骇鍖�", record.getUsageArea());
+        assertEquals("", record.getRemark());
+        req.setUnitPrice(BigDecimal.ZERO);
+        assertEquals(new BigDecimal("0.00"), EnergyRecordService.toRecord(req).getAmount());
+    }
+
+    @Test
+    void createIgnoresClientIdAndUpdateRequiresExistingRecord() {
+        EnergyRecordSaveReqVO req = request();
+        req.setId(77L);
+        doAnswer(invocation -> {
+            EnergyRecordDO record = invocation.getArgument(0);
+            assertNull(record.getId());
+            record.setId(9L);
+            return 1;
+        }).when(mapper).insert(any(EnergyRecordDO.class));
+        assertEquals(9L, service.create(req));
+        assertThrows(RuntimeException.class, () -> service.update(req));
+        verify(mapper, never()).updateById(any(EnergyRecordDO.class));
+        req.setId(null);
+        assertThrows(RuntimeException.class, () -> service.update(req));
+    }
+
+    @Test
+    void deleteMissingRecordDoesNotExecuteDelete() {
+        assertThrows(RuntimeException.class, () -> service.delete(8L));
+        verify(mapper, never()).deleteById(any(Long.class));
+    }
+
+    @Test
+    void aggregatesSeparateUnitsAndMergesDatesAreasAndCosts() {
+        EnergyAnalysisRespVO result = EnergyRecordService.aggregate(List.of(
+                row("WATER", "2026-09-01", "鐕曠獫鐢熶骇鍖�", "10", "30", 1),
+                row("WATER", "2026-09-01", "鍘熸祮鐢熶骇鍖�", "5", "15", 2),
+                row("ELECTRICITY", "2026-09-01", "鐕曠獫鐢熶骇鍖�", "100", "80", 1),
+                row("WATER", "2026-09-02", "鐕曠獫鐢熶骇鍖�", "2", "0", 1)));
+        assertEquals(new BigDecimal("125"), result.getTotalAmount());
+        assertEquals(5, result.getRecordCount());
+        assertEquals(new BigDecimal("17"), result.getSummary().get(0).getQuantity());
+        assertEquals(new BigDecimal("100"), result.getSummary().get(1).getQuantity());
+        assertEquals(BigDecimal.ZERO, result.getSummary().get(2).getQuantity());
+        assertEquals(3, result.getTrend().size());
+        assertEquals(new BigDecimal("15"), result.getTrend().get(0).getQuantity());
+        assertEquals(3, result.getAreas().size());
+        assertEquals(new BigDecimal("12"), result.getAreas().get(0).getQuantity());
+    }
+
+    @Test
+    void emptyAnalysisReturnsZeroTotalsAndAllThreeEnergies() {
+        EnergyAnalysisRespVO result = EnergyRecordService.aggregate(List.of());
+        assertEquals(3, result.getSummary().size());
+        assertEquals(BigDecimal.ZERO, result.getTotalAmount());
+        assertTrue(result.getTrend().isEmpty());
+        assertTrue(result.getAreas().isEmpty());
+    }
+
+    @Test
+    void rejectsInvalidTypeNegativePriceZeroQuantityFutureDateAndExcessPrecision() {
+        try (var factory = Validation.buildDefaultValidatorFactory()) {
+            var validator = factory.getValidator();
+            assertTrue(validator.validate(request()).isEmpty());
+            EnergyRecordSaveReqVO req = request();
+            req.setEnergyType("GAS");
+            req.setUnitPrice(new BigDecimal("-1"));
+            req.setQuantity(BigDecimal.ZERO);
+            req.setRecordDate(LocalDate.now().plusDays(1));
+            assertTrue(validator.validate(req).size() >= 4);
+            req = request();
+            req.setQuantity(new BigDecimal("1.0001"));
+            assertFalse(validator.validate(req).isEmpty());
+            EnergyAnalysisReqVO analysis = new EnergyAnalysisReqVO();
+            analysis.setStartDate(LocalDate.of(2026, 1, 1));
+            analysis.setEndDate(LocalDate.of(2025, 1, 1));
+            assertFalse(validator.validate(analysis).isEmpty());
+            analysis.setEndDate(LocalDate.of(2029, 1, 1));
+            assertFalse(validator.validate(analysis).isEmpty());
+        }
+    }
+
+    @Test
+    void analysisSqlBindsFiltersAndSelectsDayOrMonthSafely() {
+        Configuration config = new Configuration();
+        config.addMapper(EnergyRecordMapper.class);
+        var statement = config.getMappedStatement(EnergyRecordMapper.class.getName() + ".selectAnalysis");
+        EnergyAnalysisReqVO req = new EnergyAnalysisReqVO();
+        req.setStartDate(LocalDate.of(2026, 1, 1));
+        req.setEndDate(LocalDate.of(2026, 1, 31));
+        String daily = statement.getBoundSql(Map.of("req", req)).getSql();
+        assertTrue(daily.contains("'%Y-%m-%d'"));
+        assertTrue(daily.contains("deleted = 0"));
+        req.setGroupBy("MONTH");
+        req.setEnergyType("STEAM");
+        req.setUsageArea("' OR 1=1 --");
+        req.setProductCategory("鐕曠獫");
+        String monthly = statement.getBoundSql(Map.of("req", req)).getSql();
+        assertTrue(monthly.contains("'%Y-%m'"));
+        assertTrue(monthly.contains("energy_type = ?"));
+        assertTrue(monthly.contains("product_category = ?"));
+        assertFalse(monthly.contains(req.getUsageArea()));
+    }
+
+    private static EnergyRecordSaveReqVO request() {
+        EnergyRecordSaveReqVO req = new EnergyRecordSaveReqVO();
+        req.setRecordDate(LocalDate.now());
+        req.setEnergyType("WATER");
+        req.setUsageArea(" 鐕曠獫鐢熶骇鍖� ");
+        req.setProductCategory("鐕曠獫");
+        req.setUsagePurpose("璁惧娓呮礂");
+        req.setQuantity(BigDecimal.ONE);
+        req.setUnitPrice(BigDecimal.ONE);
+        req.setRecorder("寮犱笁");
+        return req;
+    }
+
+    private static EnergyRecordMapper.Aggregate row(String type, String period, String area,
+                                                    String quantity, String amount, long count) {
+        EnergyRecordMapper.Aggregate row = new EnergyRecordMapper.Aggregate();
+        row.setEnergyType(type);
+        row.setPeriod(period);
+        row.setUsageArea(area);
+        row.setQuantity(new BigDecimal(quantity));
+        row.setAmount(new BigDecimal(amount));
+        row.setRecordCount(count);
+        return row;
+    }
+}
diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml
index 4bf33fa..b39e55a 100644
--- a/yudao-server/src/main/resources/application-local.yaml
+++ b/yudao-server/src/main/resources/application-local.yaml
@@ -65,7 +65,7 @@
       primary: master
       datasource:
         master:
-          url: jdbc:mysql://localhost:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 杩炴帴鐨勭ず渚�
+          url: jdbc:mysql://localhost:3306/mom-hm?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 杩炴帴鐨勭ず渚�
           username: root
           password: 123456
 

--
Gitblit v1.9.3