From c8ffbc529028161a2edf82e5aaecfa7af97444bf Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 14 八月 2026 17:49:59 +0800
Subject: [PATCH] chore: 移除多余文件

---
 /dev/null                              |  268 --------------------------------------------
 src/main/resources/application-jhy.yml |    4 
 src/main/resources/application-dev.yml |   46 +++----
 3 files changed, 24 insertions(+), 294 deletions(-)

diff --git a/doc/1767778273_add_product_order_id_to_product_work_order.sql b/doc/1767778273_add_product_order_id_to_product_work_order.sql
deleted file mode 100644
index 8804120..0000000
--- a/doc/1767778273_add_product_order_id_to_product_work_order.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-alter table product_work_order
-    add product_order_id bigint not null default 0 comment '鐢熶骇璁㈠崟id';
diff --git a/doc/20260113-product_model.sql b/doc/20260113-product_model.sql
deleted file mode 100644
index dcbb610..0000000
--- a/doc/20260113-product_model.sql
+++ /dev/null
@@ -1,14 +0,0 @@
-alter table product_model
-    add product_code varchar(255)  null comment '浜у搧缂栫爜';
-
-alter table process_route
-    add process_route_code varchar(255)  null comment '宸ヨ壓璺嚎缂栫爜';
-
-alter table procurement_record_storage
-    add product_model_id bigint null comment '浜у搧瑙勬牸id';
-alter table procurement_record_out
-    add product_model_id bigint null comment '浜у搧瑙勬牸id';
-
-
-alter table quality_inspect
-    add product_model_id bigint null comment '浜у搧瑙勬牸id';
diff --git a/doc/20260114_add_dimission_reason_and_remark_to_staff_join_leave_record.sql b/doc/20260114_add_dimission_reason_and_remark_to_staff_join_leave_record.sql
deleted file mode 100644
index 4c4acc2..0000000
--- a/doc/20260114_add_dimission_reason_and_remark_to_staff_join_leave_record.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-alter table staff_join_leave_record
-    add dimission_reason varchar(255) null comment '绂昏亴鍘熷洜',
-    add dimission_remark text null comment '绂昏亴澶囨敞';
diff --git a/doc/20260115_add_sys_post_id_to_staff_join_leave_record.sql b/doc/20260115_add_sys_post_id_to_staff_join_leave_record.sql
deleted file mode 100644
index 7fea0ad..0000000
--- a/doc/20260115_add_sys_post_id_to_staff_join_leave_record.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-alter table staff_on_job
-    add sys_post_id bigint not null default 0 comment '宀椾綅id';
-alter table staff_on_job
-drop column post_job;
-alter table staff_on_job
-    add sys_dept_id bigint default 0 not null;
\ No newline at end of file
diff --git a/doc/20260116_create_table_staff_contract.sql b/doc/20260116_create_table_staff_contract.sql
deleted file mode 100644
index f8fc20a..0000000
--- a/doc/20260116_create_table_staff_contract.sql
+++ /dev/null
@@ -1,13 +0,0 @@
-# 鍛樺伐鍚堝悓琛�
-drop table if exists staff_contract;
-create table staff_contract
-(
-    id                  bigint auto_increment primary key,
-    staff_on_job_id     bigint not null default 0 comment '鍛樺伐鍦ㄨ亴id',
-    contract_start_time datetime null comment '鍚堝悓寮�濮嬫椂闂�',
-    contract_end_time   datetime null comment '鍚堝悓缁撴潫鏃堕棿',
-    contract_term       int    not null default 0 comment '鍚堝悓鏈熼檺',
-    tenant_id           bigint not null comment '绉熸埛id',
-    create_time         datetime null comment '褰曞叆鏃堕棿',
-    update_time         datetime null comment '鏇存柊鏃堕棿'
-);
diff --git a/doc/20260116_create_table_staff_leave.sql b/doc/20260116_create_table_staff_leave.sql
deleted file mode 100644
index 7e4b1cf..0000000
--- a/doc/20260116_create_table_staff_leave.sql
+++ /dev/null
@@ -1,13 +0,0 @@
-#鍛樺伐绂昏亴琛�
-drop table if exists staff_join_leave_record;
-drop table if exists staff_leave;
-create table staff_leave
-(
-    id              bigint auto_increment primary key,
-    staff_on_job_id bigint not null default 0 comment '鍛樺伐鍦ㄨ亴id',
-    reason          varchar(255) null comment '绂昏亴鍘熷洜',
-    remark          text null comment '绂昏亴澶囨敞',
-    tenant_id       bigint not null comment '绉熸埛id',
-    create_time     datetime null comment '褰曞叆鏃堕棿',
-    update_time     datetime null comment '鏇存柊鏃堕棿'
-);
diff --git a/doc/20260119-procurement_record_storage.sql b/doc/20260119-procurement_record_storage.sql
deleted file mode 100644
index 923bbd3..0000000
--- a/doc/20260119-procurement_record_storage.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-alter table procurement_record_storage
-    add quality_inspect_id bigint null comment '璐ㄦid';
\ No newline at end of file
diff --git a/doc/20260128_add_unique_to_staff_on_job.sql b/doc/20260128_add_unique_to_staff_on_job.sql
deleted file mode 100644
index 16b2221..0000000
--- a/doc/20260128_add_unique_to_staff_on_job.sql
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE staff_on_job ADD unique (staff_no);
\ No newline at end of file
diff --git a/doc/20260209_create_personal_attendance_records.sql b/doc/20260209_create_personal_attendance_records.sql
deleted file mode 100644
index 0a25e18..0000000
--- a/doc/20260209_create_personal_attendance_records.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-#鍛樺伐鑰冨嫟琛�
-drop table if exists personal_attendance_records;
-create table personal_attendance_records
-(
-    id              bigint auto_increment primary key,
-    staff_on_job_id bigint not null default 0 comment '鍛樺伐鍦ㄨ亴id',
-    date            date not null comment '鏃ユ湡',
-    work_start_at   datetime null comment '宸ヤ綔寮�濮嬫椂闂�',
-    work_end_at     datetime null comment '宸ヤ綔缁撴潫鏃堕棿',
-    work_hours      decimal(5,2) null comment '宸ヤ綔鏃堕暱',
-    status          tinyint not null default 0 comment '鐘舵�� 0姝e父 1杩熷埌 2鏃╅��',
-    remark          text null comment '澶囨敞',
-    tenant_id       bigint not null comment '绉熸埛id',
-    create_time     datetime null comment '褰曞叆鏃堕棿',
-    update_time     datetime null comment '鏇存柊鏃堕棿',
-    index idx_staff_on_job_id (staff_on_job_id),
-    unique idx_staff_on_job_id_date (staff_on_job_id, date)
-);
diff --git a/doc/20260306_create_purchase_return_orders.sql b/doc/20260306_create_purchase_return_orders.sql
deleted file mode 100644
index 328cb00..0000000
--- a/doc/20260306_create_purchase_return_orders.sql
+++ /dev/null
@@ -1,38 +0,0 @@
-#浜у搧閫�璐у崟琛�
-drop table if exists purchase_return_orders;
-create table purchase_return_orders
-(
-    id                 bigint auto_increment primary key,
-    no                 varchar(255) null comment '閫�璐у崟缂栧彿',
-    return_type        tinyint not null default 0 comment '閫�璐ф柟寮� 0閫�璐ч��娆� 1鎷掓敹',
-    supplier_id        bigint  not null default 0 comment '渚涘簲鍟唅d',
-    project_id         bigint  not null default 0 comment '椤圭洰id',
-    project_phase      tinyint not null default 0 comment '椤圭洰闃舵',
-    prepared_at        datetime null comment '鍒跺崟鏃ユ湡',
-    prepared_user_id   bigint  not null default 0 comment '鍒跺崟浜篿d',
-    return_user_id     bigint  not null default 0 comment '閫�鏂欎汉id',
-    purchase_ledger_id bigint  not null default 0 comment '閲囪喘璁㈠崟id',
-    total_discount_amount decimal(10, 2) null comment '鏁村崟鎶樻墸棰�',
-    total_discount_rate   decimal(10, 2) null comment '鏁村崟鎶樻墸鐜�',
-    total_amount decimal(10,2) null comment '鎴愪氦閲戦',
-    remark             text null comment '澶囨敞',
-    create_time        datetime null comment '褰曞叆鏃堕棿',
-    update_time        datetime null comment '鏇存柊鏃堕棿',
-    index              idx_supplier_id (supplier_id),
-    index              idx_purchase_ledger_id (purchase_ledger_id),
-    index              idx_project_id (project_id)
-);
-
-#浜у搧閫�璐у崟涓庨噰璐骇鍝佸叧鑱旇〃
-drop table if exists purchase_return_order_products;
-create table purchase_return_order_products
-(
-    id                       bigint auto_increment primary key,
-    purchase_return_order_id bigint not null default 0 comment '閫�璐у崟id',
-    sales_ledger_product_id  bigint not null default 0 comment '閲囪喘浜у搧id',
-    return_quantity          decimal(16, 4)  not null default 0 comment '閫�璐ф暟閲�',
-    create_time              datetime null comment '褰曞叆鏃堕棿',
-    update_time              datetime null comment '鏇存柊鏃堕棿',
-    index                    idx_purchase_return_order_id (purchase_return_order_id),
-    index                    idx_sales_ledger_product_id (sales_ledger_product_id)
-);
\ No newline at end of file
diff --git a/doc/20260428_create_table_ai_chat_session.sql b/doc/20260428_create_table_ai_chat_session.sql
deleted file mode 100644
index f490376..0000000
--- a/doc/20260428_create_table_ai_chat_session.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-CREATE TABLE IF NOT EXISTS `ai_chat_session` (
-  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭',
-  `memory_id` varchar(64) NOT NULL COMMENT '浼氳瘽ID',
-  `user_id` bigint NOT NULL COMMENT '鐢ㄦ埛ID',
-  `tenant_id` bigint DEFAULT NULL COMMENT '绉熸埛ID',
-  `title` varchar(128) DEFAULT NULL COMMENT '浼氳瘽鏍囬',
-  `last_message` varchar(512) DEFAULT NULL COMMENT '鏈�鍚庝竴鏉℃秷鎭�',
-  `message_count` int NOT NULL DEFAULT 0 COMMENT '娑堟伅鏁伴噺',
-  `last_chat_time` datetime DEFAULT NULL COMMENT '鏈�鍚庤亰澶╂椂闂�',
-  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
-  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `uk_ai_chat_session_memory_id` (`memory_id`),
-  KEY `idx_ai_chat_session_user_tenant` (`user_id`, `tenant_id`),
-  KEY `idx_ai_chat_session_last_chat_time` (`last_chat_time`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='AI鍘嗗彶浼氳瘽鍏冩暟鎹〃';
diff --git a/doc/20260506_add_ai_enabled_to_sys_user.sql b/doc/20260506_add_ai_enabled_to_sys_user.sql
deleted file mode 100644
index 7e7ee9d..0000000
--- a/doc/20260506_add_ai_enabled_to_sys_user.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-alter table sys_user
-    add ai_enabled tinyint(1) not null default 0 comment '鏄惁寮�閫欰I鍔熻兘锛�0鍚� 1鏄級';
diff --git "a/doc/20260506_\347\224\250\346\210\267AI\345\212\237\350\203\275\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md" "b/doc/20260506_\347\224\250\346\210\267AI\345\212\237\350\203\275\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md"
deleted file mode 100644
index bce48d5..0000000
--- "a/doc/20260506_\347\224\250\346\210\267AI\345\212\237\350\203\275\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md"
+++ /dev/null
@@ -1,53 +0,0 @@
-# 鐢ㄦ埛 AI 鍔熻兘瀛楁鍓嶇鑱旇皟璇存槑
-
-## 鑳屾櫙
-
-鍚庣宸插湪鐢ㄦ埛琛ㄥ鍔犻殣钘忓瓧娈� `ai_enabled`锛岀敤浜庢爣璇嗙敤鎴锋槸鍚﹀紑閫� AI 鍔熻兘銆�  
-璇ュ瓧娈典笉寮�鏀剧粰鐢ㄦ埛璧勬枡缁存姢鎺ュ彛锛堜笉閫氳繃鐢ㄦ埛缂栬緫椤甸潰涓嬪彂/鍥炲啓锛夈��
-
-## 瀛楁瀹氫箟
-
-| 瀛楁 | 绫诲瀷 | 榛樿鍊� | 璇存槑 |
-| --- | --- | --- | --- |
-| ai_enabled | tinyint(1) | 0 | 鏄惁寮�閫� AI 鍔熻兘锛歚0`=鏈紑閫氾紝`1`=宸插紑閫� |
-
-## 鑱旇皟鎺ュ彛
-
-鐧诲綍鍚庤皟鐢細
-
-```http
-GET /getInfo
-```
-
-杩斿洖涓柊澧為《灞傚瓧娈� `aiEnabled`锛�
-
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "user": {
-    "userId": 1,
-    "userName": "admin"
-  },
-  "aiEnabled": 1,
-  "roles": [
-    "admin"
-  ],
-  "permissions": [
-    "*:*:*"
-  ]
-}
-```
-
-## 鍓嶇浣跨敤寤鸿
-
-1. 鐧诲綍鎴愬姛鍚庢寜鐜版湁娴佺▼璋冪敤 `/getInfo`銆�
-2. 浠庡搷搴旈《灞傝鍙� `aiEnabled`銆�
-3. 鍒ゅ畾閫昏緫寤鸿锛�
-   - `aiEnabled === 1`锛氬睍绀�/鏀惧紑 AI 鐩稿叧鍏ュ彛銆�
-   - 鍏朵粬鍊硷紙`0`銆乣null`銆乣undefined`锛夛細鎸夋湭寮�閫氬鐞嗐��
-
-## 缂撳瓨璇存槑
-
-- `aiEnabled` 宸叉斁鍏ョ櫥褰曠紦瀛樺璞★紙`LoginUser`锛夊苟闅� token 鐢熷懡鍛ㄦ湡绠$悊銆�
-- 缂撳瓨 key 鍓嶇紑锛歚login_tokens:`銆�
diff --git "a/doc/20260507_\351\207\207\350\264\255\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\347\241\256\350\256\244\346\216\245\345\217\243\344\274\240\345\217\202\347\261\273\345\236\213\347\272\246\346\235\237.md" "b/doc/20260507_\351\207\207\350\264\255\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\347\241\256\350\256\244\346\216\245\345\217\243\344\274\240\345\217\202\347\261\273\345\236\213\347\272\246\346\235\237.md"
deleted file mode 100644
index 69535e7..0000000
--- "a/doc/20260507_\351\207\207\350\264\255\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\347\241\256\350\256\244\346\216\245\345\217\243\344\274\240\345\217\202\347\261\273\345\236\213\347\272\246\346\235\237.md"
+++ /dev/null
@@ -1,166 +0,0 @@
-# 閲囪喘澶氭枃浠跺垎鏋愮‘璁ゆ帴鍙d紶鍙傜被鍨嬬害鏉燂紙`purchase_ledger`锛�
-
-## 1. 閫傜敤鎺ュ彛
-
-- `POST /purchase-ai/analyze-files/confirm`
-- `businessType = purchase_ledger`
-
-> 鏈枃鐢ㄤ簬绾︽潫鍓嶇鎻愪氦鍒扮‘璁ゆ帴鍙g殑 `payload` 绫诲瀷锛岄伩鍏� `Cannot deserialize ...` 杩欑被鍙嶅簭鍒楀寲寮傚父銆�
-
-## 2. 椤跺眰璇锋眰浣�
-
-```json
-{
-  "businessType": "purchase_ledger",
-  "payload": {
-    "purchaseLedgers": []
-  }
-}
-```
-
-## 3. payload 缁撴瀯
-
-鎺ㄨ崘缁熶竴浣跨敤鎵归噺缁撴瀯锛堝嵆浣垮彧鏈� 1 鏉★級锛�
-
-```json
-{
-  "purchaseLedgers": [
-    {
-      "purchaseContractNumber": "CG-2026-001",
-      "supplierId": 10001,
-      "entryDate": "2026-05-07",
-      "type": 2,
-      "approvalStatus": 1,
-      "productData": [
-        {
-          "productCategory": "閽㈡潗",
-          "specificationModel": "Q235-A",
-          "unit": "鍚�",
-          "quantity": 10,
-          "taxInclusiveUnitPrice": 1200,
-          "taxInclusiveTotalPrice": 12000,
-          "taxRate": 13,
-          "type": 2
-        }
-      ]
-    }
-  ]
-}
-```
-
-鍚庣涔熷吋瀹光�滃崟鏉$洿浼犫�濓紙`payload` 鐩存帴鏄竴鏉� `PurchaseLedgerDto`锛夛紝浣嗕笉寤鸿鏂板墠绔户缁娇鐢ㄣ��
-
-## 4. Java 绫诲瀷鍒� JSON 绫诲瀷鏄犲皠瑙勫垯
-
-- `Long` / `Integer`锛氫紶 **number**锛堟暣鏁帮級锛屼笉瑕佷紶 `"pending"`銆乣"1绾�"` 杩欑被瀛楃涓层��
-- `BigDecimal`锛氫紶 **number**锛堝彲灏忔暟锛夛紝涓嶈浼犲甫閫楀彿銆佸崟浣嶇殑瀛楃涓诧紙濡� `"12,000鍏�"`锛夈��
-- `Date`锛氫紶 **string**锛屾牸寮忓浐瀹� `yyyy-MM-dd`銆�
-- `Boolean`锛氫紶 `true/false`锛屼笉瑕佷紶 `"true"`銆乣"鏄�"`銆�
-- `List<T>`锛氫紶鏁扮粍 `[]`銆�
-
-## 5. `PurchaseLedgerDto` 瀛楁绫诲瀷绾︽潫锛堢‘璁ゆ帴鍙e彲璇嗗埆瀛楁锛�
-
-| 瀛楁 | Java 绫诲瀷 | JSON 绫诲瀷 | 璇存槑 |
-| --- | --- | --- | --- |
-| entryDateStart | String | string | 鏌ヨ鍖洪棿寮�濮嬫棩鏈燂紙`yyyy-MM-dd`锛� |
-| entryDateEnd | String | string | 鏌ヨ鍖洪棿缁撴潫鏃ユ湡锛坄yyyy-MM-dd`锛� |
-| id | Long | number(integer) | 鍙拌处ID |
-| purchaseContractNumber | String | string | **蹇呭~**锛堜富涓氬姟鍗曞彿锛� |
-| supplierId | Long | number(integer) | `supplierId` 涓� `supplierName` 浜岄�変竴蹇呭~ |
-| supplierName | String | string | `supplierId` 涓� `supplierName` 浜岄�変竴蹇呭~ |
-| recorderId | Long | number(integer) | 褰曞叆浜篒D |
-| recorderName | String | string | 褰曞叆浜哄悕绉� |
-| salesContractNo | String | string | 閿�鍞悎鍚屽彿 |
-| salesContractNoId | Long | number(integer) | 閿�鍞悎鍚孖D |
-| projectName | String | string | 椤圭洰鍚嶇О |
-| entryDate | Date | string(`yyyy-MM-dd`) | 褰曞叆鏃ユ湡锛涚己鐪佹椂鍚庣浼氳ˉ褰撳ぉ |
-| executionDate | Date | string(`yyyy-MM-dd`) | 绛捐鏃ユ湡 |
-| remarks | String | string | 澶囨敞 |
-| attachmentMaterials | String | string | 闄勪欢璇存槑/璺緞 |
-| createdAt | Date | string(`yyyy-MM-dd`) | 鍒涘缓鏃ユ湡 |
-| updatedAt | Date | string(`yyyy-MM-dd`) | 鏇存柊鏃ユ湡 |
-| salesLedgerId | Long | number(integer) | 閿�鍞彴璐D |
-| hasChildren | Boolean | boolean | 鏄惁鏈夊瓙椤� |
-| Type | Integer | number(integer) | 鍘嗗彶瀛楁锛堜笉鎺ㄨ崘鏂板墠绔娇鐢級 |
-| productData | List<SalesLedgerProduct> | array | 浜у搧鏄庣粏锛岃涓嬭妭 |
-| tempFileIds | List<String> | array[string] | 涓存椂鏂囦欢ID鍒楄〃 |
-| SalesLedgerFiles | List<CommonFile> | array[object] | 鍘嗗彶鍏煎瀛楁 |
-| phoneNumber | String | string | 涓氬姟鍛樻墜鏈哄彿 |
-| businessPersonId | Long | number(integer) | 涓氬姟鍛業D |
-| productId | Long | number(integer) | 浜у搧ID |
-| productModelId | Long | number(integer) | 浜у搧瑙勬牸ID |
-| invoiceNumber | String | string | 鍙戠エ鍙� |
-| invoiceAmount | BigDecimal | number | 鍙戠エ閲戦 |
-| ticketRegistrationId | Long | number(integer) | 鏉ョエ鐧昏ID |
-| contractAmount | BigDecimal | number | 鍚堝悓閲戦 |
-| receiptPaymentAmount | BigDecimal | number | 鏉ョエ閲戦 |
-| unReceiptPaymentAmount | BigDecimal | number | 鏈潵绁ㄩ噾棰� |
-| type | Integer | number(integer) | 鍙拌处绫诲瀷锛岄噰璐浐瀹� `2`锛堢己鐪佹椂鍚庣琛� `2`锛� |
-| paymentMethod | String | string | 浠樻鏂瑰紡 |
-| approvalStatus | Integer | number(integer) | 瀹℃壒鐘舵�侊紝**涓ョ浼犲瓧绗︿覆**锛堝 `"pending"`锛� |
-| templateName | String | string | 妯℃澘鍚嶇О |
-
-### 瀹℃壒鐘舵�佸缓璁�硷紙`approvalStatus`锛�
-
-寤鸿鎸夋暟瀛椾紶鍊硷細
-
-- `1`锛氬緟瀹℃牳
-- `2`锛氬鏍镐腑
-- `3`锛氬鏍搁�氳繃
-- `4`锛氬鏍告嫆缁�/澶辫触
-- `5`锛氭ā鏉挎暟鎹紙鍘嗗彶瀹氫箟锛�
-
-## 6. `productData`锛坄SalesLedgerProduct`锛夊缓璁瓧娈靛強绫诲瀷
-
-| 瀛楁 | Java 绫诲瀷 | JSON 绫诲瀷 | 璇存槑 |
-| --- | --- | --- | --- |
-| productCategory | String | string | **蹇呭~**锛屼骇鍝佸ぇ绫�/鍚嶇О |
-| specificationModel | String | string | **蹇呭~**锛岃鏍煎瀷鍙� |
-| unit | String | string | **蹇呭~**锛屽崟浣� |
-| quantity | BigDecimal | number | **蹇呭~**锛屾暟閲� |
-| taxRate | BigDecimal | number | 绋庣巼锛堝 `13`锛� |
-| taxInclusiveUnitPrice | BigDecimal | number | **蹇呭~**锛屽惈绋庡崟浠� |
-| taxInclusiveTotalPrice | BigDecimal | number | **蹇呭~**锛屽惈绋庢�讳环 |
-| taxExclusiveTotalPrice | BigDecimal | number | 涓嶅惈绋庢�讳环锛堝彲涓嶄紶锛屽悗绔彲鎺ㄥ锛� |
-| invoiceType | String | string | 鍙戠エ绫诲瀷 |
-| productId | Long | number(integer) | 浜у搧ID |
-| productModelId | Long | number(integer) | 浜у搧鍨嬪彿ID |
-| isChecked | Boolean | boolean | 鏄惁璐ㄦ |
-| type | Integer | number(integer) | 閲囪喘浜у搧鍥哄畾 `2`锛堝缓璁紶 `2`锛� |
-
-## 7. 蹇呭~涓庡悗绔粯璁よ涓�
-
-- 鍙拌处涓昏〃蹇呭~锛歚purchaseContractNumber`锛屼互鍙� `supplierId` / `supplierName` 浜岄�変竴銆�
-- 浜у搧鏄庣粏鑻ヤ紶浜� `productData`锛屽垯姣忔潯浜у搧蹇呭~锛歚productCategory`銆乣specificationModel`銆乣unit`銆乣quantity`銆乣taxInclusiveUnitPrice`銆乣taxInclusiveTotalPrice`銆�
-- `entryDate` 涓虹┖鏃讹紝鍚庣琛ュ綋澶╂棩鏈熴��
-- `type` 涓虹┖鏃讹紝鍚庣琛� `2`銆�
-
-## 8. 鍓嶇楂橀閿欒绀轰緥
-
-閿欒锛堜細瑙﹀彂鍙嶅簭鍒楀寲寮傚父锛夛細
-
-```json
-{
-  "approvalStatus": "pending",
-  "type": "閲囪喘",
-  "supplierId": "渚涘簲鍟咥"
-}
-```
-
-姝g‘锛�
-
-```json
-{
-  "approvalStatus": 1,
-  "type": 2,
-  "supplierId": 10001
-}
-```
-
-## 9. 鎻愪氦鍓嶈嚜妫�娓呭崟
-
-1. 鎵�鏈� `Long/Integer/BigDecimal` 瀛楁閮戒负鏁板瓧锛屼笉鏄笟鍔¤瘝瀛楃涓层��
-2. 鎵�鏈夋棩鏈熷瓧娈甸兘鏄� `yyyy-MM-dd`銆�
-3. `approvalStatus` 浠呬紶鏁板瓧鐘舵�佺爜銆�
-4. `supplierId` 涓� `supplierName` 鑷冲皯鏈変竴涓湁鏁堝�笺��
-5. `productData` 涓繀濉垪榻愬叏涓斾负姝g‘绫诲瀷銆�
diff --git "a/doc/20260508_\351\207\207\350\264\255\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\351\231\204\344\273\266\345\255\230\345\202\250\344\270\216\345\216\206\345\217\262\345\233\236\346\230\276\350\201\224\350\260\203\350\257\264\346\230\216.md" "b/doc/20260508_\351\207\207\350\264\255\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\351\231\204\344\273\266\345\255\230\345\202\250\344\270\216\345\216\206\345\217\262\345\233\236\346\230\276\350\201\224\350\260\203\350\257\264\346\230\216.md"
deleted file mode 100644
index c883a22..0000000
--- "a/doc/20260508_\351\207\207\350\264\255\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\351\231\204\344\273\266\345\255\230\345\202\250\344\270\216\345\216\206\345\217\262\345\233\236\346\230\276\350\201\224\350\260\203\350\257\264\346\230\216.md"
+++ /dev/null
@@ -1,149 +0,0 @@
-# 閲囪喘澶氭枃浠跺垎鏋愰檮浠跺瓨鍌ㄤ笌鍘嗗彶鍥炴樉鑱旇皟璇存槑
-
-> 鏇存柊鏃堕棿锛�2026-05-08  
-> 閫傜敤鑼冨洿锛氶噰璐櫤鑳戒綋澶氭枃浠跺垎鏋� + 鍘嗗彶浼氳瘽闄勪欢鍥炴樉
-
-## 1. 鍙樻洿鑳屾櫙
-
-鍚庣宸茶ˉ榻愪互涓嬭兘鍔涳細
-
-1. `POST /purchase-ai/analyze-files` 涓婁紶鏃跺厛瀛橀檮浠跺埌鏈嶅姟鍣紙鍏叡璁块棶锛夈��
-2. 鎸夋枃浠剁被鍨嬭繑鍥炲彲璁块棶璺緞锛�
-   - 鍥剧墖 / PDF锛氫紭鍏堥瑙堣矾寰�
-   - 鍏跺畠鏂囦欢锛氫紭鍏堜笅杞借矾寰�
-3. 鐢ㄦ埛鎻愰棶涓庨檮浠惰矾寰勫垎寮�瀛樺叆 Mongo銆�
-4. 鍘嗗彶娑堟伅鎺ュ彛鍙寜鈥滄秷鎭淮搴︹�濆洖浼犻檮浠惰矾寰勶紝鍓嶇鍙洿鎺ュ洖鏄鹃檮浠跺崱鐗囥��
-
----
-
-## 2. 鎺ュ彛琛屼负
-
-### 2.1 澶氭枃浠跺垎鏋愭帴鍙�
-
-```http
-POST /purchase-ai/analyze-files
-Content-Type: multipart/form-data
-```
-
-璇锋眰鍙傛暟锛�
-
-- `files`: `MultipartFile[]`锛堝繀濉級
-- `message`: `string`锛堝彲閫夛級
-- `memoryId`: `string`锛堝彲閫夛級
-
-鍚庣澶勭悊娴佺▼锛�
-
-1. 璋冪敤 `StorageBlobService.upload(files, true)` 涓婁紶骞朵繚瀛橀檮浠躲��
-2. 鐢熸垚闄勪欢璁块棶璺緞锛堥瑙� / 涓嬭浇锛夈��
-3. 灏嗏�滄湰娆℃彁闂� + 鏈闄勪欢璺緞鍒楄〃鈥濆啓鍏� Mongo銆�
-4. 缁х画鎵ц鍘熸湁鏂囦欢瑙f瀽鍜� AI 鍒嗘瀽娴佺▼銆�
-
-鍙兘閿欒锛堟祦寮忔枃鏈級锛�
-
-- `鏂囦欢涓婁紶澶辫触`
-- `浼氳瘽鏂囦欢淇℃伅淇濆瓨澶辫触`
-
-### 2.2 鍘嗗彶娑堟伅鎺ュ彛锛堝墠绔噸鐐癸級
-
-```http
-GET /purchase-ai/history/messages/{memoryId}
-```
-
-娑堟伅瀵硅薄鏂板鍙�夊瓧娈� `filePaths`锛堜粎鐢ㄦ埛娑堟伅鍙兘鏈夊�硷級锛�
-
-```json
-{
-  "role": "user | assistant | system | tool | unknown",
-  "content": "娑堟伅鏂囨湰",
-  "filePaths": [
-    "/common/preview/xxx?publicKey=...",
-    "/common/download/yyy?publicKey=..."
-  ]
-}
-```
-
-璇存槑锛�
-
-1. `filePaths` 鍙兘缂哄け鎴栦负绌猴紙鑰佷細璇� / 鏅�氬璇濓級銆�
-2. 鍗曟潯鐢ㄦ埛娑堟伅鍙兘鍖呭惈澶氫釜闄勪欢璺緞銆�
-3. 璇ュ瓧娈靛凡鎸夋秷鎭淮搴﹀榻愶紝鍙洿鎺ョ敤浜庡巻鍙插洖鏄俱��
-
----
-
-## 3. 鍓嶇鏀归�犲缓璁紙鎸夊綋鍓嶅疄鐜拌惤鍦帮級
-
-### 3.1 鍘嗗彶鍝嶅簲妯″瀷
-
-寤鸿鍦ㄥ巻鍙叉秷鎭師濮嬬粨鏋勪腑淇濈暀 `filePaths`锛�
-
-```ts
-type AiHistoryMessage = {
-  role: string;
-  content: string;
-  filePaths?: string[];
-};
-```
-
-### 3.2 UI 娑堟伅妯″瀷鏄犲皠
-
-鑻ュ墠绔〉闈㈢敤鐨勬槸 `localUploadFiles` 娓叉煋闄勪欢鍗$墖锛堝 `AIChatSidebar` 褰撳墠瀹炵幇锛夛紝鍘嗗彶娑堟伅闇�鍋氫竴娆℃槧灏勶細
-
-```ts
-type LocalUploadFileItem = {
-  previewId: string;
-  name: string;
-  size: number;
-  type: string;
-  isImage: boolean;
-  previewUrl: string;
-  rawFile: null;
-};
-```
-
-鏄犲皠瑙勫垯寤鸿锛�
-
-1. 浠� `role === 'user'` 涓� `filePaths?.length > 0` 鏃剁敓鎴� `localUploadFiles`銆�
-2. `previewId` 鐢� `${memoryId}-${messageIndex}-${fileIndex}` 鐢熸垚绋冲畾鍊笺��
-3. `name` 鍙粠 URL 璺緞瑙f瀽锛涜В鏋愬け璐ョ敤 `file-{n}`銆�
-4. `isImage` 鍙寜鎵╁睍鍚嶅垽鏂紙`png/jpg/jpeg/gif/webp/bmp/svg`锛夈��
-5. 鍥剧墖鐨� `previewUrl` 鐩存帴浣跨敤璺緞锛涢潪鍥剧墖鍙疆绌哄苟璧板浘鏍囧睍绀恒��
-
-### 3.3 娑堟伅娓叉煋
-
-瀵逛簬鐢ㄦ埛娑堟伅锛�
-
-1. 姝e父娓叉煋 `content`銆�
-2. 鑻ュ瓨鍦� `localUploadFiles`锛堟垨鐩存帴浣跨敤 `filePaths`锛夛紝鍦ㄦ秷鎭笅鏂规覆鏌撻檮浠跺垪琛�/鍗$墖銆�
-3. 閾炬帴鐩存帴浣跨敤鍚庣杩斿洖璺緞锛屼笉鍐嶆嫾鎺ユ垨浜屾鏀瑰啓銆�
-
-> 鍚庣宸插畬鎴愨�滈瑙�/涓嬭浇璺緞鈥濋�夋嫨锛屽墠绔彧璐熻矗灞曠ず涓庢墦寮�銆�
-
-### 3.4 鍏煎瑕佹眰
-
-- `filePaths` 缂哄け锛氫笉鎶ラ敊锛屼笉娓叉煋闄勪欢鍖哄煙銆�
-- 鑰佷細璇濓細缁х画鎸� `role/content` 灞曠ず锛屼笉褰卞搷鍘嗗彶璁板綍鏌ョ湅銆�
-- 澶氶檮浠讹細淇濇寔椤哄簭灞曠ず锛岄伩鍏嶆墦涔辩敤鎴蜂笂浼犻『搴忋��
-
----
-
-## 4. Mongo 瀛楁璇存槑锛堝悗绔凡瀹炵幇锛�
-
-`chat_messages` 鏂囨。鏂板/浣跨敤瀛楁锛�
-
-- `analyzeUserQuestions: string[]`
-- `analyzeFilePaths: string[]`锛堝吋瀹规棫瀛楁锛�
-- `analyzeFilePathGroups: string[][]`锛堟帹鑽愶紝鎸夋彁闂垎缁勶級
-
-鍘嗗彶娑堟伅鍥炰紶鏃讹紝鍚庣浼樺厛璇诲彇 `analyzeFilePathGroups`锛屽苟鍏煎 `analyzeFilePaths`銆�
-
----
-
-## 5. 鑱旇皟楠屾敹娓呭崟
-
-1. 鏂板缓浼氳瘽锛屼笂浼� 1 寮犲浘鐗� + 1 涓� Excel锛屽彂閫佸垎鏋愯姹傘��
-2. 璋冪敤 `GET /purchase-ai/history/messages/{memoryId}`锛岀‘璁ょ敤鎴锋秷鎭惈 `filePaths` 涓旀暟閲忔纭��
-3. 鍒锋柊椤甸潰鍚庨噸鏂拌繘鍏ュ悓涓�浼氳瘽锛岀‘璁ら檮浠跺崱鐗囧彲鍥炴樉銆�
-4. 鍒嗗埆楠岃瘉锛�
-   - 鍥剧墖/PDF 鍙瑙堣闂�
-   - 鍏跺畠鏂囦欢鍙笅杞借闂�
-5. 楠岃瘉鑰佷細璇濓紙鏃� `filePaths`锛夊彲姝e父灞曠ず锛岄〉闈笉鎶ラ敊銆�
diff --git "a/doc/20260511_\350\256\276\345\244\207\344\277\235\345\205\273\345\256\232\346\227\266\344\273\273\345\212\241\350\256\276\345\244\207\351\241\271\347\233\256\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md" "b/doc/20260511_\350\256\276\345\244\207\344\277\235\345\205\273\345\256\232\346\227\266\344\273\273\345\212\241\350\256\276\345\244\207\351\241\271\347\233\256\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md"
deleted file mode 100644
index e35f0f9..0000000
--- "a/doc/20260511_\350\256\276\345\244\207\344\277\235\345\205\273\345\256\232\346\227\266\344\273\273\345\212\241\350\256\276\345\244\207\351\241\271\347\233\256\345\255\227\346\256\265\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md"
+++ /dev/null
@@ -1,111 +0,0 @@
-# 璁惧淇濆吇瀹氭椂浠诲姟璁惧椤圭洰瀛楁鍓嶇鑱旇皟璇存槑
-
-> 鏇存柊鏃堕棿锛�2026-05-11  
-> 閫傜敤鑼冨洿锛氳澶囦繚鍏诲畾鏃朵换鍔★紙`maintenance_task`锛変笌璁惧淇濆吇璁板綍锛坄device_maintenance`锛�
-
-## 1. 鍙樻洿姒傝堪
-
-鏈鍚庣鍙樻洿锛�
-
-1. `MaintenanceTask` 鏂板瀛楁 `machineryCategory`锛堣澶囬」鐩級銆�
-2. 瀹氭椂浠诲姟鎵ц鐢熸垚璁惧淇濆吇璁板綍鏃讹紝浼氭妸 `MaintenanceTask.machineryCategory` 鍚屾鍐欏叆 `DeviceMaintenance.machineryCategory`銆�
-
-瀵瑰簲浠g爜浣嶇疆锛�
-
-- `src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java`
-- `src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java`
-
-## 2. 鏁版嵁搴撳彉鏇�
-
-闇�瑕佸厛鎵ц鏁版嵁搴撳彉鏇达紙鍚﹀垯鏂板/鏌ヨ璇ュ瓧娈典細寮傚父锛夛細
-
-```sql
-ALTER TABLE `maintenance_task`
-  ADD COLUMN `machinery_category` VARCHAR(100) NULL COMMENT '璁惧椤圭洰' AFTER `device_model`;
-```
-
-## 3. 瀛楁绾﹀畾
-
-| 瀛楁 | 鍚箟 | 绫诲瀷 | 寤鸿 |
-| --- | --- | --- | --- |
-| machineryCategory | 璁惧椤圭洰 | string | 鍓嶇鏂板/缂栬緫瀹氭椂浠诲姟鏃朵紶鍊� |
-
-璇存槑锛�
-
-- 鍚庣褰撳墠鏈璇ュ瓧娈靛仛寮哄埗闈炵┖鏍¢獙锛屼絾涓氬姟涓婂缓璁墠绔綔涓哄繀濉鐞嗐��
-- 鍘嗗彶 `maintenance_task` 鏃ф暟鎹嫢璇ュ瓧娈典负绌猴紝鍒欏熀浜庢棫浠诲姟鐢熸垚鐨勪繚鍏昏褰曚篃浼氫负绌恒��
-
-## 4. 鎺ュ彛鑱旇皟
-
-### 4.1 鏂板瀹氭椂浠诲姟
-
-```http
-POST /deviceMaintenanceTask/add
-Content-Type: application/json
-```
-
-璇锋眰绀轰緥锛�
-
-```json
-{
-  "taskName": "绌哄帇鏈篈-鍛ㄤ繚鍏�",
-  "taskId": 1001,
-  "deviceModel": "GA75",
-  "machineryCategory": "鍔ㄥ姏璁惧",
-  "frequencyType": "WEEKLY",
-  "frequencyDetail": "MON,09:00",
-  "registrantId": 1,
-  "registrationDate": "2026-05-11",
-  "remarks": "鑱旇皟鏍蜂緥"
-}
-```
-
-### 4.2 淇敼瀹氭椂浠诲姟
-
-```http
-POST /deviceMaintenanceTask/update
-Content-Type: application/json
-```
-
-璇锋眰绀轰緥锛堝惈 `id`锛夛細
-
-```json
-{
-  "id": 12,
-  "machineryCategory": "鍔ㄥ姏璁惧"
-}
-```
-
-### 4.3 瀹氭椂浠诲姟鍒楄〃
-
-```http
-GET /deviceMaintenanceTask/listPage?pageNum=1&pageSize=10
-```
-
-杩斿洖璁板綍涓細鍖呭惈 `machineryCategory` 瀛楁銆�
-
-### 4.4 璁惧淇濆吇璁板綍鍒楄〃/璇︽儏
-
-```http
-GET /device/maintenance/page?pageNum=1&pageSize=10
-GET /device/maintenance/{id}
-```
-
-杩斿洖涓� `machineryCategory` 鏉ユ簮浜� `device_maintenance.machinery_category`銆�  
-瀵逛簬鈥滅敱瀹氭椂浠诲姟鑷姩鐢熸垚鈥濈殑璁板綍锛岃鍊间細缁ф壙鐢熸垚鏃跺搴斾换鍔$殑 `machineryCategory`銆�
-
-## 5. 鍓嶇鏀归�犵偣
-
-1. 瀹氭椂浠诲姟鏂板/缂栬緫琛ㄥ崟澧炲姞鈥滆澶囬」鐩紙machineryCategory锛夆�濊緭鍏ラ」銆�
-2. 鎻愪氦 `/deviceMaintenanceTask/add`銆乣/deviceMaintenanceTask/update` 鏃舵惡甯� `machineryCategory`銆�
-3. 瀹氭椂浠诲姟鍒楄〃澧炲姞鈥滆澶囬」鐩�濆垪锛堝椤甸潰鏈夎鍒楄〃锛夈��
-4. 璁惧淇濆吇璁板綍鍒楄〃/璇︽儏澧炲姞鈥滆澶囬」鐩�濆睍绀猴紝绌哄�兼樉绀� `--`銆�
-
-## 6. 鑱旇皟楠屾敹娓呭崟
-
-1. 鏂板涓�涓甫 `machineryCategory` 鐨勫畾鏃朵换鍔★紝淇濆瓨鎴愬姛銆�
-2. 鏌ヨ `/deviceMaintenanceTask/listPage`锛岀‘璁よ浠诲姟杩斿洖 `machineryCategory`銆�
-3. 绛夊緟涓�娆″畾鏃惰Е鍙戯紙鎴栧皢棰戠巼璋冨埌涓磋繎鏃堕棿锛夛紝鐢熸垚淇濆吇璁板綍銆�
-4. 鏌ヨ `/device/maintenance/page` 鎴栬鎯呮帴鍙o紝纭鏂拌褰曠殑 `machineryCategory` 涓庝换鍔′竴鑷淬��
-5. 淇敼浠诲姟 `machineryCategory` 鍚庡啀娆¤Е鍙戯紝纭鈥滄柊鐢熸垚璁板綍鈥濅娇鐢ㄦ柊鍊硷紙鍘嗗彶璁板綍涓嶅洖鍐欙級銆�
-
diff --git "a/doc/20260512_AccountSubject\346\240\221\345\275\242\346\224\271\351\200\240\345\211\215\347\253\257\344\277\256\346\224\271\346\226\207\346\241\243.md" "b/doc/20260512_AccountSubject\346\240\221\345\275\242\346\224\271\351\200\240\345\211\215\347\253\257\344\277\256\346\224\271\346\226\207\346\241\243.md"
deleted file mode 100644
index c798c40..0000000
--- "a/doc/20260512_AccountSubject\346\240\221\345\275\242\346\224\271\351\200\240\345\211\215\347\253\257\344\277\256\346\224\271\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,185 +0,0 @@
-# AccountSubject 鏍戝舰鏀归�犲墠绔慨鏀规枃妗�
-
-鏇存柊鏃堕棿锛�2026-05-12
-
-## 1. 鍙樻洿鑳屾櫙
-
-`AccountSubjectController` 宸叉敼涓虹埗瀛愬眰绾ч�掑綊妯″紡锛宍/accountSubject/list` 鐜板湪杩斿洖鏍戝舰缁撴瀯锛坄children` 閫掑綊锛夛紝涓嶅啀鏄崟绾殑骞抽摵鍒楄〃銆�
-
----
-
-## 2. 鍚庣鎺ュ彛鍙樺寲
-
-### 2.1 鏌ヨ鎺ュ彛锛堝凡鍙樻洿涓烘爲锛�
-
-- URL锛歚GET /accountSubject/list`
-- 鍏ュ弬锛氫繚鎸佷笉鍙橈紙`current,size,subjectCode,subjectName,subjectType,status`锛�
-- 鍑哄弬锛氫粛鏄垎椤靛3锛坄records,total`锛夛紝浣� `records` 鍙樹负鏍戣妭鐐规暟缁勶紙鏍硅妭鐐瑰垎椤碉紝瀛愯妭鐐归�掑綊鍐呭祵锛�
-
-绀轰緥锛�
-
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": {
-    "records": [
-      {
-        "id": 1,
-        "parentId": null,
-        "subjectCode": "1002",
-        "subjectName": "閾惰瀛樻",
-        "subjectType": "璧勪骇绫�",
-        "balanceDirection": "鍊熸柟",
-        "status": 0,
-        "leaf": false,
-        "children": [
-          {
-            "id": 2,
-            "parentId": 1,
-            "subjectCode": "100201",
-            "subjectName": "宸ヨ瀛樻",
-            "subjectType": "璧勪骇绫�",
-            "balanceDirection": "鍊熸柟",
-            "status": 0,
-            "leaf": true,
-            "children": []
-          }
-        ]
-      }
-    ],
-    "total": 1
-  }
-}
-```
-
-### 2.2 鏂板/缂栬緫鎺ュ彛瀛楁鍙樺寲
-
-- `POST /accountSubject/add`
-- `PUT /accountSubject/edit`
-
-鏂板鏀寔瀛楁锛�
-
-- `parentId`锛氱埗鑺傜偣ID锛堜负绌鸿〃绀烘牴鑺傜偣锛�
-
-绀轰緥锛�
-
-```json
-{
-  "id": 2,
-  "parentId": 1,
-  "subjectCode": "100201",
-  "subjectName": "宸ヨ瀛樻",
-  "subjectType": "璧勪骇绫�",
-  "balanceDirection": "鍊熸柟",
-  "status": 0,
-  "remark": ""
-}
-```
-
-### 2.3 鍒犻櫎鎺ュ彛琛屼负鍙樺寲
-
-- `DELETE /accountSubject/remove/{ids}`
-
-琛屼负锛�
-
-1. 鍒犻櫎鐖惰妭鐐规椂浼氶�掑綊鍒犻櫎鎵�鏈夊瓙瀛欒妭鐐广��  
-2. 鑻ヤ换鎰忓緟鍒犻櫎鑺傜偣锛堝惈瀛愬瓩锛夊凡琚� `fin_voucher_entry.subject_code` 寮曠敤锛屽垯鏁翠綋鍒犻櫎澶辫触銆�
-
----
-
-## 3. 鍓嶇鏀归�犳竻鍗�
-
-## 3.1 鎬昏处绉戠洰绠$悊椤�
-
-鏂囦欢锛歚src/views/financialManagement/generalLedger/index.vue`
-
-### 蹇呮敼椤�
-
-1. 鏂板鈥滅埗绉戠洰鈥濋�夋嫨鎺т欢锛坄el-cascader` 鎴� `el-tree-select`锛夛紝淇濆瓨鏃跺甫 `parentId`銆�  
-2. 鍒楄〃鏀逛负鏍戣〃灞曠ず锛堟帹鑽� `el-table` + `row-key` + `tree-props`锛夈��  
-3. 鎼滅储閫昏緫淇濇寔涓嶅彉锛屼絾瑕佸吋瀹� `records` 涓烘爲缁撴瀯銆�
-
----
-
-## 3.2 鍑瘉椤电鐩笅鎷�
-
-鏂囦欢锛歚src/views/financialManagement/voucher/index.vue`
-
-褰撳墠鍑瘉鍒嗗綍浣跨敤 `el-select`锛堝钩閾猴級銆�  
-鍚庣宸茶繑鍥炴爲锛岄渶瑕佸墠绔墎骞冲寲鍚庡啀缁戝畾涓嬫媺銆�
-
-绀轰緥锛堝彲澶嶇敤锛夛細
-
-```js
-const flattenSubjectTree = (nodes, result = []) => {
-  (nodes || []).forEach(node => {
-    result.push({
-      code: node.subjectCode,
-      name: node.subjectName,
-      id: node.id,
-      parentId: node.parentId
-    });
-    if (node.children?.length) {
-      flattenSubjectTree(node.children, result);
-    }
-  });
-  return result;
-};
-
-// list 鎺ュ彛杩斿洖鍚庯細
-const treeRecords = response.data?.records || [];
-subjectList.value = flattenSubjectTree(treeRecords);
-```
-
----
-
-## 3.3 绉戠洰鎬昏处/鏄庣粏璐﹂〉绾ц仈
-
-鏂囦欢锛�
-
-- `src/views/financialManagement/voucher/generalLedger.vue`
-- `src/views/financialManagement/voucher/detailLedger.vue`
-
-褰撳墠閫昏緫鏄妸 `records` 寮哄埗鏄犲皠鎴� `children: []`锛岄渶瑕佸垹闄よ繖娈碘�滃钩閾烘敼閫犫�濓紝鐩存帴浣跨敤鍚庣鏍戙��
-
-绀轰緥锛堝彲澶嶇敤锛夛細
-
-```js
-const toCascaderTree = (nodes = []) =>
-  nodes
-    .filter(item => item.subjectCode && item.subjectName)
-    .map(item => ({
-      code: item.subjectCode,
-      name: item.subjectName,
-      children: toCascaderTree(item.children || [])
-    }));
-
-subjectOptions.value = toCascaderTree(response.data?.records || []);
-```
-
----
-
-## 4. 寤鸿鐨勫墠绔瓧娈电害瀹�
-
-寤鸿鍦ㄥ墠绔� `form` 澧炲姞锛�
-
-- `parentId: null`
-
-骞跺湪缂栬緫鍥炲~鏃朵繚鎸� `parentId`銆�
-
----
-
-## 5. 鑱旇皟娉ㄦ剰浜嬮」
-
-1. `/accountSubject/list` 鐨� `total` 鏄牴鑺傜偣鏁伴噺锛屼笉鏄叏閲忚妭鐐规暟銆�  
-2. 鑻ラ〉闈粛鎸夊钩閾� `records.map(...)` 澶勭悊锛屼細涓㈠け瀛愯妭鐐广��  
-3. 鍒犻櫎绉戠洰澶辫触鏃讹紝浼樺厛妫�鏌ユ槸鍚﹁鍑瘉鍒嗗綍寮曠敤銆�  
-4. 淇濆瓨澶辫触鍑虹幇鈥滅埗绉戠洰涓嶈兘鏄綋鍓嶇鐩垨鍏跺瓙绉戠洰鈥濇椂锛岄渶瑕佸墠绔檺鍒剁埗鑺傜偣鍙�夎寖鍥淬��
-
----
-
-## 6. 鏁版嵁搴撳瓧娈佃姹�
-
-`account_subject` 闇�瑕佸寘鍚� `parent_id` 瀛楁锛坄bigint`锛屽彲绌猴級銆�  
-鑻ョ嚎涓婂簱灏氭湭娣诲姞锛岃鍏堟墽琛� DDL 鍐嶈仈璋冦��
diff --git a/doc/20260512_add_parent_id_to_account_subject.sql b/doc/20260512_add_parent_id_to_account_subject.sql
deleted file mode 100644
index cf33a33..0000000
--- a/doc/20260512_add_parent_id_to_account_subject.sql
+++ /dev/null
@@ -1,5 +0,0 @@
--- account_subject 澧炲姞鐖剁骇绉戠洰瀛楁锛堟爲褰㈢粨鏋勶級
-ALTER TABLE `account_subject`
-ADD COLUMN `parent_id` bigint NULL COMMENT '鐖剁鐩甀D锛堜负绌鸿〃绀烘牴鑺傜偣锛�' AFTER `id`;
-
-CREATE INDEX `idx_account_subject_parent_id` ON `account_subject` (`parent_id`);
diff --git a/doc/20260512_create_financial_management_tables.sql b/doc/20260512_create_financial_management_tables.sql
deleted file mode 100644
index db3caad..0000000
--- a/doc/20260512_create_financial_management_tables.sql
+++ /dev/null
@@ -1,104 +0,0 @@
--- 璐㈠姟绠$悊妯″潡寤鸿〃鑴氭湰锛堝浐瀹氳祫浜�/鏃犲舰璧勪骇/鍑瘉/绉戠洰璐︼級
--- 璇存槑锛�
--- 1) 鎬昏处绉戠洰缁х画澶嶇敤宸叉湁琛� account_subject锛屼笉閲嶅鍒涘缓 fin_account_subject銆�
--- 2) 閲戦瀛楁缁熶竴 decimal(18,2)銆�
-
-CREATE TABLE IF NOT EXISTS `fin_fixed_asset` (
-  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭ID',
-  `asset_code` varchar(64) NOT NULL COMMENT '璧勪骇缂栧彿',
-  `asset_name` varchar(128) NOT NULL COMMENT '璧勪骇鍚嶇О',
-  `category` varchar(64) NOT NULL COMMENT '璧勪骇绫诲埆',
-  `specification` varchar(255) DEFAULT NULL COMMENT '瑙勬牸鍨嬪彿',
-  `purchase_date` date NOT NULL COMMENT '璐疆鏃ユ湡',
-  `original_value` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '璧勪骇鍘熷��',
-  `useful_life` int NOT NULL DEFAULT '1' COMMENT '浣跨敤骞撮檺(骞�)',
-  `residual_rate` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '娈嬪�肩巼(%)',
-  `accumulated_depreciation` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '绱鎶樻棫',
-  `net_value` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '鍑�鍊�',
-  `location` varchar(255) DEFAULT NULL COMMENT '瀛樻斁鍦扮偣',
-  `department` varchar(128) DEFAULT NULL COMMENT '浣跨敤閮ㄩ棬',
-  `keeper` varchar(64) DEFAULT NULL COMMENT '淇濈浜�',
-  `status` varchar(32) NOT NULL DEFAULT 'in_use' COMMENT '鐘舵��: in_use/idle/repair/scrapped',
-  `remark` varchar(500) DEFAULT NULL COMMENT '澶囨敞',
-  `create_user` varchar(64) DEFAULT NULL COMMENT '鍒涘缓浜�',
-  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
-  `update_user` varchar(64) DEFAULT NULL COMMENT '淇敼浜�',
-  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '淇敼鏃堕棿',
-  `dept_id` bigint DEFAULT NULL COMMENT '閮ㄩ棬ID',
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `uk_fin_fixed_asset_code` (`asset_code`),
-  KEY `idx_fin_fixed_asset_status` (`status`),
-  KEY `idx_fin_fixed_asset_category` (`category`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='鍥哄畾璧勪骇';
-
-CREATE TABLE IF NOT EXISTS `fin_intangible_asset` (
-  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭ID',
-  `asset_code` varchar(64) NOT NULL COMMENT '璧勪骇缂栧彿',
-  `asset_name` varchar(128) NOT NULL COMMENT '璧勪骇鍚嶇О',
-  `category` varchar(64) NOT NULL COMMENT '璧勪骇绫诲埆',
-  `certificate_no` varchar(128) DEFAULT NULL COMMENT '璇佷功缂栧彿',
-  `acquisition_date` date NOT NULL COMMENT '鍙栧緱鏃ユ湡',
-  `original_value` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '璧勪骇鍘熷��',
-  `amortization_period` int NOT NULL DEFAULT '1' COMMENT '鎽婇攢骞撮檺(骞�)',
-  `residual_rate` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '娈嬪�肩巼(%)',
-  `accumulated_amortization` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '绱鎽婇攢',
-  `net_value` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '鍑�鍊�',
-  `validity_date` date DEFAULT NULL COMMENT '鏈夋晥鏈熻嚦',
-  `status` varchar(32) NOT NULL DEFAULT 'in_use' COMMENT '鐘舵��: in_use/expired/amortized',
-  `description` varchar(1000) DEFAULT NULL COMMENT '璧勪骇鎻忚堪',
-  `remark` varchar(500) DEFAULT NULL COMMENT '澶囨敞',
-  `create_user` varchar(64) DEFAULT NULL COMMENT '鍒涘缓浜�',
-  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
-  `update_user` varchar(64) DEFAULT NULL COMMENT '淇敼浜�',
-  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '淇敼鏃堕棿',
-  `dept_id` bigint DEFAULT NULL COMMENT '閮ㄩ棬ID',
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `uk_fin_intangible_asset_code` (`asset_code`),
-  KEY `idx_fin_intangible_asset_status` (`status`),
-  KEY `idx_fin_intangible_asset_category` (`category`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='鏃犲舰璧勪骇';
-
-CREATE TABLE IF NOT EXISTS `fin_voucher` (
-  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭ID',
-  `voucher_no` varchar(64) NOT NULL COMMENT '鍑瘉瀛楀彿',
-  `voucher_date` date NOT NULL COMMENT '鍑瘉鏃ユ湡',
-  `summary` varchar(500) DEFAULT NULL COMMENT '鎽樿',
-  `debit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '鍊熸柟鍚堣',
-  `credit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '璐锋柟鍚堣',
-  `creator` varchar(64) DEFAULT NULL COMMENT '鍒跺崟浜�',
-  `status` varchar(32) NOT NULL DEFAULT 'unposted' COMMENT '鐘舵��: unposted/posted/cancelled',
-  `attachment_count` int NOT NULL DEFAULT '0' COMMENT '闄勪欢寮犳暟',
-  `remark` varchar(500) DEFAULT NULL COMMENT '澶囨敞',
-  `create_user` varchar(64) DEFAULT NULL COMMENT '鍒涘缓浜�',
-  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
-  `update_user` varchar(64) DEFAULT NULL COMMENT '淇敼浜�',
-  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '淇敼鏃堕棿',
-  `dept_id` bigint DEFAULT NULL COMMENT '閮ㄩ棬ID',
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `uk_fin_voucher_no` (`voucher_no`),
-  KEY `idx_fin_voucher_date` (`voucher_date`),
-  KEY `idx_fin_voucher_status` (`status`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='鍑瘉涓昏〃';
-
-CREATE TABLE IF NOT EXISTS `fin_voucher_entry` (
-  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭ID',
-  `voucher_id` bigint NOT NULL COMMENT '鍑瘉ID',
-  `row_no` int NOT NULL DEFAULT '1' COMMENT '琛屽彿',
-  `subject_code` varchar(64) NOT NULL COMMENT '绉戠洰缂栫爜',
-  `subject_name` varchar(128) DEFAULT NULL COMMENT '绉戠洰鍚嶇О',
-  `summary` varchar(500) DEFAULT NULL COMMENT '鎽樿',
-  `debit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '鍊熸柟閲戦',
-  `credit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '璐锋柟閲戦',
-  `auxiliary_type` varchar(32) DEFAULT NULL COMMENT '杈呭姪鏍哥畻绫诲瀷',
-  `auxiliary_id` varchar(64) DEFAULT NULL COMMENT '杈呭姪鏍哥畻瀵硅薄ID',
-  `auxiliary_name` varchar(128) DEFAULT NULL COMMENT '杈呭姪鏍哥畻瀵硅薄鍚嶇О',
-  `create_user` varchar(64) DEFAULT NULL COMMENT '鍒涘缓浜�',
-  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
-  `update_user` varchar(64) DEFAULT NULL COMMENT '淇敼浜�',
-  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '淇敼鏃堕棿',
-  `dept_id` bigint DEFAULT NULL COMMENT '閮ㄩ棬ID',
-  PRIMARY KEY (`id`),
-  KEY `idx_fin_voucher_entry_voucher` (`voucher_id`),
-  KEY `idx_fin_voucher_entry_subject` (`subject_code`),
-  KEY `idx_fin_voucher_entry_aux` (`auxiliary_type`, `auxiliary_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='鍑瘉鍒嗗綍';
diff --git "a/doc/20260512_\350\264\242\345\212\241\347\256\241\347\220\206\346\250\241\345\235\227\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260512_\350\264\242\345\212\241\347\256\241\347\220\206\346\250\241\345\235\227\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
deleted file mode 100644
index 1804d82..0000000
--- "a/doc/20260512_\350\264\242\345\212\241\347\256\241\347\220\206\346\250\241\345\235\227\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,288 +0,0 @@
-# 璐㈠姟绠$悊妯″潡鍓嶇鑱旇皟鏂囨。锛坅ccount 妯″潡锛�
-
-鏇存柊鏃堕棿锛�2026-05-12
-
-## 1. 閫氱敤璇存槑
-
-### 1.1 鍝嶅簲缁撴瀯
-鎴愬姛鍝嶅簲锛�
-
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": {}
-}
-```
-
-涓氬姟鏍¢獙澶辫触锛堜緥濡傚�熻捶涓嶅钩琛°�佸繀濉己澶憋級鐢卞叏灞�寮傚父杩斿洖锛�
-
-```json
-{
-  "code": 500,
-  "msg": "閿欒淇℃伅",
-  "data": null
-}
-```
-
-### 1.2 鍒嗛〉缁撴瀯
-鍒嗛〉鎺ュ彛缁熶竴浣跨敤 MyBatis-Plus `Page`锛�
-- 璇锋眰鍙傛暟锛歚current`銆乣size`
-- 杩斿洖锛歚data.records`銆乣data.total`
-
----
-
-## 2. 鎬昏处绉戠洰锛堝凡鍦ㄥ師鎺ュ彛涓婂寮烘牎楠岋級
-
-鎺ュ彛淇濇寔涓嶅彉锛�
-- `GET /accountSubject/list`
-- `POST /accountSubject/add`
-- `PUT /accountSubject/edit`
-- `DELETE /accountSubject/remove/{ids}`
-- `POST /accountSubject/export`
-
-鏂板瑙勫垯锛�
-1. `subjectCode`銆乣subjectName`銆乣subjectType` 蹇呭~銆�
-2. `subjectCode` 鍞竴鏍¢獙銆�
-3. 鍒犻櫎鍓嶅仛寮曠敤鏍¢獙锛氳嫢琚嚟璇佸垎褰�(`fin_voucher_entry.subject_code`)寮曠敤锛岀姝㈠垹闄ゃ��
-
----
-
-## 3. 鍥哄畾璧勪骇
-
-Base URL锛歚/financial/fixedAsset`
-
-### 3.1 鍒嗛〉鏌ヨ
-- `GET /page`
-- Query锛歚current,size,assetCode,assetName,category,status`
-
-### 3.2 鏂板
-- `POST /add`
-- Body锛圝SON锛夛細
-
-```json
-{
-  "assetCode": "GD20260512001",
-  "assetName": "鍔炲叕鐢佃剳",
-  "category": "electronic",
-  "specification": "ThinkPad X1",
-  "purchaseDate": "2026-05-01",
-  "originalValue": 8000.00,
-  "usefulLife": 5,
-  "residualRate": 5.00,
-  "location": "璐㈠姟閮�",
-  "department": "璐㈠姟閮�",
-  "keeper": "寮犱笁",
-  "status": "in_use",
-  "remark": "绀轰緥"
-}
-```
-
-### 3.3 淇敼
-- `PUT /update`
-- Body锛氬悓鏂板锛岄渶鍖呭惈 `id`
-
-### 3.4 鍒犻櫎
-- `DELETE /delete?ids=1&ids=2`
-
-### 3.5 鎶樻棫璁℃彁锛堟寜鏈堬級
-- `POST /depreciate`
-- Body 鍙�夛細
-  - 鍏ㄩ儴鍦ㄧ敤璧勪骇锛歚{}`
-  - 鎸囧畾璧勪骇锛歚{"ids":[1,2,3]}`
-
-鏍稿績鍏紡锛�
-- `monthlyDepreciation = originalValue * (1 - residualRate/100) / (usefulLife*12)`
-- `accumulatedDepreciation += monthlyDepreciation`
-- `netValue = originalValue - accumulatedDepreciation`
-
-鐘舵�佸缓璁�硷細
-- `in_use`銆乣idle`銆乣repair`銆乣scrapped`
-
----
-
-## 4. 鏃犲舰璧勪骇
-
-Base URL锛歚/financial/intangibleAsset`
-
-### 4.1 鍒嗛〉鏌ヨ
-- `GET /page`
-- Query锛歚current,size,assetCode,assetName,category,status`
-
-### 4.2 鏂板
-- `POST /add`
-
-```json
-{
-  "assetCode": "WX20260512001",
-  "assetName": "ERP杞欢璁稿彲",
-  "category": "software",
-  "certificateNo": "SW-001",
-  "acquisitionDate": "2026-05-01",
-  "originalValue": 50000.00,
-  "amortizationPeriod": 10,
-  "residualRate": 0.00,
-  "validityDate": "2036-05-01",
-  "status": "in_use",
-  "description": "绀轰緥",
-  "remark": ""
-}
-```
-
-### 4.3 淇敼
-- `PUT /update`
-- Body锛氬悓鏂板锛岄渶鍖呭惈 `id`
-
-### 4.4 鍒犻櫎
-- `DELETE /delete?ids=1&ids=2`
-
-### 4.5 鎽婇攢璁℃彁锛堟寜鏈堬級
-- `POST /amortize`
-- Body 鍙�夛細
-  - 鍏ㄩ儴鍦ㄧ敤璧勪骇锛歚{}`
-  - 鎸囧畾璧勪骇锛歚{"ids":[1,2,3]}`
-
-鏍稿績鍏紡锛�
-- `monthlyAmortization = originalValue * (1 - residualRate/100) / (amortizationPeriod*12)`
-- `accumulatedAmortization += monthlyAmortization`
-- `netValue = originalValue - accumulatedAmortization`
-- 褰� `netValue <= 0` 鏃讹細`netValue=0` 涓� `status=amortized`
-
-鐘舵�佸缓璁�硷細
-- `in_use`銆乣expired`銆乣amortized`
-
----
-
-## 5. 鍑瘉
-
-Base URL锛歚/financial/voucher`
-
-### 5.1 鍒嗛〉鏌ヨ
-- `GET /page`
-- Query锛歚current,size,voucherNo,creator,status,startDate,endDate`
-
-### 5.2 鏂板
-- `POST /add`
-
-```json
-{
-  "voucherNo": "璁�-0001",
-  "voucherDate": "2026-05-12",
-  "summary": "閿�鍞敹鍏�",
-  "creator": "寮犱笁",
-  "attachmentCount": 0,
-  "remark": "",
-  "entries": [
-    {
-      "subjectCode": "1002",
-      "subjectName": "閾惰瀛樻",
-      "summary": "鏀跺埌璐ф",
-      "debit": 1000.00,
-      "credit": 0
-    },
-    {
-      "subjectCode": "6001",
-      "subjectName": "涓昏惀涓氬姟鏀跺叆",
-      "summary": "纭鏀跺叆",
-      "debit": 0,
-      "credit": 1000.00
-    }
-  ]
-}
-```
-
-### 5.3 淇敼
-- `PUT /update`
-- Body锛氬悓鏂板锛岄渶鍖呭惈 `id`
-- 浠� `unposted` 鐘舵�佸厑璁镐慨鏀�
-
-### 5.4 杩囪处
-- `POST /post`
-
-```json
-{
-  "id": 1
-}
-```
-
-### 5.5 浣滃簾
-- `POST /cancel`
-
-```json
-{
-  "id": 1
-}
-```
-
-### 5.6 璇︽儏
-- `GET /detail/{id}`
-
-鍏抽敭鏍¢獙锛�
-1. 鍒嗗綍鑷冲皯涓�鏉℃湁鏁堣锛堢鐩笉绌猴紝涓斿�熸柟鎴栬捶鏂� > 0锛夈��
-2. 姣忔潯鏈夋晥鍒嗗綍涓嶈兘鍊熻捶鍚屾椂澶т簬 0銆�
-3. 鍊熻捶骞宠 锛歚sum(debit) == sum(credit)` 涓旈兘 > 0銆�
-4. `subjectCode` 蹇呴』瀛樺湪浜� `account_subject`銆�
-
-鐘舵�佹祦杞細
-- `unposted -> posted`
-- `unposted -> cancelled`
-
----
-
-## 6. 绉戠洰鎬昏处
-
-### 6.1 鏌ヨ鎺ュ彛
-- `GET /financial/ledger/general`
-
-### 6.2 Query 鍙傛暟
-- `subjectCode`锛堝繀濉級
-- `startMonth`锛圷YYY-MM锛�
-- `endMonth`锛圷YYY-MM锛�
-
-### 6.3 杩斿洖瀛楁
-- `rowType`锛歚opening` / `entry` / `monthly_total` / `yearly_total`
-- `date`
-- `voucherNo`
-- `summary`
-- `debit`
-- `credit`
-- `direction`锛堝��/璐凤級
-- `balance`锛堝�熸璐疯礋锛�
-
-璇存槑锛�
-- 绉戠洰鏀寔鈥滄寚瀹氱鐩強鍏朵笅绾э紙鍓嶇紑鍖归厤锛夆�濇煡璇€��
-- 鑷姩杈撳嚭鈥滄湡鍒濅綑棰� / 鏈湀鍚堣 / 鏈勾绱鈥濄��
-
----
-
-## 7. 绉戠洰鏄庣粏璐�
-
-### 7.1 鏌ヨ鎺ュ彛
-- `GET /financial/ledger/detail`
-
-### 7.2 Query 鍙傛暟
-- `subjectCode`锛堝繀濉級
-- `auxiliaryType`锛堝彲閫夛細`customer/supplier/department/employee/project`锛�
-- `auxiliaryId`锛堝彲閫夛級
-- `startMonth`锛圷YYY-MM锛�
-- `endMonth`锛圷YYY-MM锛�
-
-### 7.3 杩斿洖瀛楁
-鍚岀鐩�昏处锛�
-- `rowType,date,voucherNo,summary,debit,credit,direction,balance`
-
----
-
-## 8. 鏁版嵁搴撹剼鏈�
-
-宸叉彁渚涜剼鏈細
-
-- `doc/20260512_create_financial_management_tables.sql`
-
-鍖呭惈锛�
-- `fin_fixed_asset`
-- `fin_intangible_asset`
-- `fin_voucher`
-- `fin_voucher_entry`
-
-鎬昏处绉戠洰澶嶇敤鐜版湁 `account_subject`銆�
diff --git a/doc/20260515_device_maintenance_inspection_abnormal_acceptance.sql b/doc/20260515_device_maintenance_inspection_abnormal_acceptance.sql
deleted file mode 100644
index 7f34fe0..0000000
--- a/doc/20260515_device_maintenance_inspection_abnormal_acceptance.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-ALTER TABLE `inspection_task`
-    ADD COLUMN `inspection_project` VARCHAR(100) NULL COMMENT '宸℃椤圭洰' AFTER `task_name`;
-
-ALTER TABLE `inspection_task`
-    ADD COLUMN `inspection_result` VARCHAR(1) NULL COMMENT '宸℃缁撴灉 0寮傚父 1姝e父' AFTER `remarks`,
-    ADD COLUMN `abnormal_description` VARCHAR(500) NULL COMMENT '寮傚父鎻忚堪' AFTER `inspection_result`,
-    ADD COLUMN `device_repair_id` BIGINT NULL COMMENT '鍏宠仈缁翠慨鍗旾D' AFTER `abnormal_description`,
-    ADD COLUMN `acceptance_user_id` BIGINT NULL COMMENT '楠屾敹浜篒D' AFTER `device_repair_id`,
-    ADD COLUMN `acceptance_name` VARCHAR(100) NULL COMMENT '楠屾敹浜�' AFTER `acceptance_user_id`;
-
-ALTER TABLE `timing_task`
-    ADD COLUMN `inspection_project` VARCHAR(100) NULL COMMENT '宸℃椤圭洰' AFTER `task_name`,
-    ADD COLUMN `is_enabled` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '鏄惁鍚敤 0鍚� 1鏄�' AFTER `is_active`;
-
-CREATE INDEX `idx_inspection_task_device_repair_id`
-    ON `inspection_task` (`device_repair_id`);
-
-CREATE INDEX `idx_inspection_task_inspection_result`
-    ON `inspection_task` (`inspection_result`);
-
-CREATE INDEX `idx_timing_task_is_enabled`
-    ON `timing_task` (`is_enabled`);
diff --git "a/doc/20260515_\350\256\276\345\244\207\345\267\241\346\243\200\345\274\202\345\270\270\350\201\224\345\212\250\347\273\264\344\277\256\345\215\225_\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260515_\350\256\276\345\244\207\345\267\241\346\243\200\345\274\202\345\270\270\350\201\224\345\212\250\347\273\264\344\277\256\345\215\225_\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
deleted file mode 100644
index 0df5fcc..0000000
--- "a/doc/20260515_\350\256\276\345\244\207\345\267\241\346\243\200\345\274\202\345\270\270\350\201\224\345\212\250\347\273\264\344\277\256\345\215\225_\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,170 +0,0 @@
-# 璁惧宸℃涓庡畾鏃跺贰妫�鍓嶇鑱旇皟鏂囨。锛坕nspectiontask锛�
-
-> 鏇存柊鏃ユ湡锛�2026-05-15  
-> 閫傜敤妯″潡锛氳澶囧贰妫�浠诲姟 `inspectiontask`锛坄/inspectionTask`锛変笌瀹氭椂宸℃浠诲姟锛坄/timingTask`锛�
-
-## 1. 鏈鏀瑰姩
-
-1. 宸℃浠诲姟鏂板瀛楁锛�
-   - `inspectionProject`锛堝贰妫�椤圭洰锛�
-   - `inspectionResult`锛堝贰妫�缁撴灉锛宍0`寮傚父 / `1`姝e父锛屽繀濉級
-   - `abnormalDescription`锛堝紓甯告弿杩帮級
-   - `deviceRepairId`锛堝叧鑱旂淮淇崟ID锛屽紓甯告椂鍚庣鑷姩鍥炲~锛�
-   - `acceptanceUserId`锛堥獙鏀朵汉ID锛�
-   - `acceptanceName`锛堥獙鏀朵汉锛�
-2. 寮傚父鏍¢獙瑙勫垯锛�
-   - `inspectionResult=1`锛堟甯革級锛氱収鐗囬潪蹇呭~銆�
-   - `inspectionResult=0`锛堝紓甯革級锛氬繀椤绘湁鐓х墖锛屼笖蹇呴』濉啓 `abnormalDescription`銆�
-3. 寮傚父鑱斿姩瑙勫垯锛�
-   - 寮傚父淇濆瓨鍚庤嚜鍔ㄧ敓鎴� `device_repair` 骞跺洖濉� `deviceRepairId`銆�
-4. 瀹氭椂浠诲姟鏂板瀛楁锛�
-   - `inspectionProject`锛堝贰妫�椤圭洰锛�
-   - `isEnabled`锛堟槸鍚﹀惎鐢紝`0`鍚� / `1`鏄級
-5. 澶囨敞甯﹀叆瑙勫垯锛�
-   - 瀹氭椂浠诲姟鑷姩鐢熸垚宸℃璁板綍鏃讹紝鑻ュ畾鏃朵换鍔� `remarks` 鏈夊�硷紝浼氭嫾鎺ュ埌宸℃璁板綍澶囨敞涓��
-
-## 2. 鏁版嵁搴撳彉鏇�
-
-鑱旇皟鍓嶆墽琛� SQL锛�
-
-- [doc/20260515_device_maintenance_inspection_abnormal_acceptance.sql](/D:/鐗涢┈/鍗楅��/鍚庣/product-inventory-management-after-jdk25/doc/20260515_device_maintenance_inspection_abnormal_acceptance.sql)
-
-> 璇存槑锛氳鑴氭湰褰撳墠浣滅敤浜� `inspection_task` 涓� `timing_task` 涓ゅ紶琛紝鏂囦欢鍚嶅巻鍙蹭繚鐣欐湭鏀广��
-
-## 3. 宸℃浠诲姟鎺ュ彛
-
-### 3.1 淇濆瓨鎺ュ彛
-
-`POST /inspectionTask/addOrEditInspectionTask`
-
-| 瀛楁 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-|---|---|---|---|
-| id | long | 鍚� | 鏈夊��=淇敼锛屾棤鍊�=鏂板 |
-| taskId | int | 寤鸿蹇呭~ | 璁惧ID锛堢敤浜庡紓甯歌嚜鍔ㄥ缓缁翠慨鍗曪級 |
-| taskName | string | 寤鸿蹇呭~ | 璁惧鍚嶇О |
-| inspectionProject | string | 鍚� | 宸℃椤圭洰 |
-| inspectorId | string | 鍚� | 宸℃浜篒D锛屾敮鎸侀�楀彿鍒嗛殧 |
-| inspectionResult | string | 鏄� | `0`=寮傚父锛宍1`=姝e父 |
-| abnormalDescription | string | 鏉′欢蹇呭~ | 寮傚父鏃跺繀濉� |
-| acceptanceUserId | long | 鍚� | 楠屾敹浜篒D |
-| acceptanceName | string | 鍚� | 楠屾敹浜哄鍚� |
-| commonFileListDTO | array | 鏉′欢蹇呭~ | 闄勪欢缁�1锛堝紓甯告椂涓夌粍鑷冲皯涓�缁勬湁鍥撅級 |
-| commonFileListAfterDTO | array | 鏉′欢蹇呭~ | 闄勪欢缁�2锛堝紓甯告椂涓夌粍鑷冲皯涓�缁勬湁鍥撅級 |
-| commonFileListBeforeDTO | array | 鏉′欢蹇呭~ | 闄勪欢缁�3锛堝紓甯告椂涓夌粍鑷冲皯涓�缁勬湁鍥撅級 |
-
-寮傚父绀轰緥锛�
-
-```json
-{
-  "taskId": 1001,
-  "taskName": "绌哄帇鏈篈-01",
-  "inspectionProject": "娑︽粦绯荤粺",
-  "inspectorId": "12",
-  "inspectionResult": "0",
-  "abnormalDescription": "鐢垫満寮傚搷锛屾俯鍗囧亸楂�",
-  "acceptanceUserId": 20,
-  "commonFileListDTO": [
-    {
-      "id": 90001,
-      "application": "file"
-    }
-  ]
-}
-```
-
-姝e父绀轰緥锛�
-
-```json
-{
-  "taskId": 1001,
-  "taskName": "绌哄帇鏈篈-01",
-  "inspectionProject": "鐐规",
-  "inspectorId": "12",
-  "inspectionResult": "1",
-  "acceptanceUserId": 20
-}
-```
-
-### 3.2 鍒楄〃鎺ュ彛
-
-`GET /inspectionTask/list`
-
-杩斿洖鍖呭惈鏂板瀛楁锛�
-
-- `inspectionProject`
-- `inspectionResult`
-- `abnormalDescription`
-- `deviceRepairId`
-- `acceptanceUserId`
-- `acceptanceName`
-
-## 4. 瀹氭椂浠诲姟鎺ュ彛
-
-### 4.1 淇濆瓨鎺ュ彛
-
-`POST /timingTask/addOrEditTimingTask`
-
-鏂板/鏇存柊瀛楁锛�
-
-| 瀛楁 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-|---|---|---|---|
-| inspectionProject | string | 鍚� | 宸℃椤圭洰 |
-| remarks | string | 鍚� | 澶囨敞 |
-| isEnabled | int | 鍚� | `0`=绂佺敤锛宍1`=鍚敤锛涗笉浼犻粯璁ゅ惎鐢� |
-
-绀轰緥锛�
-
-```json
-{
-  "taskName": "绌哄帇鏈篈-01瀹氭椂宸℃",
-  "inspectionProject": "鏈堝害宸℃",
-  "taskId": 1001,
-  "inspectorIds": "12,13",
-  "frequencyType": "DAILY",
-  "frequencyDetail": "09:00",
-  "remarks": "閲嶇偣妫�鏌ヨ酱鎵挎俯搴�",
-  "isEnabled": 1
-}
-```
-
-### 4.2 鍚敤鐘舵�佽涓�
-
-1. `isEnabled=1`锛氫换鍔¤繘鍏ヨ皟搴︼紝鎸夐娆¤嚜鍔ㄧ敓鎴愬贰妫�璁板綍銆�
-2. `isEnabled=0`锛氫换鍔′笉璋冨害锛涘凡瀛樺湪璋冨害浼氳绉婚櫎銆�
-
-### 4.3 澶囨敞甯﹀叆瑙勫垯
-
-瀹氭椂浠诲姟鑷姩鐢熸垚宸℃璁板綍鏃讹細
-
-1. 宸℃璁板綍澶囨敞鍥哄畾鍓嶇紑锛歚鑷姩鐢熸垚鑷畾鏃朵换鍔D: {id}`
-2. 褰撳畾鏃朵换鍔� `remarks` 闈炵┖鏃讹紝鎷兼帴涓猴細  
-   `鑷姩鐢熸垚鑷畾鏃朵换鍔D: {id}锛泏remarks}`
-
-## 5. 寮傚父鑷姩寤虹淮淇崟瑙勫垯
-
-褰撳贰妫�璁板綍 `inspectionResult=0` 鏃讹細
-
-1. 鑻� `deviceRepairId` 涓虹┖锛屽悗绔嚜鍔ㄥ垱寤� `device_repair`锛�
-   - `deviceLedgerId`锛氭潵鑷� `taskId`
-   - `deviceName`锛氫紭鍏� `taskName`锛屽惁鍒欏彇璁惧鍙拌处鍚嶇О
-   - `remark`锛氬紓甯告弿杩�
-   - `status`锛歚0`锛堝緟缁翠慨锛�
-2. 鑻ュ凡鏈夊叧鑱旂淮淇崟锛屼粎鍚屾鏇存柊缁翠慨鍗� `remark`銆�
-
-## 6. 鍓嶇鏀归�犲缓璁�
-
-1. 宸℃琛ㄥ崟鏂板 `inspectionProject` 杈撳叆妗嗐��
-2. 宸℃琛ㄥ崟淇濈暀鈥滄甯�/寮傚父鈥濊仈鍔ㄦ牎楠岋細
-   - 寮傚父鏃跺己鍒跺紓甯告弿杩� + 鑷冲皯涓�缁勫浘鐗囥��
-3. 瀹氭椂浠诲姟琛ㄥ崟鏂板鈥滄槸鍚﹀惎鐢ㄢ�濆紑鍏冲苟鏄犲皠 `isEnabled`銆�
-4. 瀹氭椂浠诲姟琛ㄥ崟鏂板 `inspectionProject` 涓� `remarks` 杈撳叆椤广��
-5. 宸℃鍒楄〃灞曠ず `inspectionProject` 鍜� `deviceRepairId`锛堟敮鎸佽烦杞淮淇崟璇︽儏锛夈��
-
-## 7. 鑱旇皟楠屾敹娓呭崟
-
-1. 宸℃鏂板/淇敼鍙纭彁浜� `inspectionProject` 骞跺湪鍒楄〃鍥炴樉銆�
-2. 寮傚父宸℃锛堟湁鎻忚堪+鏈夊浘锛変繚瀛樻垚鍔熷苟鍥炲~ `deviceRepairId`銆�
-3. 寮傚父宸℃缂烘弿杩版垨缂哄浘鐗囨椂琚嫤鎴��
-4. 瀹氭椂浠诲姟 `isEnabled=0` 鏃朵笉鍐嶈Е鍙戣嚜鍔ㄥ贰妫�璁板綍銆�
-5. 瀹氭椂浠诲姟 `isEnabled=1` 鏃舵寜棰戞鐢熸垚宸℃璁板綍銆�
-6. 瀹氭椂浠诲姟鏈� `remarks` 鏃讹紝鑷姩宸℃璁板綍澶囨敞甯︿笂璇ュ唴瀹广��
diff --git "a/doc/20260516_\345\210\266\351\200\240\346\231\272\350\203\275\345\212\251\346\211\213\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260516_\345\210\266\351\200\240\346\231\272\350\203\275\345\212\251\346\211\213\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
deleted file mode 100644
index d4b9a1f..0000000
--- "a/doc/20260516_\345\210\266\351\200\240\346\231\272\350\203\275\345\212\251\346\211\213\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,258 +0,0 @@
-# 鍒堕�犳櫤鑳藉姪鎵嬪墠绔仈璋冩枃妗o紙`manufacturing-ai`锛�
-
-> 鏇存柊鏃ユ湡锛�2026-05-16  
-> 閫傜敤妯″潡锛氱敓浜х幇鍦恒�佽鍒掋�佸伐鍗曘�佽澶囥�佽川閲忋�佺墿鏂欍�佸紓甯稿鐞�  
-> 鑳藉姏鑼冨洿锛氭煡銆侀棶銆佸姙銆侀璀︺�佸垎鏋�
-
-## 1. 鎺ュ彛鎬昏
-
-1. 娴佸紡瀵硅瘽锛歚POST /manufacturing-ai/chat`
-2. 浼氳瘽鍒楄〃锛歚GET /manufacturing-ai/history/sessions`
-3. 浼氳瘽娑堟伅锛歚GET /manufacturing-ai/history/messages/{memoryId}`
-4. 鍒犻櫎浼氳瘽锛歚DELETE /manufacturing-ai/history/{memoryId}`
-
-璇存槑锛�
-- `/chat` 涓� **SSE/娴佸紡鏂囨湰** 杩斿洖锛坄text/stream;charset=utf-8`锛夈��
-- 鍛戒腑鈥滄煡/棰勮/鍒嗘瀽/鍔炩�濆伐鍏锋椂锛屾祦寮忔渶缁堝唴瀹规槸 **JSON 瀛楃涓�**锛堜笉鏄� `AjaxResult`锛夈��
-- 鏈懡涓伐鍏锋椂锛岃繑鍥炴櫘閫氳嚜鐒惰瑷�鏂囨湰銆�
-
-## 2. 閴存潈涓庤姹傚ご
-
-- 缁熶竴浣跨敤绯荤粺鐧诲綍鎬侊紙`Authorization` 涓庣幇鏈夋帴鍙d竴鑷达級銆�
-- `POST /manufacturing-ai/chat` 璇锋眰澶达細`Content-Type: application/json`銆�
-
-## 3. 瀵硅瘽鎺ュ彛
-
-### 3.1 璇锋眰
-
-```http
-POST /manufacturing-ai/chat
-Content-Type: application/json
-```
-
-```json
-{
-  "memoryId": "mfg-ai-001",
-  "message": "鏌ヨ澶囪タ闂ㄥ瓙鍙橀鍣ㄧ殑缁翠慨鎯呭喌"
-}
-```
-
-瀛楁璇存槑锛�
-
-| 瀛楁 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-| --- | --- | --- | --- |
-| memoryId | string | 鏄� | 浼氳瘽 ID锛屽墠绔敓鎴愬苟澶嶇敤 |
-| message | string | 鏄� | 鐢ㄦ埛杈撳叆 |
-
-### 3.2 杩斿洖锛堟祦寮忥級
-
-```http
-Content-Type: text/stream;charset=utf-8
-```
-
-鍓嶇澶勭悊寤鸿锛�
-1. 鎸夋祦鎷兼帴瀹屾暣鏂囨湰銆�
-2. 灏濊瘯 `JSON.parse(fullText)`锛�
-   - 鎴愬姛锛氭寜缁撴瀯鍖栫粨鏋滄覆鏌撱��
-   - 澶辫触锛氭寜鏅�氳亰澶╂枃鏈覆鏌撱��
-
-## 4. 缁撴瀯鍖栧搷搴斿崗璁�
-
-### 4.1 閫氱敤缁撴瀯
-
-```json
-{
-  "success": true,
-  "type": "manufacturing_device_repair_list",
-  "description": "宸茶繑鍥炶澶囩淮淇褰曘��",
-  "summary": {},
-  "data": {},
-  "charts": {}
-}
-```
-
-### 4.2 `type` 鏋氫妇
-
-| type | 鍦烘櫙 |
-| --- | --- |
-| manufacturing_site_snapshot | 鐢熶骇鐜板満姒傝 |
-| manufacturing_plan_list | 鐢熶骇璁″垝鏌ヨ |
-| manufacturing_workorder_list | 宸ュ崟鏌ヨ |
-| manufacturing_device_list | 璁惧鍙拌处鏌ヨ |
-| manufacturing_device_repair_list | 璁惧缁翠慨璁板綍鏌ヨ |
-| manufacturing_quality_list | 璐ㄩ噺鏌ヨ |
-| manufacturing_material_list | 鐗╂枡搴撳瓨鏌ヨ |
-| manufacturing_exception_list | 寮傚父澶勭悊鏌ヨ |
-| manufacturing_warning | 棰勮鐪嬫澘 |
-| manufacturing_analysis | 缁忚惀鍒嗘瀽 |
-| manufacturing_action_plan | 鍔炵悊寤鸿锛堝姩浣滃崱锛� |
-
-## 5. 鈥滄煡鈥濊兘鍔涜仈璋冭鐐�
-
-### 5.1 璁惧鐩稿叧璺敱瑙勫垯锛堝叧閿級
-
-- 褰撶敤鎴疯緭鍏ュ寘鍚� `缁翠慨/鎶ヤ慨/妫�淇�/缁存姢`锛岃澶囧煙浼氳繑鍥� `manufacturing_device_repair_list`锛堟煡 `device_repair`锛夈��
-- 鏈寘鍚互涓婅瘝鏃讹紝杩斿洖 `manufacturing_device_list`锛堟煡璁惧鍙拌处锛夈��
-
-绀轰緥锛�
-- `鏌ヨ澶嘇-01` -> `manufacturing_device_list`
-- `鏌ヨ澶嘇-01缁翠慨鎯呭喌` -> `manufacturing_device_repair_list`
-
-### 5.2 缁翠慨璁板綍鏃堕棿杩囨护瑙勫垯锛堝叧閿級
-
-- 鐢ㄦ埛鏄庣‘甯︽椂闂存潯浠讹紙濡傗�滄湰鏈�/涓婂懆/杩�7澶�/2026-05-01 鍒� 2026-05-16鈥濓級鎵嶆寜鏃堕棿杩囨护缁翠慨璁板綍銆�
-- 鏈甫鏃堕棿鏉′欢鏃讹紝涓嶉粯璁ゆ寜杩� 30 澶╂埅鏂紝閬垮厤鍘嗗彶缁翠慨璁板綍琚杩囨护銆�
-
-### 5.3 鍏抽敭璇嶅鐞嗚鍒欙紙璁惧/缁翠慨锛�
-
-- 绯荤粺浼氭竻娲楀櫔闊宠瘝锛歚鏌ヨ/鏌ョ湅/璇�/璁惧/缁翠慨鎯呭喌/璁板綍/淇℃伅` 绛夈��
-- 鍚屾椂浼氶�氳繃璁惧鍙拌处鍖归厤 `deviceLedgerId` 鍏滃簳锛屽啀鍥炴煡缁翠慨璁板綍锛岄檷浣庘�滄湁鏁版嵁浣嗘煡涓嶅埌鈥濈殑姒傜巼銆�
-
-### 5.4 鍒楄〃缁撴灉绾﹀畾
-
-- 鍒楄〃鏁版嵁缁熶竴鍦� `data.items`
-- 缁熻鎽樿鍦� `summary`
-
-甯哥敤瀛楁锛�
-
-| type | 甯哥敤瀛楁 |
-| --- | --- |
-| manufacturing_plan_list | `mpsNo`, `requiredDate`, `status` |
-| manufacturing_workorder_list | `workOrderNo`, `planStartTime`, `planEndTime`, `status` |
-| manufacturing_device_list | `deviceName`, `deviceModel`, `pendingRepairCount` |
-| manufacturing_device_repair_list | `deviceName`, `deviceModel`, `repairTime`, `repairName`, `maintenanceName`, `status`, `createTime` |
-
-## 6. 鈥滈璀︹�濊仈璋冭鐐�
-
-- `type = manufacturing_warning`
-- 棰勮鏄庣粏鍦� `data.items`锛屾瘡椤瑰寘鍚細
-  - `level`锛歚high` / `medium`
-  - `title`
-  - `count`
-  - `detail`
-
-鐘舵�佸彛寰勶細
-- 璁惧鈥滃緟缁翠慨鈥濈粺璁℃寜 `status = 0` 璁$畻锛堜笉鍐嶆妸鍏朵粬鐘舵�佽鍏ュ緟缁翠慨锛夈��
-
-## 7. 鈥滃垎鏋愨�濊仈璋冭鐐�
-
-- `type = manufacturing_analysis`
-- 鍏抽敭鎸囨爣鍦� `summary`
-- 鎸囨爣鍗″湪 `data.coreMetrics`
-- 鍥捐〃閰嶇疆鍦� `charts`锛�
-  - `charts.domainBarOption`
-  - `charts.qualityPieOption`
-
-鍥捐〃閰嶇疆鍙洿鎺ョ粰 ECharts 浣跨敤銆�
-
-## 8. 鈥滃姙鈥濊兘鍔涜仈璋冭鐐�
-
-褰撳墠鈥滃姙鈥濅负 **鍔炵悊寤鸿妯″紡**锛圓I 杈撳嚭鍔ㄤ綔鍗★紝鍓嶇纭鍚庤皟鐢ㄧ洰鏍囦笟鍔℃帴鍙o級銆�
-
-- `type = manufacturing_action_plan`
-- 鍔ㄤ綔鍗℃暟缁勶細`data.actionCards`
-
-鍔ㄤ綔鍗″瓧娈碉細
-
-| 瀛楁 | 璇存槑 |
-| --- | --- |
-| code | 鍔ㄤ綔缂栫爜 |
-| name | 鍔ㄤ綔鍚嶇О |
-| method | 璇锋眰鏂规硶 |
-| targetApi | 鐩爣涓氬姟鎺ュ彛 |
-| requiredFields | 蹇呭~瀛楁 |
-| examplePayload | 绀轰緥鍙傛暟 |
-| description | 璇存槑 |
-
-鍐呯疆鍔ㄤ綔绀轰緥锛�
-1. `POST /productionOperationTask/assign`
-2. `POST /device/repair`
-3. `POST /quality/qualityUnqualified/deal`
-4. `POST /stockInventory/addstockInventory`
-5. `POST /procurementExceptionRecord/add`
-
-## 9. 浼氳瘽绠$悊鎺ュ彛
-
-### 9.1 浼氳瘽鍒楄〃
-
-```http
-GET /manufacturing-ai/history/sessions
-```
-
-`AjaxResult.data` 瀛楁锛�
-- `memoryId`
-- `title`
-- `lastMessage`
-- `messageCount`
-- `lastChatTime`
-
-### 9.2 浼氳瘽娑堟伅
-
-```http
-GET /manufacturing-ai/history/messages/{memoryId}
-```
-
-`AjaxResult.data` 瀛楁锛�
-- `role`锛歚user` / `assistant` / `system` / `tool`
-- `content`
-- `filePaths`
-
-### 9.3 鍒犻櫎浼氳瘽
-
-```http
-DELETE /manufacturing-ai/history/{memoryId}
-```
-
-杩斿洖鏍囧噯 `AjaxResult`銆�
-
-## 10. 閿欒涓庤竟鐣�
-
-`/chat` 甯歌杩斿洖鏂囨湰锛�
-- `memoryId涓嶈兘涓虹┖`
-- `message涓嶈兘涓虹┖`
-
-寤鸿鍓嶇鍙戦�佸墠鍏堝仛蹇呭~鏍¢獙銆�
-
-## 11. 鍓嶇鑱旇皟娴佺▼寤鸿
-
-1. 鐧诲綍鍚庡垱寤哄苟澶嶇敤 `memoryId`銆�
-2. 璋冪敤 `/manufacturing-ai/chat`锛屾寜 SSE 鎷兼帴瀹屾暣鏂囨湰銆�
-3. 鍏堝皾璇� JSON 瑙f瀽锛�
-   - 鎴愬姛锛氭寜 `type` 璺敱鍒板搴� UI锛堝垪琛�/棰勮/鍒嗘瀽/鍔ㄤ綔鍗★級銆�
-   - 澶辫触锛氭寜鏅�氳亰澶╂秷鎭睍绀恒��
-4. 鈥滃姙鈥濆満鏅敱鐢ㄦ埛纭鍔ㄤ綔鍗″悗锛屽墠绔皟鐢� `targetApi` 瀹屾垚涓氬姟鎻愪氦銆�
-5. 閫氳繃鍘嗗彶鎺ュ彛鍋氫細璇濆洖鏄句笌鍒犻櫎銆�
-
-## 12. 鍓嶇闆嗘垚绾︽潫锛堟湰娆¤ˉ鍏咃級
-
-### 12.1 鏅鸿兘浣撴柊澧炰笌寮圭獥鍚屾瑙勫垯锛堝己鍒讹級
-
-1. 褰� `src/views/aiIndustrialBrain/index.vue` 鏂板鏅鸿兘浣擄紙`agents`锛夐�昏緫鏃讹紝蹇呴』鍚屾纭寮圭獥鍔╂墜鍙敤鎬с��
-2. 寮圭獥鍔╂墜缁熶竴鐢� `src/components/AIChatSidebar/assistants/index.js` 鐨� `assistantRegistry` 娉ㄥ唽銆�
-3. 鏂板鏅鸿兘浣撶殑 `key` 鑻ヨ鍦ㄥ脊绐椾腑鍙敤锛屽繀椤诲湪 `assistantRegistry` 涓彁渚涘悓鍚嶉厤缃��
-4. 鏈湪 `assistantRegistry` 娉ㄥ唽鐨勬櫤鑳戒綋锛屽脊绐楁樉绀轰负 `pending`锛堝紑鍙戜腑锛夋�併��
-
-### 12.2 鐢熶骇鍔╂墜鎺ュ叆绾﹀畾
-
-1. 鐢熶骇鍔╂墜閰嶇疆浣嶄簬 `src/components/AIChatSidebar/assistants/productionAssistant.js`锛宍apiBase = /manufacturing-ai`銆�
-2. AI 宸ヤ笟澶ц剳涓敓浜ф櫤鑳戒綋杩涘叆寮圭獥鍚庯紝榛樿浣跨敤 `production` 鍔╂墜銆�
-3. 鍏ㄥ眬鍙充晶瀵硅瘽妗嗗姪鎵嬪垏鎹㈠垪琛ㄥ凡鍖呭惈锛�
-   - `general`锛堝緟鍔炲姪鐞嗭級
-   - `purchase`锛堥噰璐姪鐞嗭級
-   - `production`锛堢敓浜у姪鐞嗭級
-
-### 12.3 瀛楁涓枃鍖栧睍绀鸿鍒�
-
-1. 闈㈠悜涓氬姟鐢ㄦ埛鐨勫瓧娈靛悕銆佹爣绛俱�佸繀濉彁绀轰笉鐩存帴灞曠ず鑻辨枃 key銆�
-2. `requiredFields`銆乣missingFields` 鎻愮ず闇�杞崲涓轰腑鏂囪矾寰勬爣绛撅紙绀轰緥锛歚缂哄皯蹇呭~瀛楁锛氬伐鍗曞彿銆佽鍒掔粨鏉熸椂闂碻锛夈��
-3. 缁撴瀯鍖栧垪琛ㄥ垪鍚嶃�佹憳瑕佹寚鏍囥�佸姩浣滃崱瀛楁浼樺厛鏄剧ず涓枃锛涜嫳鏂� key 浠呯敤浜庢帴鍙i�氫俊涓庤皟璇曘��
-
-## 13. 鏈鏇存柊璁板綍锛�2026-05-16锛�
-
-1. 鏂板璁惧缁翠慨璁板綍杩斿洖绫诲瀷锛歚manufacturing_device_repair_list`銆�
-2. 淇璁惧鍩熸剰鍥惧垎娴侊細`缁翠慨/鎶ヤ慨/妫�淇�/缁存姢` 璧扮淮淇褰曪紝涓嶅啀璇蛋璁惧鍒楄〃銆�
-3. 淇缁翠慨璁板綍鏃堕棿杩囨护锛氫粎鍦ㄧ敤鎴锋槑纭椂闂存潯浠舵椂鐢熸晥銆�
-4. 淇寰呯淮淇粺璁″彛寰勶細鎸� `status = 0` 缁熻銆�
-5. 鏂板 AI 宸ヤ笟澶ц剳鏅鸿兘浣撲笌寮圭獥鍚屾缁存姢瑙勫垯锛氭柊澧炴櫤鑳戒綋蹇呴』鍚屾娉ㄥ唽寮圭獥鍔╂墜銆�
-6. 鐢熶骇鍔╂墜宸叉帴鍏ュ伐涓氬ぇ鑴戝脊绐椾笌鍏ㄥ眬鍙充晶瀵硅瘽妗嗗姪鎵嬪垏鎹€��
-7. 澧炲姞瀛楁涓枃鍖栧睍绀虹害鏉燂細閬垮厤鑻辨枃瀛楁瀵逛笟鍔$敤鎴风洿鍑恒��
diff --git "a/doc/20260518_\351\224\200\345\224\256\345\212\251\346\211\213\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260518_\351\224\200\345\224\256\345\212\251\346\211\213\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
deleted file mode 100644
index d0c6e40..0000000
--- "a/doc/20260518_\351\224\200\345\224\256\345\212\251\346\211\213\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,188 +0,0 @@
-# 閿�鍞姪鎵嬪墠绔仈璋冩枃妗o紙`/sales-ai`锛�
-> 鏇存柊鏃堕棿锛�2026-05-18  
-> 閫傜敤妯″潡锛氬鎴锋。妗堬紙绉佹捣/鍏捣锛夈�侀攢鍞姤浠枫�侀攢鍞彴璐︺�侀攢鍞��璐с�佸鎴峰線鏉ャ�佸彂璐у彴璐︺�佹寚鏍囩粺璁�  
-> 閲嶇偣鑳藉姏锛氬鎴锋祦澶遍闄╁垎鏋愩�佸洖娆句笌鎶ヤ环绛栫暐寤鸿
-
-## 1. 鎺ュ彛鎬昏
-
-1. 娴佸紡瀵硅瘽锛歚POST /sales-ai/chat`
-2. 浼氳瘽鍒楄〃锛歚GET /sales-ai/history/sessions`
-3. 浼氳瘽娑堟伅锛歚GET /sales-ai/history/messages/{memoryId}`
-4. 鍒犻櫎浼氳瘽锛歚DELETE /sales-ai/history/{memoryId}`
-
-璇存槑锛�
-- `/chat` 杩斿洖 `text/stream;charset=utf-8`锛圫SE 鏂囨湰娴侊級銆�
-- 鍛戒腑宸ュ叿鏃讹紝鏈�缁堝唴瀹逛负 **JSON 瀛楃涓�**锛堥潪 `AjaxResult`锛夈��
-- 鏈懡涓伐鍏锋椂锛岃繑鍥炴櫘閫氫腑鏂囨枃鏈��
-
-## 2. 瀵硅瘽鎺ュ彛
-
-### 2.1 璇锋眰
-
-```http
-POST /sales-ai/chat
-Content-Type: application/json
-```
-
-```json
-{
-  "memoryId": "sales-ai-001",
-  "message": "甯垜鍋氬鎴锋祦澶遍闄╁垎鏋愶紝杩�90澶╋紝鍓�10鏉�"
-}
-```
-
-瀛楁璇存槑锛�
-
-| 瀛楁 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-| --- | --- | --- | --- |
-| `memoryId` | string | 鏄� | 浼氳瘽 ID锛屽墠绔敓鎴愬苟澶嶇敤 |
-| `message` | string | 鏄� | 鐢ㄦ埛杈撳叆 |
-
-### 2.2 杩斿洖澶勭悊
-
-鍓嶇寤鸿娴佺▼锛�
-1. 鍏堟寜娴佹嫾鎺ュ畬鏁存枃鏈� `fullText`銆�
-2. 灏濊瘯 `JSON.parse(fullText)`锛�
-   - 鎴愬姛锛氭寜 `type` 璺敱鍒扮粨鏋勫寲缁勪欢銆�
-   - 澶辫触锛氭寜鏅�氳亰澶╂枃鏈睍绀恒��
-
-## 3. 缁撴瀯鍖栧搷搴斿崗璁�
-
-### 3.1 閫氱敤缁撴瀯
-
-```json
-{
-  "success": true,
-  "type": "sales_dashboard",
-  "description": "宸茶繑鍥為攢鍞寚鏍囩粺璁�",
-  "summary": {},
-  "data": {},
-  "charts": {}
-}
-```
-
-### 3.2 `type` 鏋氫妇
-
-| type | 鍦烘櫙 |
-| --- | --- |
-| `sales_customer_profile_list` | 瀹㈡埛妗f锛堢娴�/鍏捣锛� |
-| `sales_quotation_list` | 閿�鍞姤浠� |
-| `sales_ledger_list` | 閿�鍞彴璐� |
-| `sales_return_list` | 閿�鍞��璐� |
-| `sales_customer_interaction_list` | 瀹㈡埛寰�鏉ワ紙鍥炴锛� |
-| `sales_shipping_list` | 鍙戣揣鍙拌处 |
-| `sales_dashboard` | 鎸囨爣缁熻 |
-| `sales_customer_churn_risk` | 瀹㈡埛娴佸け椋庨櫓鍒嗘瀽 |
-| `sales_collection_quote_strategy` | 鍥炴涓庢姤浠风瓥鐣ュ缓璁� |
-
-## 4. 鑿滃崟鑳藉姏鏄犲皠锛堝搴旇惀閿�绠$悊锛�
-
-1. 瀹㈡埛妗f锛堢娴凤級锛氱ず渚嬫彁闂� `鏌ヨ绉佹捣瀹㈡埛妗f鍓�10鏉
-2. 瀹㈡埛妗f锛堝叕娴凤級锛氱ず渚嬫彁闂� `鏌ヨ鍏捣瀹㈡埛妗f`
-3. 閿�鍞姤浠凤細绀轰緥鎻愰棶 `鏌ヨ鏈湀閿�鍞姤浠穈
-4. 閿�鍞彴璐︼細绀轰緥鎻愰棶 `鏌ヨ鏈湀閿�鍞彴璐
-5. 閿�鍞��璐э細绀轰緥鎻愰棶 `鏌ヨ杩�30澶╅攢鍞��璐
-6. 瀹㈡埛寰�鏉ワ細绀轰緥鎻愰棶 `鏌ヨ杩�30澶╁鎴峰洖娆惧線鏉
-7. 鍙戣揣鍙拌处锛氱ず渚嬫彁闂� `鏌ヨ鏈湀鍙戣揣鍙拌处`
-8. 鎸囨爣缁熻锛氱ず渚嬫彁闂� `鏌ョ湅閿�鍞寚鏍囩粺璁
-
-## 5. 閲嶇偣鑳藉姏鑱旇皟
-
-### 5.1 瀹㈡埛娴佸け椋庨櫓鍒嗘瀽锛坄sales_customer_churn_risk`锛�
-
-鏁版嵁浣嶇疆锛�
-- 鍒楄〃锛歚data.items`
-- 姹囨�伙細`summary.highRiskCount / mediumRiskCount / lowRiskCount`
-- 鍥捐〃锛歚charts.riskLevelPieOption`銆乣charts.riskScoreBarOption`
-
-鍗曢」甯哥敤瀛楁锛�
-- `customerName`
-- `riskLevel`锛坄high`/`medium`/`low`锛�
-- `riskScore`锛�0-100锛�
-- `pendingAmount`
-- `pendingRate`
-- `daysSinceLastOrder`
-- `riskReasons`锛堝瓧绗︿覆鏁扮粍锛�
-
-### 5.2 鍥炴涓庢姤浠风瓥鐣ュ缓璁紙`sales_collection_quote_strategy`锛�
-
-鏁版嵁浣嶇疆锛�
-- 绛栫暐鍗★細`data.items`
-- 姹囨�伙細`summary.highPriorityCount / mediumPriorityCount / lowPriorityCount`
-- 鍥捐〃锛歚charts.pendingAmountBarOption`銆乣charts.priorityPieOption`
-
-鍗曢」甯哥敤瀛楁锛�
-- `customerName`
-- `priority`锛坄high`/`medium`/`low`锛�
-- `pendingAmount`
-- `quoteConversionRate`
-- `collectionStrategy`
-- `quotationStrategy`
-- `nextAction`
-
-## 6. 鎸囨爣缁熻鑱旇皟锛坄sales_dashboard`锛�
-
-鍏抽敭瀛楁锛�
-- `summary.contractAmountTotal`
-- `summary.receivedAmountTotal`
-- `summary.pendingAmountTotal`
-- `summary.shipRate`
-
-鍥捐〃瀛楁锛堝彲鐩存帴缁� ECharts锛夛細
-- `charts.amountBarOption`
-- `charts.shippingPieOption`
-- `charts.customerTopBarOption`
-- `charts.contractTrendLineOption`
-
-闄勫姞鏁版嵁锛�
-- `data.topCustomers`
-- `data.contractTrend`
-
-## 7. 浼氳瘽鍘嗗彶鎺ュ彛
-
-### 7.1 浼氳瘽鍒楄〃
-
-```http
-GET /sales-ai/history/sessions
-```
-
-杩斿洖 `AjaxResult.data` 瀛楁锛�
-- `memoryId`
-- `title`
-- `lastMessage`
-- `messageCount`
-- `lastChatTime`
-
-### 7.2 浼氳瘽娑堟伅
-
-```http
-GET /sales-ai/history/messages/{memoryId}
-```
-
-杩斿洖 `AjaxResult.data` 瀛楁锛�
-- `role`锛歚user` / `assistant` / `system` / `tool`
-- `content`
-- `filePaths`锛堝綋鍓嶉攢鍞姪鎵嬫湭浣跨敤鏂囦欢鍒嗘瀽锛屽彲蹇界暐锛�
-
-### 7.3 鍒犻櫎浼氳瘽
-
-```http
-DELETE /sales-ai/history/{memoryId}
-```
-
-杩斿洖鏍囧噯 `AjaxResult`銆�
-
-## 8. 鍓嶇鎺ュ叆绾︽潫
-
-1. 鏂板鍔╂墜閰嶇疆鏃讹紝`assistantRegistry` 蹇呴』娉ㄥ唽 `sales`锛堟垨浣犳柟绾﹀畾 key锛夛紝骞舵寚鍚� `apiBase = /sales-ai`銆�
-2. 缁撴瀯鍖栨覆鏌撳繀椤诲熀浜� `type` 鍒嗗彂锛屼笉瑕佷粎闈犲叧閿瘝銆�
-3. 鑱婂ぉ娓叉煋闇�淇濈暀鈥滄枃鏈厹搴曗�濓紝閬垮厤 JSON 瑙f瀽澶辫触鏃堕〉闈㈢┖鐧姐��
-4. 涓氬姟灞曠ず瀛楁寤鸿涓枃鍖栵紝涓嶇洿鎺ュ睍绀鸿嫳鏂囧瓧娈� key銆�
-
-## 9. 鑱旇皟楠屾敹娓呭崟
-
-1. 鑳芥甯告祦寮忔帴鏀� `/sales-ai/chat` 鍝嶅簲骞舵嫾鎺ユ枃鏈��
-2. 鑳芥寜 `type` 姝g‘娓叉煋 9 绫荤粨鏋勫寲缁撴灉銆�
-3. 鑳芥纭睍绀衡�滃鎴锋祦澶遍闄╁垎鏋愨�濆拰鈥滃洖娆句笌鎶ヤ环绛栫暐寤鸿鈥濅袱涓噸鐐瑰満鏅��
-4. 浼氳瘽鍒楄〃銆佷細璇濇秷鎭�佸垹闄や細璇濆叏閾捐矾鍙敤銆�
-5. `memoryId` 澶嶇敤鍚庡彲鍥炵湅鍘嗗彶锛屼笉浼氫覆浼氳瘽銆�
diff --git "a/doc/20260520_\351\246\226\351\241\265\347\224\237\344\272\247\347\234\213\346\235\277\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260520_\351\246\226\351\241\265\347\224\237\344\272\247\347\234\213\346\235\277\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
deleted file mode 100644
index aaa6055..0000000
--- "a/doc/20260520_\351\246\226\351\241\265\347\224\237\344\272\247\347\234\213\346\235\277\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,160 +0,0 @@
-# 棣栭〉鐢熶骇鐪嬫澘鍓嶇鑱旇皟鏂囨。
-
-鏇存柊鏃堕棿锛�2026-05-20  
-妯″潡锛歚/home`锛堥椤碉級
-
-## 1. 鎺ュ彛娓呭崟
-
-1. `GET /home/productionOverview`锛氱敓浜ф�昏  
-2. `GET /home/productionRealtimeBoard`锛氱敓浜у疄鏃剁湅鏉�  
-3. `GET /home/productionOrderProgress`锛氱敓浜ц鍗曡繘搴�  
-4. `GET /home/todayProductionPlan`锛氫粖鏃ョ敓浜ц鍒�
-
-鎵�鏈夋帴鍙g粺涓�杩斿洖 `AjaxResult`锛�
-
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": {}
-}
-```
-
-## 2. 鐢熶骇鎬昏
-
-### 2.1 璇锋眰
-
-```http
-GET /home/productionOverview
-```
-
-### 2.2 杩斿洖 `data`
-
-```json
-{
-  "totalOutput": 1280.00,
-  "totalScrap": 25.00,
-  "yieldRate": 98.08
-}
-```
-
-瀛楁璇存槑锛�
-
-- `totalOutput`锛氱疮璁′骇鍑猴紙浠讹紝鍚堟牸鏁帮級
-- `totalScrap`锛氱疮璁℃姤搴燂紙浠讹級
-- `yieldRate`锛氳壇鐜囷紙0-100锛屽墠绔睍绀烘椂鍙嫾鎺� `%`锛�
-
-## 3. 鐢熶骇瀹炴椂鐪嬫澘
-
-### 3.1 璇锋眰
-
-```http
-GET /home/productionRealtimeBoard
-```
-
-### 3.2 杩斿洖 `data`
-
-```json
-{
-  "deviceOee": {
-    "value": 74.00,
-    "compareYesterday": 2.50
-  },
-  "orderAchievementRate": {
-    "value": 81.30,
-    "compareYesterday": -1.20
-  },
-  "defectRate": {
-    "value": 1.40,
-    "compareYesterday": 0.30
-  }
-}
-```
-
-瀛楁璇存槑锛�
-
-- `value`锛氬綋鏃ユ寚鏍囧�硷紙0-100锛�
-- `compareYesterday`锛氳緝鏄ㄦ棩鍙樺寲鍊硷紙鍙鍙礋锛涘墠绔寜姝h礋鍐冲畾绠ご鏂瑰悜鍜岄鑹诧級
-
-## 4. 鐢熶骇璁㈠崟杩涘害
-
-### 4.1 璇锋眰
-
-```http
-GET /home/productionOrderProgress?tab=all&pageNum=1&pageSize=10
-```
-
-鍙傛暟锛�
-
-- `tab`锛歚all` / `inProgress` / `completed` / `paused`
-- `pageNum`锛氶〉鐮侊紙榛樿 `1`锛�
-- `pageSize`锛氭瘡椤垫潯鏁帮紙榛樿 `10`锛屾渶澶� `50`锛�
-
-### 4.2 杩斿洖 `data`
-
-```json
-{
-  "tab": "all",
-  "total": 24,
-  "pageNum": 1,
-  "pageSize": 10,
-  "inProgressCount": 6,
-  "completedCount": 12,
-  "pausedCount": 2,
-  "records": [
-    {
-      "orderNo": "MO-20260518-001",
-      "productName": "鏅鸿兘鎺у埗鍣�",
-      "plannedQuantity": 1000.00,
-      "completedQuantity": 860.00,
-      "completionRate": 86.00,
-      "dueDate": "2026-05-20",
-      "status": 2,
-      "statusLabel": "杩涜涓�"
-    }
-  ]
-}
-```
-
-瀛楁璇存槑锛�
-
-- `completionRate`锛氬畬鎴愮巼锛�0-100锛�
-- `status`锛氬悗绔姸鎬佺爜锛坄1`寰呭紑濮嬶紝`2`杩涜涓紝`3`宸插畬鎴愶紝`4`宸叉殏鍋滐級
-- `statusLabel`锛氱姸鎬佷腑鏂囧睍绀哄��
-
-## 5. 浠婃棩鐢熶骇璁″垝
-
-### 5.1 璇锋眰
-
-```http
-GET /home/todayProductionPlan?limit=4
-```
-
-鍙傛暟锛�
-
-- `limit`锛氳繑鍥炴潯鏁帮紙榛樿 `4`锛屾渶澶� `20`锛�
-
-### 5.2 杩斿洖 `data`
-
-```json
-{
-  "total": 9,
-  "records": [
-    {
-      "orderNo": "MO-20260518-004",
-      "productName": "缁撴瀯浠禔",
-      "plannedQuantity": 1200.00,
-      "dueDate": "2026-05-15",
-      "status": 2,
-      "statusLabel": "杩涜涓�"
-    }
-  ]
-}
-```
-
-## 6. 鍓嶇灞曠ず绾﹀畾
-
-- 鐧惧垎姣斿瓧娈电粺涓�鏄暟鍊硷紙濡� `74.00`锛夛紝鍓嶇鑷鎷兼帴 `%`銆�
-- 鎵�鏈夋暟鍊间繚鐣欎袱浣嶅皬鏁般��
-- `dueDate` 鍙兘涓� `null`锛屽墠绔渶鍏滃簳灞曠ず锛堝 `--`锛夈��
-- `compareYesterday` 姝h礋閮藉彲鑳藉嚭鐜帮紝寤鸿鎸� `>0` 涓婂崌銆乣<0` 涓嬮檷銆乣=0` 鎸佸钩澶勭悊銆�
diff --git "a/doc/20260520_\351\246\226\351\241\265\347\224\237\344\272\247\347\234\213\346\235\277\346\200\247\350\203\275\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md" "b/doc/20260520_\351\246\226\351\241\265\347\224\237\344\272\247\347\234\213\346\235\277\346\200\247\350\203\275\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
deleted file mode 100644
index 730dbf1..0000000
--- "a/doc/20260520_\351\246\226\351\241\265\347\224\237\344\272\247\347\234\213\346\235\277\346\200\247\350\203\275\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,107 +0,0 @@
-# 棣栭〉鐢熶骇鐪嬫澘鎬ц兘浼樺寲鍓嶇鍙樻洿鏂囨。
-
-鏇存柊鏃堕棿锛�2026-05-20  
-閫傜敤椤甸潰锛氶椤�  
-娑夊強鍖哄潡锛�
-
-1. 鐢熶骇璁㈠崟杩涘害
-2. 浠婃棩鐢熶骇璁″垝
-
-## 1. 鏈浼樺寲鐩爣
-
-閽堝澶ф暟鎹噺鍦烘櫙锛堣鍗曟暟閲忓銆佺敓浜у巻鍙查暱锛変紭鍖栨煡璇㈡�ц兘锛岄檷浣庨椤垫帴鍙e搷搴旀椂闂村拰鍐呭瓨鍗犵敤銆�
-
-## 2. 娑夊強鎺ュ彛
-
-1. `GET /home/productionOrderProgress`
-2. `GET /home/todayProductionPlan`
-
-## 3. 鍓嶇鏄惁闇�瑕佹敼浠g爜
-
-缁撹锛�**鏃犲己鍒舵敼鍔紝鎺ュ彛鍏ュ弬涓庤繑鍥炵粨鏋勪繚鎸佸吋瀹�**銆�  
-浣犵幇鏈夐〉闈㈠彲浠ョ洿鎺ヨ仈璋冿紝涓嶉渶瑕佹敼瀛楁鏄犲皠銆�
-
-## 4. 鎺ュ彛璇存槑锛堜繚鎸佷笉鍙橈級
-
-### 4.1 鐢熶骇璁㈠崟杩涘害
-
-璇锋眰锛�
-
-```http
-GET /home/productionOrderProgress?tab=all&pageNum=1&pageSize=10
-```
-
-鍙傛暟锛�
-
-- `tab`锛歚all` / `inProgress` / `completed` / `paused`
-- `pageNum`锛氶〉鐮侊紝榛樿 `1`
-- `pageSize`锛氭瘡椤垫潯鏁帮紝榛樿 `10`锛屾渶澶� `50`
-
-杩斿洖 `data`锛堢粨鏋勪笉鍙橈級锛�
-
-```json
-{
-  "tab": "all",
-  "total": 1200,
-  "pageNum": 1,
-  "pageSize": 10,
-  "inProgressCount": 180,
-  "completedCount": 900,
-  "pausedCount": 20,
-  "records": [
-    {
-      "orderNo": "MO-20260518-001",
-      "productName": "鏅鸿兘鎺у埗鍣�",
-      "plannedQuantity": 1000.00,
-      "completedQuantity": 860.00,
-      "completionRate": 86.00,
-      "dueDate": "2026-05-20",
-      "status": 2,
-      "statusLabel": "杩涜涓�"
-    }
-  ]
-}
-```
-
-### 4.2 浠婃棩鐢熶骇璁″垝
-
-璇锋眰锛�
-
-```http
-GET /home/todayProductionPlan?limit=4
-```
-
-鍙傛暟锛�
-
-- `limit`锛氳繑鍥炴潯鏁帮紝榛樿 `4`锛屾渶澶� `20`
-
-杩斿洖 `data`锛堢粨鏋勪笉鍙橈級锛�
-
-```json
-{
-  "total": 230,
-  "records": [
-    {
-      "orderNo": "MO-20260518-004",
-      "productName": "缁撴瀯浠禔",
-      "plannedQuantity": 1200.00,
-      "dueDate": "2026-05-15",
-      "status": 2,
-      "statusLabel": "杩涜涓�"
-    }
-  ]
-}
-```
-
-## 5. 鍚庣浼樺寲鐐癸紙渚涘墠绔煡鎮夛級
-
-1. 璁㈠崟杩涘害涓庝粖鏃ヨ鍒掓敼涓鸿交閲� SQL锛屼粎鏌ヨ棣栭〉蹇呴渶瀛楁銆�  
-2. 鍘绘帀浜嗛椤垫煡璇㈣矾寰勪腑涓嶅繀瑕佺殑澶у叧鑱斻�佸浘鐗囧~鍏呭拰瀵硅薄瑁呴厤銆�  
-3. 鐘舵�佺粺璁℃敼涓烘暟鎹簱鑱氬悎璁℃暟锛屼笉鍐嶉�愭潯鎷夊彇璁$畻銆�  
-4. 鍒嗛〉涓庢潯鏁颁笂闄愪繚鐣欙紙`pageSize <= 50`, `limit <= 20`锛夈��
-
-## 6. 鍓嶇寤鸿
-
-1. 鍒囨崲 `tab` 鏃朵繚鐣欑幇鏈夎皟鐢ㄦ柟寮忓嵆鍙��  
-2. `dueDate` 鍙兘涓虹┖锛岀户缁寜 `--` 鍏滃簳灞曠ず銆�  
-3. 鐧惧垎姣斿瓧娈典粛涓烘暟鍊硷紝鍓嶇缁х画杩藉姞 `%` 灞曠ず銆�
diff --git "a/doc/20260521_\351\207\207\350\264\255\346\231\272\350\203\275\344\275\223\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md" "b/doc/20260521_\351\207\207\350\264\255\346\231\272\350\203\275\344\275\223\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
deleted file mode 100644
index 58089e8..0000000
--- "a/doc/20260521_\351\207\207\350\264\255\346\231\272\350\203\275\344\275\223\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,85 +0,0 @@
-# 閲囪喘鏅鸿兘浣撲紭鍖栧墠绔彉鏇存枃妗�
-
-## 1. 鍙樻洿鑳屾櫙
-
-鏈閽堝閲囪喘鏅鸿兘浣撳仛浜嗗榻愪紭鍖栵紙鍙傝�冮攢鍞�/瀹℃壒/鍒堕�犳櫤鑳戒綋锛夛細
-
-1. 鎻愬崌 `quickPrompts` 鍛戒腑绋冲畾鎬с��
-2. 澧炲己鐩稿鏃堕棿璇嗗埆锛堜粖澶�/鏄ㄥぉ/鏈懆/涓婂懆/鏈湀/涓婃湀/浠婂勾/鍘诲勾/杩慛澶╃瓑锛夈��
-3. 澧炲姞涓氬姟鎰忓浘鏈瘑鍒椂鐨勭粨鏋勫寲鍏滃簳鍝嶅簲锛岄伩鍏嶇紪閫犳暟鎹��
-4. 琛ュ厖寰呬粯娆炬煡璇㈢殑姹囨�诲瓧娈碉紝渚夸簬鍓嶇鐩存帴娓叉煋缁熻鍗$墖銆�
-
-## 2. 鎺ュ彛褰卞搷姒傝
-
-| 鎺ュ彛 | 鏂规硶 | 鏄惁鏀硅矾寰� | 鏄惁鏀瑰叆鍙� | 鏄惁鏀硅繑鍥炵粨鏋� |
-| --- | --- | --- | --- | --- |
-| `/purchase-ai/chat` | POST(SSE) | 鍚� | 鍚� | 鏄紙鏂板鍏滃簳 JSON 绫诲瀷锛� |
-| `/purchase-ai/analyze-files` | POST(SSE) | 鍚� | 鍚� | 鍚︼紙浠呭唴閮ㄦ彁绀鸿瘝澧炲己锛� |
-
-## 3. 鏂板鍏滃簳鍝嶅簲锛堥噸鐐癸級
-
-褰撶敤鎴锋槑鏄惧湪闂噰璐笟鍔★紝浣嗘潯浠朵笉鍏呭垎涓旀湭鍛戒腑鍙墽琛屾剰鍥炬椂锛宍/purchase-ai/chat` 浼氱洿鎺ヨ繑鍥炵粨鏋勫寲 JSON锛堣�屼笉鏄嚜鐢辨枃鏈級锛�
-
-```json
-{
-  "success": false,
-  "type": "purchase_intent_not_recognized",
-  "description": "鏈瘑鍒埌鍙墽琛岀殑閲囪喘鏌ヨ鏉′欢銆備负淇濊瘉缁撴灉鍑嗙‘锛屽綋鍓嶄笉浼氭帹娴嬫垨缂栭�犳暟鎹紝璇疯ˉ鍏呮槑纭椂闂磋寖鍥淬�佷緵搴斿晢銆侀噰璐悎鍚屽彿鎴栫墿鏂欏悗鍐嶆煡璇€��",
-  "summary": {},
-  "data": {
-    "quickPrompts": [
-      "鏈湀閲囪喘閲戦鎺掑悕鍓嶅崄鐨勭墿鏂欐湁鍝簺锛�",
-      "鍝簺閲囪喘璁㈠崟杩樻湭鍏ュ簱锛�",
-      "鏈�杩�7澶╀緵搴斿晢鍒拌揣寮傚父鏈夊摢浜涳紵",
-      "甯垜缁熻寰呬粯娆鹃噰璐崟锛�",
-      "鍒楀嚭鏈湀閲囪喘閫�璐ф儏鍐�"
-    ]
-  },
-  "charts": {}
-}
-```
-
-鍓嶇澶勭悊寤鸿锛�
-
-1. 褰� `type === "purchase_intent_not_recognized"` 鏃讹紝灞曠ず `description`銆�
-2. 璇诲彇 `data.quickPrompts` 浣滀负蹇嵎鎻愰棶鎸夐挳锛堝彲鐩存帴鍥炲~杈撳叆妗嗭級銆�
-
-## 4. 寰呬粯娆捐繑鍥炴柊澧炴眹鎬诲瓧娈�
-
-鎺ュ彛绫诲瀷锛歚type = "purchase_pending_payment_list"`  
-浣嶇疆锛歚summary`
-
-鏂板瀛楁锛�
-
-| 瀛楁 | 绫诲瀷 | 璇存槑 |
-| --- | --- | --- |
-| pendingOrderCount | number | 寰呬粯娆捐鍗曟暟 |
-| totalContractAmount | number | 寰呬粯娆捐鍗曞悎鍚屾�婚 |
-| totalPaidAmount | number | 宸蹭粯娆炬�婚 |
-| totalPendingAmount | number | 寰呬粯娆炬�婚 |
-
-璇存槑锛氬師鏈夊瓧娈典粛淇濈暀锛堝吋瀹癸級锛屾湰娆′负澧為噺瀛楁锛屼笉鐮村潖鐜版湁娓叉煋銆�
-
-## 5. 鏃堕棿鍙e緞浼樺寲
-
-閲囪喘鏅鸿兘浣撶幇鍦ㄧ粺涓�鎸変腑鍥芥椂鍖哄姩鎬佹棩鏈熸崲绠楃浉瀵规椂闂达紝鏀寔锛�
-
-- 浠婂ぉ銆佹槰澶�
-- 鏈懆銆佷笂鍛�
-- 鏈湀銆佷笂鏈�
-- 浠婂勾銆佸幓骞�
-- 杩慛澶�/鍛�/鏈�/骞淬�佽繎鍗婂勾銆佽繎鍗婁釜鏈�
-
-鍓嶇鏃犻渶鏀逛紶鍙傦紝浣嗗睍绀烘椂闂磋寖鍥存椂璇蜂互鍚庣杩斿洖 `summary.startDate/endDate/timeRange` 涓哄噯銆�
-
-## 6. 鍓嶇鑱旇皟妫�鏌ユ竻鍗�
-
-1. `chat` 娴佸紡缁撴灉鎷兼帴鍚庯紝浼樺厛鎸� JSON 瑙f瀽銆�
-2. 瑕嗙洊鏂扮被鍨� `purchase_intent_not_recognized` 鐨� UI 澶勭悊銆�
-3. 寰呬粯娆鹃〉闈㈣鍙栧苟灞曠ず `summary.totalPendingAmount` 绛夋柊澧炲瓧娈点��
-4. 楠岃瘉浠ヤ笅蹇嵎闂鍙ǔ瀹氳繑鍥炵粨鏋勫寲缁撴灉锛�
-   - 鏈湀閲囪喘閲戦鎺掑悕鍓嶅崄鐨勭墿鏂欐湁鍝簺锛�
-   - 鍝簺閲囪喘璁㈠崟杩樻湭鍏ュ簱锛�
-   - 鏈�杩�7澶╀緵搴斿晢鍒拌揣寮傚父鏈夊摢浜涳紵
-   - 甯垜缁熻寰呬粯娆鹃噰璐崟锛�
-   - 鍒楀嚭鏈湀閲囪喘閫�璐ф儏鍐�
diff --git "a/doc/20260521_\351\246\226\351\241\265HomeController\346\216\245\345\217\243\345\215\207\347\272\247\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md" "b/doc/20260521_\351\246\226\351\241\265HomeController\346\216\245\345\217\243\345\215\207\347\272\247\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
deleted file mode 100644
index 008660f..0000000
--- "a/doc/20260521_\351\246\226\351\241\265HomeController\346\216\245\345\217\243\345\215\207\347\272\247\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,113 +0,0 @@
-# 棣栭〉 HomeController 鎺ュ彛鍗囩骇鍓嶇鍙樻洿鏂囨。
-
-鏇存柊鏃堕棿锛�2026-05-21  
-閫傜敤妯″潡锛氶椤碉紙`/home`锛�
-
-## 1. 鍙樻洿姒傝
-
-鏈涓� **鍏煎寮忓崌绾�**锛屾棫璋冪敤鏂瑰紡浠嶅彲鐢ㄣ��  
-閲嶇偣鏄粰鐢熶骇鐪嬫澘鎺ュ彛澧炲姞鏇存槑纭殑绛涢�夊弬鏁帮紝渚夸簬鍓嶇鎸夋棩鏈熷拰鐘舵�佹煡璇€��
-
-娑夊強鎺ュ彛锛�
-
-1. `GET /home/productionOrderProgress`
-2. `GET /home/todayProductionPlan`
-
-## 2. 鍙傛暟鍙樻洿
-
-### 2.1 鐢熶骇璁㈠崟杩涘害 `GET /home/productionOrderProgress`
-
-鏃у弬鏁帮紙浠嶅吋瀹癸級锛�
-
-- `tab`锛歚all` / `inProgress` / `completed` / `paused`
-- `pageNum`锛氶粯璁� `1`
-- `pageSize`锛氶粯璁� `10`锛屾渶澶� `50`
-
-鏂板鍙傛暟锛�
-
-- `status`锛堝彲閫夛級锛氱姸鎬佺瓫閫夛紝浼樺厛绾ч珮浜� `tab`  
-  鍙�夊�硷細`all` / `waiting` / `inProgress` / `completed` / `paused` / `1` / `2` / `3` / `4`
-- `bizDate`锛堝彲閫夛級锛氫笟鍔℃棩鏈熺瓫閫夛紝鏍煎紡 `yyyy-MM-dd`锛堟寜璁㈠崟鍒涘缓鏃堕棿杩囨护锛�
-
-鍙傛暟浼樺厛绾э細
-
-1. 濡傛灉浼犱簡 `status`锛屽悗绔紭鍏堟寜 `status` 瑙f瀽锛�
-2. 鏈紶 `status` 鏃讹紝娌跨敤鍘熸湁 `tab` 琛屼负锛�
-3. `status` 鎴� `bizDate` 鏍煎紡閿欒鏃惰繑鍥炲け璐ヤ俊鎭��
-
-璇锋眰绀轰緥锛�
-
-```http
-GET /home/productionOrderProgress?status=completed&bizDate=2026-05-20&pageNum=1&pageSize=10
-```
-
-### 2.2 浠婃棩鐢熶骇璁″垝 `GET /home/todayProductionPlan`
-
-鏃у弬鏁帮紙浠嶅吋瀹癸級锛�
-
-- `limit`锛氶粯璁� `4`锛屾渶澶� `20`
-
-鏂板鍙傛暟锛�
-
-- `planDate`锛堝彲閫夛級锛氳鍒掓棩鏈熺瓫閫夛紝鏍煎紡 `yyyy-MM-dd`锛堟寜 `plan_complete_time` 杩囨护锛�
-
-璇锋眰绀轰緥锛�
-
-```http
-GET /home/todayProductionPlan?limit=6&planDate=2026-05-21
-```
-
-## 3. 杩斿洖缁撴瀯鍙樻洿
-
-### 3.1 `productionOrderProgress` 杩斿洖鏂板瀛楁
-
-鏂板锛�
-
-- `status`锛氭爣鍑嗗寲鐘舵�佸洖鏄撅紙`all` / `waiting` / `inProgress` / `completed` / `paused`锛�
-- `bizDate`锛氭棩鏈熺瓫閫夊洖鏄撅紙鏈紶鏃朵负 `null`锛�
-- `waitingCount`锛氬緟寮�濮嬭鍗曟暟閲�
-
-鍏煎淇濈暀锛�
-
-- `tab` 瀛楁缁х画杩斿洖锛堣�侀〉闈㈡棤闇�鏀瑰姩鍙户缁娇鐢級
-
-杩斿洖绀轰緥锛�
-
-```json
-{
-  "tab": "completed",
-  "status": "completed",
-  "bizDate": "2026-05-20",
-  "total": 24,
-  "pageNum": 1,
-  "pageSize": 10,
-  "waitingCount": 3,
-  "inProgressCount": 6,
-  "completedCount": 12,
-  "pausedCount": 2,
-  "records": []
-}
-```
-
-### 3.2 `todayProductionPlan` 杩斿洖鏂板瀛楁
-
-鏂板锛�
-
-- `planDate`锛氭棩鏈熺瓫閫夊洖鏄撅紙鏈紶鏃朵负 `null`锛�
-
-杩斿洖绀轰緥锛�
-
-```json
-{
-  "planDate": "2026-05-21",
-  "total": 9,
-  "records": []
-}
-```
-
-## 4. 鍓嶇鏀归�犲缓璁�
-
-1. 鏂伴〉闈㈠缓璁紭鍏堜紶 `status`锛岄�愭鏇夸唬 `tab`銆�
-2. 闇�瑕佹寜鏃ユ湡澶嶇洏鐪嬫澘鏃讹紝浣跨敤 `bizDate` / `planDate`銆�
-3. 鑰侀〉闈㈠彲涓嶆敼锛岀户缁部鐢ㄥ師鍙傛暟涔熻兘姝e父鑱旇皟銆�
-
diff --git "a/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
deleted file mode 100644
index 56d1570..0000000
--- "a/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,75 +0,0 @@
-# StockInRecord 鍒楄〃婧愬崟鍙峰墠绔仈璋冩枃妗�
-
-鏇存柊鏃堕棿锛�2026-05-22  
-閫傜敤鎺ュ彛锛歚GET /stockInRecord/listPage`
-
-## 1. 鍙樻洿璇存槑
-
-鏈瀵瑰叆搴撶鐞嗗垪琛ㄦ帴鍙e鍔犺繑鍥炲瓧娈� `sourceOrderNo`锛堟簮鍗曞彿锛夛紝鐢ㄤ簬鍘熸潗鏂欏満鏅睍绀洪噰璐潵婧愬崟鍙枫��
-
-鐢熸晥鏉′欢锛�
-
-- 褰撹姹傚弬鏁� `topParentProductId = 278` 鏃讹紝鍚庣杩斿洖 `sourceOrderNo`銆�
-- 鍏朵粬 `topParentProductId` 鍦烘櫙涓嬶紝璇ュ瓧娈佃繑鍥� `null`锛堟垨涓嶅睍绀猴級銆�
-
-## 2. 瀛楁瀹氫箟
-
-鏂板瀛楁锛�
-
-- `sourceOrderNo`锛歚string`锛屾簮鍗曞彿锛堥噰璐悎鍚屽彿锛夈��
-
-## 3. 鍙栧�艰鍒�
-
-浠呭湪 `topParentProductId = 278` 鏃舵寜鈥滄潵婧愨�濊绠楋細
-
-1. 鏉ユ簮 = `閲囪喘-鍏ュ簱`锛坄recordType = 7`锛�  
-   - 鍏堟寜 `recordId` 鏌ラ噰璐骇鍝佽〃 `sales_ledger_product`锛坄type=2`锛夛紱
-   - 鍐嶉�氳繃 `sales_ledger_product.sales_ledger_id` 鏌ラ噰璐彴璐﹁〃 `purchase_ledger`锛�
-   - 杩斿洖 `purchase_ledger.purchase_contract_number` 浣滀负 `sourceOrderNo`銆�
-   - 鍏煎鍏滃簳锛氳嫢鏈懡涓噰璐骇鍝侀摼璺紝鍒欐寜 `recordId` 鐩存帴鏌� `purchase_ledger.id` 鍙栧崟鍙枫��
-
-2. 鏉ユ簮 = `閲囪喘-璐ㄦ-鍚堟牸鍏ュ簱`锛坄recordType = 10`锛�  
-   - 鍏堟寜 `recordId` 鏌ヨ川妫�琛� `quality_inspect`锛�
-   - 鍐嶉�氳繃 `quality_inspect.purchase_ledger_id` 鏌ラ噰璐彴璐﹁〃 `purchase_ledger`锛�
-   - 杩斿洖 `purchase_ledger.purchase_contract_number` 浣滀负 `sourceOrderNo`銆�
-
-## 4. 杩斿洖绀轰緥
-
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": {
-    "records": [
-      {
-        "id": 1024,
-        "recordType": "7",
-        "productName": "閾滄帓",
-        "model": "T2-30x3",
-        "sourceOrderNo": "CG-2026-00128"
-      },
-      {
-        "id": 1025,
-        "recordType": "10",
-        "productName": "閾滄帓",
-        "model": "T2-30x3",
-        "sourceOrderNo": "CG-2026-00131"
-      }
-    ],
-    "total": 2
-  }
-}
-```
-
-## 5. 鍓嶇鑱旇皟寤鸿
-
-1. 鍒楄〃鍒楁柊澧炩�滄簮鍗曞彿鈥濓紝璇诲彇瀛楁 `sourceOrderNo`銆�
-2. 寤鸿浠呭湪 `topParentProductId = 278` 鐨勯〉闈�/绛涢�夋潯浠朵笅灞曠ず璇ュ垪銆�
-3. 褰� `sourceOrderNo` 涓虹┖鏃跺睍绀� `--`锛岄伩鍏嶇┖鐧姐��
-
-## 6. 鍥炲綊娓呭崟
-
-1. `topParentProductId=278` + `recordType=7`锛氬簲杩斿洖閲囪喘鍚堝悓鍙枫��
-2. `topParentProductId=278` + `recordType=10`锛氬簲杩斿洖閲囪喘鍚堝悓鍙凤紙缁忚川妫�閾捐矾锛夈��
-3. `topParentProductId!=278`锛歚sourceOrderNo` 搴斾负 `null` 鎴栧墠绔笉灞曠ず銆�
-4. 鍘熸湁瀛楁锛坄productName/model/unit/createBy` 绛夛級涓嶅彈褰卞搷銆�
diff --git "a/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243_276\350\241\245\345\205\205.md" "b/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243_276\350\241\245\345\205\205.md"
deleted file mode 100644
index 93d9b25..0000000
--- "a/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243_276\350\241\245\345\205\205.md"
+++ /dev/null
@@ -1,65 +0,0 @@
-# StockInRecord 鍒楄〃婧愬崟鍙峰墠绔仈璋冩枃妗o紙`topParentProductId=276`琛ュ厖锛�
-
-鏇存柊鏃堕棿锛�2026-05-22  
-閫傜敤鎺ュ彛锛歚GET /stockInRecord/listPage`
-
-## 1. 鍙樻洿璇存槑
-
-鍦ㄥ凡鏈� `sourceOrderNo` 鍩虹涓婏紝鏂板 `topParentProductId = 276` 鐨勬簮鍗曞彿婧簮閫昏緫锛�
-
-- 鏍规嵁鈥滄潵婧愶紙recordType锛�+ recordId鈥濇函婧愶紱
-- 浼樺厛杩斿洖閿�鍞崟鍙凤紙閿�鍞悎鍚屽彿锛夛紱
-- 鑻ラ攢鍞崟鍙蜂负绌猴紝鍒欏洖閫�杩斿洖鐢熶骇璁㈠崟鍙凤紱
-- 涓嶈�冭檻鑷畾涔夊叆搴擄紙`recordType=0/9`锛夈��
-
-## 2. 杩斿洖瀛楁
-
-瀛楁鏃犳柊澧烇紝缁х画浣跨敤锛�
-
-- `sourceOrderNo`锛歚string`锛屾簮鍗曞彿銆�
-
-## 3. 276 鍦烘櫙鍙栧�艰鍒�
-
-璇锋眰鍙傛暟婊¤冻 `topParentProductId = 276` 鏃讹細
-
-1. `recordType = 14/15`锛堥攢鍞��璐�-鍚堟牸/涓嶅悎鏍煎叆搴擄級  
-   - `stock_in_record.record_id -> return_sale_product.id -> return_management.shipping_id -> shipping_info.sales_ledger_id -> sales_ledger.sales_contract_no`
-   - 杩斿洖閿�鍞悎鍚屽彿銆�
-
-2. `recordType = 2/5`锛堢敓浜ф姤宸�-鍏ュ簱/鎶ュ簾锛�  
-   - `stock_in_record.record_id -> production_product_main.id -> production_operation_task.production_order_id -> production_order`
-   - 鍏堝彇璇ョ敓浜ц鍗曞叧鑱旈攢鍞悎鍚屽彿锛堢敱鐢熶骇璁″垝鍏宠仈閿�鍞彴璐﹁仛鍚堬級锛�
-   - 閿�鍞悎鍚屽彿涓虹┖鏃讹紝杩斿洖 `production_order.nps_no`銆�
-
-3. `recordType = 6`锛堣川妫�-鍚堟牸鍏ュ簱锛�  
-   - `stock_in_record.record_id -> quality_inspect.id -> quality_inspect.product_main_id -> production_product_main -> production_operation_task -> production_order`
-   - 鍏堝彇閿�鍞悎鍚屽彿锛岀┖鍒欏洖閫� `production_order.nps_no`銆�
-
-4. `recordType = 4/11`锛堜笉鍚堟牸澶勭悊-鎶ュ簾/璁╂鏀捐锛�  
-   - `stock_in_record.record_id -> quality_unqualified.id -> quality_unqualified.inspect_id -> quality_inspect -> production_product_main -> production_operation_task -> production_order`
-   - 鍏堝彇閿�鍞悎鍚屽彿锛岀┖鍒欏洖閫� `production_order.nps_no`銆�
-
-5. `recordType = 20/22`锛堥鏂欓��鏂�/鐢熶骇閫�鏂�-鍚堟牸鍏ュ簱锛�  
-   - `stock_in_record.record_id -> production_order_pick.id -> production_order`
-   - 鍏堝彇閿�鍞悎鍚屽彿锛岀┖鍒欏洖閫� `production_order.nps_no`銆�
-
-6. `recordType = 0/9`锛堣嚜瀹氫箟鍏ュ簱锛�  
-   - 涓嶅弬涓庢函婧愶紝`sourceOrderNo = null`銆�
-
-## 4. 鍏朵粬鍦烘櫙璇存槑
-
-- `topParentProductId = 278` 鐨勯噰璐摼璺簮鍗曞彿閫昏緫淇濇寔涓嶅彉銆�
-- 鍏朵粬 `topParentProductId` 涓嶈Е鍙戞湰娆� 276 瑙勫垯锛宍sourceOrderNo` 涓虹┖銆�
-
-## 5. 鍓嶇鑱旇皟寤鸿
-
-1. 鍦� `topParentProductId=276` 鐨勫垪琛ㄥ満鏅睍绀衡�滄簮鍗曞彿鈥濆垪锛岃鍙� `sourceOrderNo`銆�
-2. 寤鸿绌哄�肩粺涓�灞曠ず `--`銆�
-3. 涓嶉渶瑕佹柊澧炶姹傚弬鏁帮紝娌跨敤鐜版湁 `/stockInRecord/listPage`銆�
-
-## 6. 鍥炲綊娓呭崟
-
-1. `topParentProductId=276` + `recordType=14/15`锛氬簲杩斿洖閿�鍞悎鍚屽彿銆�  
-2. `topParentProductId=276` + `recordType=2/5/6/4/11/20/22`锛氫紭鍏堥攢鍞悎鍚屽彿锛岀己澶辨椂杩斿洖鐢熶骇璁㈠崟鍙枫��  
-3. `topParentProductId=276` + `recordType=0/9`锛歚sourceOrderNo` 涓虹┖銆�  
-4. `topParentProductId=278`锛氫粛鎸夐噰璐摼璺繑鍥為噰璐悎鍚屽彿銆�  
diff --git "a/doc/20260522_\350\264\242\345\212\241\345\212\251\346\211\213\346\217\220\351\227\256\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md" "b/doc/20260522_\350\264\242\345\212\241\345\212\251\346\211\213\346\217\220\351\227\256\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
deleted file mode 100644
index ad4656e..0000000
--- "a/doc/20260522_\350\264\242\345\212\241\345\212\251\346\211\213\346\217\220\351\227\256\344\274\230\345\214\226\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,59 +0,0 @@
-# 璐㈠姟鍔╂墜鎻愰棶浼樺寲鍓嶇鍙樻洿鏂囨。
-
-鏇存柊鏃堕棿锛�2026-05-22  
-閫傜敤妯″潡锛氳储鍔℃櫤鑳藉姪鎵嬶紙`/financial-ai`锛�
-
-## 1. 鑳屾櫙
-
-褰撳墠棣栭〉璐㈠姟鍔╂墜蹇嵎鎻愰棶涓猴細
-
-1. `鐢熸垚鏈懆缁忚惀鍛ㄦ姤`
-2. `涓轰粈涔堝埄娑︿笅闄峘
-3. `鍝釜瀹㈡埛鏈�璧氶挶`
-
-闂鐐癸細
-
-- 绗� 3 鏉¢棶娉曞湪閮ㄥ垎鍦烘櫙涓嬫剰鍥惧懡涓笉绋冲畾锛屽鏄撹蛋鏅�氭枃鏈洖绛旓紝瀵艰嚧鍥捐〃閾炬帴浠ュ師濮� Markdown 鏂囨湰灞曠ず锛堝 `![...](https://local/generate_chart?options=...)`锛夈��
-- 蹇嵎鎻愰棶缂哄皯鏃堕棿鑼冨洿鍜屽垎鏋愮洰鏍囷紝缁撴灉绋冲畾鎬т笌鍙В閲婃�ц緝寮便��
-
-## 2. 鍓嶇蹇嵎鎻愰棶鏂囨浼樺寲锛堝繀鏀癸級
-
-寤鸿灏嗛粯璁や笁鏉″揩鎹锋彁闂皟鏁翠负锛�
-
-1. `鐢熸垚鏈懆缁忚惀鍛ㄦ姤锛堝埄娑︿笌鐜伴噾娴侊級`
-2. `鍒嗘瀽鏈湀鍒╂鼎涓嬮檷鍘熷洜`
-3. `杩�30澶╁摢涓鎴峰埄娑﹁础鐚渶楂榒
-
-璇存槑锛�
-
-- 涓夋潯闂硶鍧囧甫鏃堕棿鑼冨洿鎴栧垎鏋愮洰鏍囷紝鍚庣鍛戒腑鏇寸ǔ瀹氥��
-- 绗� 3 鏉′笌鈥滄渶璧氶挶瀹㈡埛鈥濊涔変竴鑷达紝浣嗏�滃埄娑﹁础鐚渶楂樷�濇洿鏄庣‘锛岄�傚悎鐩存帴椹卞姩鍒╂鼎鍒嗘瀽缁撴灉椤点��
-
-## 3. 涓庡悗绔兘鍔涙槧灏�
-
-| 蹇嵎鎻愰棶 | 棰勬湡鍛戒腑鑳藉姏 | 棰勬湡 `type` |
-| --- | --- | --- |
-| 鐢熸垚鏈懆缁忚惀鍛ㄦ姤锛堝埄娑︿笌鐜伴噾娴侊級 | 缁忚惀鎶ュ憡鐢熸垚 | `financial_operation_report` |
-| 鍒嗘瀽鏈湀鍒╂鼎涓嬮檷鍘熷洜 | 璁㈠崟鍒╂鼎鍒嗘瀽 | `financial_order_profit_analysis` |
-| 杩�30澶╁摢涓鎴峰埄娑﹁础鐚渶楂� | 璁㈠崟鍒╂鼎鍒嗘瀽 | `financial_order_profit_analysis` |
-
-鍚庣宸插悓姝ュ寮衡�滄渶璧氶挶瀹㈡埛/瀹㈡埛鍒╂鼎鏈�楂�/鍒╂鼎璐$尞鏈�楂樷�濈瓑鍚屼箟闂硶璇嗗埆锛屽墠绔寜浠ヤ笂鏂囨鏀归�犲悗鍙洿鎺ヨ仈璋冦��
-
-## 4. 鑱婂ぉ鍐呭娓叉煋鍏滃簳锛堝缓璁敼锛�
-
-閽堝鑱婂ぉ杩斿洖鏂囨湰涓嚭鐜扮殑鍥捐〃 Markdown 閾炬帴锛坄https://local/generate_chart?options=...`锛夛紝寤鸿鍓嶇澧炲姞鍏滃簳澶勭悊锛�
-
-1. 璇嗗埆 Markdown 鍥剧墖璇硶涓殑 `local/generate_chart` 閾炬帴銆�
-2. 瑙f瀽 `options` 鍙傛暟骞惰浆鎹负 ECharts `option` 鍚庢覆鏌撳浘琛ㄧ粍浠躲��
-3. 瑙f瀽澶辫触鏃朵笉灞曠ず鍘熷闀块摼鎺ユ枃鏈紝灞曠ず缁熶竴绌烘�佹彁绀恒��
-
-## 5. 鑱旇皟鍥炲綊娓呭崟
-
-1. 鐐瑰嚮蹇嵎鎻愰棶 `鐢熸垚鏈懆缁忚惀鍛ㄦ姤锛堝埄娑︿笌鐜伴噾娴侊級`  
-   - 鏍¢獙杩斿洖 `type=financial_operation_report`锛屽苟姝e父娓叉煋鎽樿/寤鸿/鍥捐〃銆�
-2. 鐐瑰嚮蹇嵎鎻愰棶 `鍒嗘瀽鏈湀鍒╂鼎涓嬮檷鍘熷洜`  
-   - 鏍¢獙杩斿洖 `type=financial_order_profit_analysis`锛屽苟灞曠ず浜忔崯璁㈠崟涓庡鎴峰埄娑︽帓琛屻��
-3. 鐐瑰嚮蹇嵎鎻愰棶 `杩�30澶╁摢涓鎴峰埄娑﹁础鐚渶楂榒  
-   - 鏍¢獙杩斿洖 `type=financial_order_profit_analysis`锛宍summary.topCustomerByProfit` 鏈夊�笺��
-4. 鎵嬪伐杈撳叆 `鍝釜瀹㈡埛鏈�璧氶挶`銆乣鍝釜瀹㈡埛鍒╂鼎鏈�楂榒  
-   - 鏍¢獙浠嶅懡涓� `financial_order_profit_analysis`锛屼笉鍐嶅嚭鐜板師濮嬪浘琛� Markdown 閾炬帴鐩村嚭銆�
diff --git "a/doc/20260522_\350\264\242\345\212\241\345\215\207\347\272\247AI\346\250\241\345\235\227\345\211\215\347\253\257\345\217\230\346\233\264\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260522_\350\264\242\345\212\241\345\215\207\347\272\247AI\346\250\241\345\235\227\345\211\215\347\253\257\345\217\230\346\233\264\350\201\224\350\260\203\346\226\207\346\241\243.md"
deleted file mode 100644
index e011374..0000000
--- "a/doc/20260522_\350\264\242\345\212\241\345\215\207\347\272\247AI\346\250\241\345\235\227\345\211\215\347\253\257\345\217\230\346\233\264\350\201\224\350\260\203\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,150 +0,0 @@
-# 璐㈠姟妯″潡鍗囩骇鍚� AI 妯″潡鍓嶇鍙樻洿鑱旇皟鏂囨。锛堥噰璐�/閿�鍞�/鐢熶骇/寰呭姙锛�
-
-鏇存柊鏃ユ湡锛�2026-05-22  
-閫傜敤鑼冨洿锛歚/sales-ai`銆乣/purchase-ai`銆乣/manufacturing-ai`銆乣/xiaozhi`锛堝鎵瑰緟鍔烇級
-
-## 1. 鍙樻洿鎬昏
-
-| 妯″潡 | 瀵瑰鎺ュ彛 | 鏄惁闇�瑕佸墠绔敼閫� | 缁撹 |
-| --- | --- | --- | --- |
-| 閿�鍞� AI | `POST /sales-ai/chat` | 鏄� | 璐㈠姟鍙e緞鍒囨崲鍒版柊鏀舵妯″瀷锛岄儴鍒� `type` 鐨勫瓧娈佃涔夊彉鍖� |
-| 閲囪喘 AI | `POST /purchase-ai/chat` | 鏄� | 浠樻/鍙戠エ/寰呬粯娆捐绠楀垏鎹㈠埌鏂拌储鍔¢摼璺紝缁熻鍊间粠鍗犱綅鏀逛负鐪熷疄鍊� |
-| 鐢熶骇 AI | `POST /manufacturing-ai/chat` | 鍚� | 宸叉牳鏌ワ紝鏃犳棫璐㈠姟閫昏緫渚濊禆锛屾棤瀛楁鍙樻洿 |
-| 寰呭姙 AI | `POST /xiaozhi/chat` | 鍚� | 宸叉牳鏌ワ紝鏃犳棫璐㈠姟閫昏緫渚濊禆锛屾棤瀛楁鍙樻洿 |
-
-## 2. 閿�鍞� AI 鍙樻洿锛坄/sales-ai/chat`锛�
-
-### 2.1 `type = sales_return_list`锛堥攢鍞��娆�/鍥炴璁板綍锛�
-
-褰撳墠杩斿洖鏁版嵁鏉ユ簮缁熶竴涓烘柊璐㈠姟琛� `account_sales_collection`锛屼笉鍐嶈蛋鏃ф敹娆鹃��璐ч�昏緫銆�
-
-`data.items[]` 鍏抽敭瀛楁锛�
-
-| 瀛楁 | 绫诲瀷 | 璇存槑 |
-| --- | --- | --- |
-| id | number | 鏀舵璁板綍ID |
-| refundId | string | 鏄犲皠 `collectionNumber`锛屽墠绔彲缁х画浣滀负鈥滈��娆�/鍥炴鍗曞彿鈥濆睍绀� |
-| collectionNumber | string | 鏀舵鍗曞彿 |
-| paymentMethod | string | 鏀舵鏂瑰紡 |
-| actualAmount | number | 鏀舵閲戦锛堜笌 `collectionAmount` 鍚屽�硷級 |
-| collectionAmount | number | 鏀舵閲戦锛堟帹鑽愪富灞曠ず瀛楁锛� |
-| customerId | number | 瀹㈡埛ID |
-| remark | string | 澶囨敞 |
-| createTime | string | 鏀舵鏃ユ湡锛坹yyy-MM-dd锛� |
-
-`summary` 澧為噺鍏虫敞锛�
-- `returnAmount`锛氭椂闂磋寖鍥村唴閲戦姹囨�伙紙鎸� `collectionAmount` 缁熻锛�
-
-### 2.2 `type = sales_customer_interaction_list`锛堝鎴峰線鏉ワ級
-
-褰撳墠杩斿洖鍩轰簬鏂伴摼璺細
-`account_sales_collection.stock_out_record_ids -> stock_out_record(record_type=13) -> shipping_info -> sales_ledger`
-
-杩斿洖绾﹀畾锛�
-- 鏃犳暟鎹椂锛歚description = "no_customer_interactions"`
-- 鏈夋暟鎹椂锛歚description = "ok"`
-
-`summary` 鍏抽敭瀛楁锛�
-- `totalReceiptAmount`
-- `customerCount`
-
-`data.items[]` 鍏抽敭瀛楁锛�
-- `salesLedgerId`
-- `salesContractNo`
-- `customerName`
-- `projectName`
-- `receiptPaymentDate`
-- `receiptPaymentAmount`
-- `receiptPaymentType`
-- `collectionNumber`
-- `registrant`
-- `remark`
-
-### 2.3 `type = sales_ledger_list`锛堥攢鍞彴璐︼級
-
-瀛楁缁撴瀯涓嶅彉锛屼絾閲戦鍙e緞宸插垏鎹細
-- `receivedAmount` 鐢辨柊鏀舵妯″瀷姹囨�诲緱鍒帮紱
-- `pendingAmount = max(0, invoicedAmount - receivedAmount)`锛�
-- 鑻ユ敹娆捐褰曟湭鏄惧紡鍏宠仈鍙拌处锛屽垯鎸夊鎴风淮搴﹀厹搴曞綊闆嗐��
-
-鍓嶇鏀归�犲缓璁細
-- 涓嶆敼瀛楁鍚嶏紱
-- 閲嶇偣鍥炲綊鈥滃凡鏀堕噾棰�/寰呭洖娆鹃噾棰濃�濇槸鍚︿笌璐㈠姟鍙拌处涓�鑷淬��
-
-## 3. 閲囪喘 AI 鍙樻洿锛坄/purchase-ai/chat`锛�
-
-### 3.1 `type = purchase_stats`锛堥噰璐粺璁★級
-
-浠ヤ笅瀛楁宸蹭粠鍗犱綅鍊兼敼涓虹湡瀹炵粺璁″�硷細
-- `summary.paymentCount`
-- `summary.invoiceCount`
-- `summary.paymentAmount`
-- `summary.invoiceAmount`
-
-鍙戠エ閲戦鍙e緞锛�
-- 浼樺厛 `taxInclusivePrice`
-- 鑻ヤ负绌�/0锛屽垯浣跨敤 `taxExclusivelPrice + taxPrice`
-
-### 3.2 `type = purchase_pending_payment_list`锛堝緟浠樻閲囪喘鍗曪級
-
-鏍稿績璁$畻宸插垏鎹㈠埌鏂拌储鍔¢摼璺細
-
-`account_purchase_payment -> account_payment_application -> stock_in_record -> (purchase_ledger / quality_inspect) -> purchase_ledger_id`
-
-鏄犲皠瑙勫垯锛�
-1. `stock_in_record.record_type = 7`锛歚record_id` 鐩存帴瑙嗕负 `purchase_ledger_id`
-2. `stock_in_record.record_type = 10`锛氶�氳繃 `quality_inspect.id = record_id` 鍙� `quality_inspect.purchase_ledger_id`
-
-閲戦瀛楁鍙e緞锛�
-- `paidAmount`锛氭柊閾捐矾绱宸蹭粯娆鹃噾棰�
-- `pendingAmount = contractAmount - paidAmount`锛�<=0 鐨勮褰曚笉杩斿洖锛�
-
-`summary` 鍏抽敭瀛楁锛堝潎涓虹湡瀹炲�硷級锛�
-- `pendingOrderCount`
-- `totalContractAmount`
-- `totalPaidAmount`
-- `totalPendingAmount`
-
-### 3.3 鏁版嵁娓呮礂淇
-
-宸蹭慨澶� `record_type` 甯︾┖鏍煎鑷寸殑鏄犲皠涓㈠け闂锛堝悗绔粺涓� `trim()` 鍚庡啀鍒ゆ柇 `7/10`锛夈��
-
-## 4. 鐢熶骇 AI / 寰呭姙 AI 鏍告煡缁撹
-
-宸叉牳鏌ヤ互涓嬫ā鍧椾唬鐮侊紝鏈彂鐜版棫璐㈠姟閫昏緫鑰﹀悎鐐癸細
-- `ManufacturingAgentTools`锛堢敓浜э級
-- `ApproveTodoTools`锛堝緟鍔炲鎵癸級
-
-缁撹锛�
-- 瀵瑰 `type` 涓庡瓧娈电粨鏋勬棤鍙樻洿锛�
-- 鍓嶇鏃犻渶鍋氬吋瀹规敼閫狅紝浠呴渶鍋氫竴娆″洖褰掗獙璇併��
-
-## 5. 鍓嶇鑱旇皟瑕佺偣
-
-1. `/sales-ai/chat`銆乣/purchase-ai/chat` 缁х画鎸� SSE 鏂囨湰娴佹嫾鎺ュ悗鍋� JSON 瑙f瀽銆�  
-2. 鎸� `type` 璺敱娓叉煋锛屼笉瑕佷粎渚濊禆 `description` 鏂囨銆�  
-3. `sales_customer_interaction_list` 闇�鍏煎 `description` 鏋氫妇锛歚ok` / `no_customer_interactions`銆�  
-4. `sales_return_list` 閲戦灞曠ず缁熶竴鐢� `collectionAmount`锛坄actualAmount` 淇濈暀鍏煎锛夈��  
-5. `purchase_pending_payment_list` 鐨勬眹鎬诲崱鐗囪鐩存帴璇诲彇 `summary.totalPendingAmount` 绛夊瓧娈碉紝涓嶅啀鍓嶇浜屾浼扮畻銆�  
-
-## 6. 鍥炲綊娓呭崟锛堝缓璁級
-
-### 閿�鍞�
-1. 鎻愰棶锛氣�滆繎30澶╁摢涓鍗曞洖娆炬渶灏戔��  
-   - 鏍¢獙 `sales_ledger_list` 鐨� `receivedAmount/pendingAmount`銆�  
-2. 鎻愰棶锛氣�滄煡璇㈡湰鏈堥攢鍞��娆锯��  
-   - 鏍¢獙 `sales_return_list` 鐨� `collectionNumber/collectionAmount/returnAmount`銆�  
-3. 鎻愰棶锛氣�滄煡璇㈡湰鏈堝鎴峰線鏉モ��  
-   - 鏍¢獙 `sales_customer_interaction_list` 鐨� `totalReceiptAmount/customerCount`銆�  
-
-### 閲囪喘
-1. 鎻愰棶锛氣�滅粺璁℃湰鏈堥噰璐暟鎹��  
-   - 鏍¢獙 `purchase_stats` 鐨� `paymentCount/invoiceCount/paymentAmount/invoiceAmount` 闈炲浐瀹�0銆�  
-2. 鎻愰棶锛氣�滃垪鍑哄緟浠樻閲囪喘鍗曗��  
-   - 鏍¢獙 `purchase_pending_payment_list` 鐨� `paidAmount/pendingAmount` 涓庤储鍔″疄闄呬竴鑷淬��  
-
-### 鐢熶骇/寰呭姙
-1. 鐢熶骇鎻愰棶锛氣�滄煡璇㈡湰鍛ㄨ澶囩淮淇褰曗��  
-2. 寰呭姙鎻愰棶锛氣�滄煡璇㈡垜鐨勫緟瀹℃壒鍒楄〃鈥�  
-   - 鏍¢獙杩斿洖缁撴瀯涓庡崌绾у墠涓�鑷达紙鏃犲瓧娈电牬鍧忥級銆�
-
diff --git "a/doc/20260522_\351\207\207\350\264\255\345\217\260\350\264\246\345\205\245\345\272\223\347\212\266\346\200\201_\351\224\200\345\224\256\344\272\247\345\223\201\345\205\245\345\272\223\345\256\241\346\240\270\347\212\266\346\200\201\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260522_\351\207\207\350\264\255\345\217\260\350\264\246\345\205\245\345\272\223\347\212\266\346\200\201_\351\224\200\345\224\256\344\272\247\345\223\201\345\205\245\345\272\223\345\256\241\346\240\270\347\212\266\346\200\201\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
deleted file mode 100644
index ae212fc..0000000
--- "a/doc/20260522_\351\207\207\350\264\255\345\217\260\350\264\246\345\205\245\345\272\223\347\212\266\346\200\201_\351\224\200\345\224\256\344\272\247\345\223\201\345\205\245\345\272\223\345\256\241\346\240\270\347\212\266\346\200\201\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,127 +0,0 @@
-# 閲囪喘鍏ュ簱鐘舵�佸墠绔仈璋冩枃妗�
-鏇存柊鏃堕棿锛�2026-05-22  
-閫傜敤鐗堟湰锛氭湰娆″悗绔彉鏇村悗
-
-## 1. 鍙樻洿鑼冨洿
-
-1. `GET /purchaseLedger/listPage`  
-   - 鏂板鏌ヨ鏉′欢锛歚stockInStatus`锛堝叆搴撶姸鎬侊級
-   - 鏂板杩斿洖瀛楁锛歚stockInStatus`锛堝叆搴撶姸鎬侊級
-2. `GET /salesLedgerProduct/list`  
-   - 鏂板杩斿洖瀛楁锛歚stockInApprovalStatus`锛堟瘡涓骇鍝佺殑鍏ュ簱瀹℃牳鐘舵�侊級
-
----
-
-## 2. 鍏ュ簱鐘舵�佹灇涓撅紙涓ゆ帴鍙d竴鑷达級
-
-- `寰呭叆搴揱
-- `鍏ュ簱涓璥
-- `瀹屽叏鍏ュ簱`
-
-璇存槑锛氬墠绔瓫閫夊�艰鐩存帴浣跨敤浠ヤ笂涓枃鏋氫妇鍊笺��
-
----
-
-## 3. 鎺ュ彛涓�锛歚GET /purchaseLedger/listPage`
-
-### 3.1 鏂板璇锋眰鍙傛暟
-
-- `stockInStatus`锛歚string`锛屽彲閫�  
-  鍙紶鍊硷細`寰呭叆搴揱 / `鍏ュ簱涓璥 / `瀹屽叏鍏ュ簱`
-
-### 3.2 鏂板杩斿洖瀛楁
-
-- `stockInStatus`锛歚string`锛岄噰璐彴璐︾淮搴﹀叆搴撶姸鎬�
-
-### 3.3 鐘舵�佽绠楄鍒欙紙閲囪喘鍙拌处缁村害锛�
-
-浠ヨ閲囪喘鍙拌处涓� `sales_ledger_product.type = 2` 鐨勯噰璐骇鍝佷负璁$畻鑼冨洿锛�
-
-1. 鍏ㄩ儴浜у搧閮借揪鍒扳�滃畬鍏ㄥ叆搴撯�� => 鍙拌处鐘舵�� `瀹屽叏鍏ュ簱`
-2. 鑷冲皯鏈変竴涓骇鍝佸瓨鍦ㄢ�滃鏍搁�氳繃鍏ュ簱鈥濓紝浣嗘湭鍏ㄩ儴瀹屽叏鍏ュ簱 => 鍙拌处鐘舵�� `鍏ュ簱涓璥
-3. 娌℃湁浠讳綍浜у搧瀛樺湪鈥滃鏍搁�氳繃鍏ュ簱鈥� => 鍙拌处鐘舵�� `寰呭叆搴揱
-
-鈥滃鏍搁�氳繃鍏ュ簱鈥濈粺璁″彛寰勶細`stock_in_record.approval_status = 1`锛屽苟鎸変互涓嬫潵婧愭函婧愶細
-- `record_type = 7`锛堥噰璐�-鍏ュ簱锛夛細鎸夐噰璐彴璐�+浜у搧鍏宠仈缁熻
-- `record_type = 10`锛堥噰璐�-璐ㄦ-鍚堟牸鍏ュ簱锛夛細閫氳繃 `quality_inspect` 鍥炴函鍒伴噰璐彴璐�+浜у搧缁熻
-
-### 3.4 杩斿洖绀轰緥锛堣妭閫夛級
-
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": {
-    "records": [
-      {
-        "id": 1201,
-        "purchaseContractNumber": "CG20260522001",
-        "supplierName": "XX渚涘簲鍟�",
-        "stockInStatus": "鍏ュ簱涓�"
-      }
-    ],
-    "total": 1
-  }
-}
-```
-
----
-
-## 4. 鎺ュ彛浜岋細`GET /salesLedgerProduct/list`
-
-### 4.1 鏂板杩斿洖瀛楁
-
-- `stockInApprovalStatus`锛歚string`锛屽綋鍓嶄骇鍝佽鐨勫叆搴撳鏍哥姸鎬�
-
-### 4.2 鐘舵�佽绠楄鍒欙紙浜у搧缁村害锛�
-
-浠呭綋浜у搧 `type = 2`锛堥噰璐骇鍝侊級鏃惰绠楀苟杩斿洖锛�
-
-1. 瀹℃牳閫氳繃鍏ュ簱鏁伴噺 `<= 0` => `寰呭叆搴揱
-2. 瀹℃牳閫氳繃鍏ュ簱鏁伴噺 `>= 浜у搧閲囪喘鏁伴噺` => `瀹屽叏鍏ュ簱`
-3. 鍏朵粬鎯呭喌 => `鍏ュ簱涓璥
-
-鍏朵腑鈥滃鏍搁�氳繃鍏ュ簱鏁伴噺鈥濈粺璁″悓鏍峰熀浜庯細
-- `stock_in_record.approval_status = 1`
-- 鏉ユ簮 `record_type = 7 / 10` 鐨勬函婧愬叧鑱旈�昏緫
-
-`type != 2` 鐨勪骇鍝侊紝璇ュ瓧娈佃繑鍥� `null`銆�
-
-### 4.3 杩斿洖绀轰緥锛堣妭閫夛級
-
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": [
-    {
-      "id": 5566,
-      "type": 2,
-      "productCategory": "閾滄潗",
-      "specificationModel": "T2-30x3",
-      "quantity": 100,
-      "stockInApprovalStatus": "寰呭叆搴�"
-    }
-  ]
-}
-```
-
----
-
-## 5. 鍓嶇鏀归�犲缓璁�
-
-1. 閲囪喘鍙拌处鍒楄〃鏂板鈥滃叆搴撶姸鎬佲�濈瓫閫夐」锛屽�煎浐瀹氾細`寰呭叆搴�/鍏ュ簱涓�/瀹屽叏鍏ュ簱`銆�
-2. 閲囪喘鍙拌处鍒楄〃鏂板鈥滃叆搴撶姸鎬佲�濆垪锛屽睍绀� `stockInStatus`銆�
-3. 閲囪喘浜у搧鍒楄〃鏂板鈥滃叆搴撳鏍哥姸鎬佲�濆垪锛屽睍绀� `stockInApprovalStatus`銆�
-4. 绌哄�硷紙濡� `type != 2`锛夊缓璁睍绀轰负 `--`銆�
-
----
-
-## 6. 鑱旇皟妫�鏌ユ竻鍗�
-
-1. `/purchaseLedger/listPage` 涓嶄紶 `stockInStatus`锛氬簲姝e父杩斿洖鍏ㄩ儴鏁版嵁锛屽苟甯� `stockInStatus`銆�
-2. `/purchaseLedger/listPage?stockInStatus=寰呭叆搴揱锛氫粎杩斿洖寰呭叆搴撳彴璐︺��
-3. `/purchaseLedger/listPage?stockInStatus=鍏ュ簱涓璥锛氫粎杩斿洖鍏ュ簱涓彴璐︺��
-4. `/purchaseLedger/listPage?stockInStatus=瀹屽叏鍏ュ簱`锛氫粎杩斿洖瀹屽叏鍏ュ簱鍙拌处銆�
-5. `/salesLedgerProduct/list` 鍦ㄩ噰璐骇鍝侊紙`type=2`锛変笅杩斿洖 `stockInApprovalStatus`銆�
-6. `/salesLedgerProduct/list` 鍦ㄩ潪閲囪喘浜у搧锛坄type!=2`锛変笅 `stockInApprovalStatus` 涓� `null`銆�
diff --git "a/doc/20260522_\351\246\226\351\241\265\350\264\242\345\212\241\346\216\245\345\217\243\345\215\207\347\272\247\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md" "b/doc/20260522_\351\246\226\351\241\265\350\264\242\345\212\241\346\216\245\345\217\243\345\215\207\347\272\247\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
deleted file mode 100644
index 532eba7..0000000
--- "a/doc/20260522_\351\246\226\351\241\265\350\264\242\345\212\241\346\216\245\345\217\243\345\215\207\347\272\247\345\211\215\347\253\257\345\217\230\346\233\264\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,120 +0,0 @@
-# 棣栭〉璐㈠姟鎺ュ彛鍗囩骇鍓嶇鍙樻洿鏂囨。
-
-鏇存柊鏃堕棿锛�2026-05-22  
-閫傜敤妯″潡锛氶椤碉紙`/home`锛�
-
-## 1. 鍙樻洿姒傝
-
-鏈涓� **鍏煎寮忓崌绾�**锛屾帴鍙� URL銆佽姹傚弬鏁般�佽繑鍥炲瓧娈典繚鎸佷笉鍙樸��  
-涓昏鍙樻洿鏄椤佃储鍔℃暟鎹粠鍗犱綅/鍗婃垚鍝侀�昏緫锛屽垏鎹负鎸夎储鍔$湡瀹炴暟鎹彛寰勮绠椼��
-
-娑夊強鎺ュ彛锛�
-
-1. `GET /home/statisticsReceivablePayable`
-2. `GET /home/monthlyIncome`
-3. `GET /home/monthlyExpenditure`
-
-## 2. 鍙傛暟璇存槑锛堟棤鏂板锛�
-
-### 2.1 `GET /home/statisticsReceivablePayable`
-
-- `type`锛歚1` 鏈懆锛宍2` 鏈湀锛宍3` 鏈搴︼紙榛樿 `1`锛�
-
-### 2.2 `GET /home/monthlyIncome`
-
-- 鏃犲弬鏁�
-
-### 2.3 `GET /home/monthlyExpenditure`
-
-- 鏃犲弬鏁�
-
-## 3. 杩斿洖瀛楁鍙e緞鍙樻洿
-
-### 3.1 搴旀敹搴斾粯缁熻 `statisticsReceivablePayable`
-
-杩斿洖瀛楁涓嶅彉锛�
-
-- `receivableMoney`
-- `payableMoney`
-- `advanceMoney`
-- `prepayMoney`
-
-鏂板彛寰勶細
-
-- `receivableMoney = max(閿�鍞悎鍚岄噾棰濆悎璁� - 鏀舵閲戦鍚堣, 0)`
-- `payableMoney = max(閲囪喘鍚堝悓閲戦鍚堣 - 浠樻閲戦鍚堣, 0)`
-- `advanceMoney = 鏀舵閲戦鍚堣`
-- `prepayMoney = 浠樻閲戦鍚堣`
-
-浠ヤ笂閲戦鍧囨寜 `type` 瀵瑰簲鏃堕棿鑼冨洿缁熻锛屼繚鐣欎袱浣嶅皬鏁般��
-
-杩斿洖绀轰緥锛�
-
-```json
-{
-  "receivableMoney": 128000.00,
-  "payableMoney": 76000.00,
-  "advanceMoney": 42000.00,
-  "prepayMoney": 31000.00
-}
-```
-
-### 3.2 鏈堝害鏀跺叆 `monthlyIncome`
-
-杩斿洖瀛楁涓嶅彉锛�
-
-- `monthlyIncome`
-- `collectionRate`
-- `overdueNum`
-- `overdueRate`
-
-鏂板彛寰勶細
-
-- `monthlyIncome`锛氬綋鏈堟敹娆惧悎璁�
-- `collectionRate`锛歚褰撴湀鏀舵鍚堣 / 褰撴湀閿�鍞悎鍚岄噾棰濆悎璁� * 100`
-- `overdueNum`锛氬巻鍙插簲鏀跺璐﹀崟锛坄account_statement.account_type=1`锛変腑锛屾棭浜庡綋鏈堜笖 `closing_balance > 0` 鐨勬暟閲�
-- `overdueRate`锛歚overdueNum / 鍘嗗彶搴旀敹瀵硅处鍗曟�绘暟 * 100`
-
-杩斿洖绀轰緥锛�
-
-```json
-{
-  "monthlyIncome": 89500.00,
-  "collectionRate": "62.80",
-  "overdueNum": 4,
-  "overdueRate": "18.18"
-}
-```
-
-### 3.3 鏈堝害鏀嚭 `monthlyExpenditure`
-
-杩斿洖瀛楁涓嶅彉锛�
-
-- `monthlyExpenditure`
-- `paymentRate`
-- `grossProfit`
-- `profitMarginRate`
-
-鏂板彛寰勶細
-
-- `monthlyExpenditure`锛氬綋鏈堜粯娆惧悎璁�
-- `paymentRate`锛歚褰撴湀浠樻鍚堣 / 褰撴湀閲囪喘鍚堝悓閲戦鍚堣 * 100`
-- `grossProfit`锛歚褰撴湀鏀舵鍚堣 - 褰撴湀浠樻鍚堣`
-- `profitMarginRate`锛歚grossProfit / 褰撴湀鏀舵鍚堣 * 100`
-
-杩斿洖绀轰緥锛�
-
-```json
-{
-  "monthlyExpenditure": 73400.00,
-  "paymentRate": "57.34",
-  "grossProfit": 16100.00,
-  "profitMarginRate": "17.99"
-}
-```
-
-## 4. 鍓嶇鑱旇皟璇存槑
-
-1. 鍓嶇瀛楁鏄犲皠鏃犻渶璋冩暣锛屽彲鐩存帴娌跨敤鐜版湁瑙f瀽閫昏緫銆�  
-2. 鐧惧垎姣斿瓧娈典粛涓轰笉甯� `%` 鐨勫瓧绗︿覆锛屽墠绔闇�灞曠ず `%` 璇风户缁墠绔嫾鎺ャ��  
-3. 鏈鍚庣杩斿洖鍊肩敱鐪熷疄璐㈠姟鏁版嵁椹卞姩锛屽缓璁噸鐐瑰洖褰掑崱鐗囨眹鎬讳笌瓒嬪娍鍥剧殑鏁板�艰仈鍔ㄣ��  
diff --git "a/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql" "b/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql"
deleted file mode 100644
index 0e0c5ce..0000000
--- "a/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql"
+++ /dev/null
@@ -1,3 +0,0 @@
-ALTER TABLE approve_process
-    ADD COLUMN start_date_time datetime DEFAULT NULL COMMENT '鍑哄樊寮�濮嬫椂闂�',
-    ADD COLUMN end_date_time   datetime DEFAULT NULL COMMENT '鍑哄樊缁撴潫鏃堕棿';
diff --git a/doc/20260615_add_plan_person_and_executor_to_routing_operation.sql b/doc/20260615_add_plan_person_and_executor_to_routing_operation.sql
deleted file mode 100644
index b98e8ca..0000000
--- a/doc/20260615_add_plan_person_and_executor_to_routing_operation.sql
+++ /dev/null
@@ -1,8 +0,0 @@
-# 鐢熶骇宸ュ簭鏂板璁″垝浜哄憳鍜岃鍒掓墽琛屼汉鍛樺瓧娈�
-ALTER TABLE technology_routing_operation
-    ADD plan_person bigint NULL COMMENT '璁″垝浜哄憳ID',
-    ADD executor bigint NULL COMMENT '璁″垝鎵ц浜哄憳ID';
-
-ALTER TABLE production_order_routing_operation
-    ADD plan_person bigint NULL COMMENT '璁″垝浜哄憳ID',
-    ADD executor bigint NULL COMMENT '璁″垝鎵ц浜哄憳ID';
diff --git a/doc/alter_table_measuring_instrument_ledger.sql b/doc/alter_table_measuring_instrument_ledger.sql
deleted file mode 100644
index 2c036fe..0000000
--- a/doc/alter_table_measuring_instrument_ledger.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-ALTER TABLE measuring_instrument_ledger
-    ADD COLUMN dept_id BIGINT COMMENT '閮ㄩ棬ID',
-    ADD COLUMN installation_location VARCHAR(255) COMMENT '瀹夎浣嶇疆',
-    ADD COLUMN unit VARCHAR(100) COMMENT '妫�瀹氬崟浣�',
-    ADD COLUMN cycle INT COMMENT '妫�瀹氬懆鏈燂紙澶╋級';
diff --git a/doc/create_table_customer_user.sql b/doc/create_table_customer_user.sql
deleted file mode 100644
index dacbfb4..0000000
--- a/doc/create_table_customer_user.sql
+++ /dev/null
@@ -1,10 +0,0 @@
-drop table if exists customer_user;
-create table customer_user
-(
-    id          bigint auto_increment
-        primary key,
-    customer_id bigint not null default 0 comment '瀹㈡埛id',
-    user_id     bigint not null default 0 comment '鐢ㄦ埛id',
-    create_time datetime null comment '褰曞叆鏃堕棿',
-    tenant_id   bigint not null default 0 comment '绉熸埛id'
-);
diff --git a/doc/create_table_process_route.sql b/doc/create_table_process_route.sql
deleted file mode 100644
index 4a453f8..0000000
--- a/doc/create_table_process_route.sql
+++ /dev/null
@@ -1,11 +0,0 @@
-# 宸ヨ壓璺嚎
-drop table if exists process_route;
-create table process_route
-(
-    id          bigint auto_increment primary key,
-    product_model_id  bigint       not null default 0 comment '浜у搧id',
-    description varchar(255) not null default '' comment '鎻忚堪',
-    tenant_id   bigint       not null comment '绉熸埛id',
-    create_time datetime     null comment '褰曞叆鏃堕棿',
-    update_time datetime     null comment '鏇存柊鏃堕棿'
-);
diff --git a/doc/create_table_process_route_item.sql b/doc/create_table_process_route_item.sql
deleted file mode 100644
index a1efff9..0000000
--- a/doc/create_table_process_route_item.sql
+++ /dev/null
@@ -1,62 +0,0 @@
-# 宸ヨ壓璺嚎椤圭洰
-drop table if exists process_route_item;
-create table process_route_item
-(
-    id               bigint auto_increment primary key,
-    route_id         bigint   not null default 0 comment '宸ヨ壓璺嚎id',
-    product_model_id bigint   not null default 0 comment '浜у搧id',
-    process_id       bigint   not null default 0 comment '宸ュ簭id',
-    tenant_id        bigint   not null comment '绉熸埛id',
-    create_time      datetime null comment '褰曞叆鏃堕棿',
-    update_time      datetime null comment '鏇存柊鏃堕棿'
-);
-
-# 鐢熶骇宸ヨ壓璺嚎椤圭洰
-drop table if exists product_process_route_item;
-create table product_process_route_item
-(
-    id               bigint auto_increment primary key,
-    route_id         bigint   not null default 0 comment '宸ヨ壓璺嚎id',
-    product_model_id bigint   not null default 0 comment '閿�鍞彴璐︿骇鍝乮d',
-    process_id       bigint   not null default 0 comment '宸ュ簭id',
-    tenant_id        bigint   not null comment '绉熸埛id',
-    create_time      datetime null comment '褰曞叆鏃堕棿',
-    update_time      datetime null comment '鏇存柊鏃堕棿'
-);
-
-# 鐢熶骇璁㈠崟
-drop table if exists product_order;
-create table product_order
-(
-    id               bigint auto_increment primary key,
-    sales_ledger_id  bigint   not null default 0 comment '閿�鍞彴璐d',
-    product_model_id bigint   not null default 0 comment '閿�鍞彴璐︿骇鍝乮d',
-    route_id         bigint   not null default 0 comment '宸ヨ壓璺嚎id',
-    nps_no          varchar(255) not null default '' comment '鐢熶骇璁㈠崟鍙�',
-    status            int not null default 0 comment '鐘舵�� 0 寰呯‘璁� 1 宸茬‘璁�',
-    tenant_id        bigint   not null comment '绉熸埛id',
-    create_time      datetime null comment '褰曞叆鏃堕棿',
-    update_time      datetime null comment '鏇存柊鏃堕棿'
-);
-alter table quality_inspect
-    add purchase_ledger_id int null comment '閲囪喘璁㈠崟id';
-
-# 鐢熶骇宸ュ崟
-drop table if exists product_work_order;
-create table product_work_order
-(
-    id               bigint auto_increment primary key,
-    product_process_route_item_id bigint   not null default 0 comment '宸ヨ壓璺嚎椤圭洰id',
-    create_time      datetime null comment '褰曞叆鏃堕棿',
-    update_time      datetime null comment '鏇存柊鏃堕棿',
-    work_order_no    varchar(255) not null default '' comment '宸ュ崟缂栧彿',
-    plan_start_time  datetime null comment '璁″垝寮�濮嬫椂闂�',
-    plan_end_time    datetime null comment '璁″垝缁撴潫鏃堕棿',
-    actual_start_time  datetime null comment '瀹為檯寮�濮嬫椂闂�',
-    actual_end_time    datetime null comment '瀹為檯缁撴潫鏃堕棿',
-    status           int not null default 0 comment '鐘舵��  1 寰呯‘璁�  2 寰呯敓浜� 3鐢熶骇涓� 4宸茬敓浜� ',
-    tenant_id        bigint   not null comment '绉熸埛id'
-);
-
-alter table product_process
-    add salary_quota numeric(16,3) null comment '宸ヨ祫瀹氶';
\ No newline at end of file
diff --git a/doc/create_table_product_process.sql b/doc/create_table_product_process.sql
deleted file mode 100644
index 6242614..0000000
--- a/doc/create_table_product_process.sql
+++ /dev/null
@@ -1,13 +0,0 @@
-# 宸ュ簭
-drop table if exists product_process;
-create table product_process
-(
-    id          bigint auto_increment
-        primary key,
-    create_time datetime null comment '褰曞叆鏃堕棿',
-    update_time datetime null comment '鏇存柊鏃堕棿',
-    name        varchar(255) not null default '' comment '宸ヨ壓鍚嶇О',
-    no          varchar(255) not null default '' comment '宸ヨ壓缂栧彿',
-    remark      varchar(255) not null default '' comment '澶囨敞',
-    tenant_id   bigint       not null default 0 comment '绉熸埛id'
-);
\ No newline at end of file
diff --git a/doc/create_table_product_structure.sql b/doc/create_table_product_structure.sql
deleted file mode 100644
index 83af495..0000000
--- a/doc/create_table_product_structure.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-# 浜у搧缁撴瀯
-drop table if exists product_structure;
-create table product_structure
-(
-    id                 bigint auto_increment
-        primary key,
-    product_model_id         bigint         not null comment '浜у搧id',
-    process_id         bigint         not null comment '宸ュ簭id',
-    unit_quantity      numeric(16, 4) not null comment '鍗曚綅浜у嚭闇�瑕佹暟閲�',
-    demanded_quantity  numeric(16, 4) not null comment '闇�姹傛暟閲�',
-    unit               varchar(255)   not null comment '鍗曚綅',
-    disk_quantity      numeric(16, 4) not null comment '鐩樻暟閲�',
-    tenant_id          bigint         not null comment '绉熸埛id'
-);
-alter table product_structure
-    add parent_id bigint null comment '鐖秈d';
diff --git a/doc/create_table_production_product_main.sql b/doc/create_table_production_product_main.sql
deleted file mode 100644
index 18fb92d..0000000
--- a/doc/create_table_production_product_main.sql
+++ /dev/null
@@ -1,36 +0,0 @@
-drop table if exists production_product_main;
-create table production_product_main
-(
-    id            bigint auto_increment
-        primary key,
-    product_no    varchar(255) not null comment '鎶ュ伐鍗曞彿',
-    user_id       bigint       not null comment '鎶ュ伐鐢ㄦ埛id',
-    work_order_id bigint       not null comment '宸ュ崟id',
-    status        int          not null comment '鐘舵�� 0 寰呮姤宸� 1 寰呯‘璁�',
-    create_time   datetime     null comment '褰曞叆鏃堕棿',
-    tenant_id          bigint         not null comment '绉熸埛id'
-);
-
-drop table if exists production_product_output;
-create table production_product_output
-(
-    id               bigint auto_increment
-        primary key,
-    product_main_id  bigint         not null comment '鎶ュ伐鍗昳d',
-    product_model_id bigint         not null comment '浜у搧id',
-    quantity         numeric(16, 4) not null comment '鏁伴噺',
-    create_time      datetime       null comment '褰曞叆鏃堕棿',
-    tenant_id          bigint         not null comment '绉熸埛id'
-);
-
-drop table if exists production_product_input;
-create table production_product_input
-(
-    id               bigint auto_increment
-        primary key,
-    product_main_id  bigint         not null comment '鎶ュ伐鍗昳d',
-    product_model_id bigint         not null comment '浜у搧id',
-    quantity         numeric(16, 4) not null comment '鏁伴噺',
-    create_time      datetime       null comment '褰曞叆鏃堕棿',
-    tenant_id          bigint         not null comment '绉熸埛id'
-)
diff --git a/doc/encoding-rules.md b/doc/encoding-rules.md
deleted file mode 100644
index 6aded9e..0000000
--- a/doc/encoding-rules.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# 缂栫爜涓庨槻涔辩爜瑙勮寖
-
-鏈」鐩粺涓�閲囩敤浠ヤ笅瑙勫垯锛岄伩鍏嶄腑鏂囦贡鐮佸拰缂栫爜鍐茬獊锛�
-
-## 蹇呴』閬靛畧
-
-1. 鏂板缓鏂囦欢缁熶竴浣跨敤 `UTF-8` 缂栫爜锛屼笖涓嶅甫 `BOM`
-2. 淇敼宸叉湁鏂囦欢鍓嶅厛妫�鏌ュ師鏂囦欢缂栫爜
-3. 濡傛灉鏃ф枃浠朵笉鏄� `UTF-8`锛岄粯璁ゅ厛淇濇寔鍘熺紪鐮侊紝閬垮厤鎶婁腑鏂囧啓鍧�
-4. 涓枃鍐呭鐩存帴淇濈暀锛屼笉瑕佽浆涔夋垚 `\uXXXX`
-5. 杈撳嚭銆佺敓鎴愩�佹壒閲忔浛鎹㈡椂涓嶅緱鍑虹幇涔辩爜
-6. 濡傛灉缁堢鏄剧ず寮傚父锛屽厛鏍¢獙鏂囦欢鐪熷疄瀛楄妭鍜岀紪鐮侊紝鍐嶇户缁慨鏀�
-
-## 鎺ㄨ崘鍋氭硶
-
-- 浼樺厛閬靛惊椤圭洰鏍圭洰褰� `.editorconfig`
-- 瀵瑰寘鍚ぇ閲忎腑鏂囨敞閲娿�佸瓧绗︿覆鐨勬枃浠讹紝浼樺厛灏忚寖鍥翠慨鏀�
-- 鎵归噺鏇挎崲鍓嶅厛鍋氱紪鐮佹娊鏍锋鏌ワ紝鍐嶆墽琛屾壒閲忎慨鏀�
-- 姣忔娑夊強涓枃鍐呭鐨勬壒閲忔敼鍔ㄥ悗锛屽強鏃剁紪璇戞垨妫�鏌� diff
-
-## 椤圭洰鍐呭搴斾綅缃�
-
-- 缂栬緫鍣ㄩ粯璁よ鍒欙細`/.editorconfig`
-- AI 涓庡崗浣滅害鏉燂細`/AGENTS.md`
diff --git a/doc/financial-ai-front-integration.md b/doc/financial-ai-front-integration.md
deleted file mode 100644
index f632c78..0000000
--- a/doc/financial-ai-front-integration.md
+++ /dev/null
@@ -1,192 +0,0 @@
-# 璐㈠姟鏅鸿兘浣撳墠绔仈璋冩枃妗�
-
-## 1. 妯″潡璇存槑
-
-璐㈠姟鏅鸿兘浣撳悗绔凡鏂板缁熶竴鍏ュ彛 `financial-ai`锛岀敤浜庝笟璐竴浣撳寲鍒嗘瀽锛岃鐩栵細
-
-- 鏅鸿兘鎴愭湰鏍哥畻
-- 璁㈠崟鍒╂鼎鍒嗘瀽
-- 搴撳瓨璧勯噾鍒嗘瀽
-- 搴旀敹搴斾粯涓庣幇閲戞祦棰勬祴
-- 缁忚惀寮傚父棰勮
-- AI 缁忚惀椹鹃┒鑸�
-- 鏃ユ姤/鍛ㄦ姤鑷姩鐢熸垚
-- 璐㈠姟鐭ヨ瘑妫�绱紙杞婚噺 RAG 涓婁笅鏂囷級
-
-鎺ュ彛閲囩敤 **SSE 娴佸紡杈撳嚭**锛屽伐鍏峰懡涓椂杩斿洖缁撴瀯鍖� JSON 瀛楃涓层��
-
-## 2. 鎺ュ彛娓呭崟
-
-### 2.1 瀵硅瘽鎺ュ彛锛圫SE锛�
-
-- `POST /financial-ai/chat`
-- `Content-Type: application/json`
-- `Accept: text/stream;charset=utf-8`
-
-璇锋眰浣擄細
-
-```json
-{
-  "memoryId": "finance-uuid-001",
-  "message": "鏌ヨ杩�30澶╀簭鎹熻鍗�"
-}
-```
-
-瀛楁璇存槑锛�
-
-- `memoryId`锛氫細璇濆敮涓�鏍囪瘑锛堝墠绔敓鎴� UUID锛屽崟浼氳瘽澶嶇敤锛�
-- `message`锛氳嚜鐒惰瑷�闂
-
----
-
-### 2.2 浼氳瘽鍒楄〃
-
-- `GET /financial-ai/history/sessions`
-
----
-
-### 2.3 浼氳瘽娑堟伅
-
-- `GET /financial-ai/history/messages/{memoryId}`
-
----
-
-### 2.4 鍒犻櫎浼氳瘽
-
-- `DELETE /financial-ai/history/{memoryId}`
-
-## 3. SSE 杩斿洖澶勭悊瑙勮寖
-
-### 3.1 杩斿洖褰㈡��
-
-- 鏅�氶棶绛旓細娴佸紡鏂囨湰鐗囨
-- 宸ュ叿鍛戒腑锛氬畬鏁� JSON 瀛楃涓诧紙閫氬父涓�娆℃�ц緭鍑猴紝涔熷彲鑳藉垎鐗囷級
-
-鍓嶇寤鸿澶勭悊娴佺▼锛�
-
-1. 灏� SSE 鍒嗙墖鎸夐『搴忔嫾鎺ユ垚 `rawText`
-2. 瀵� `rawText` 灏濊瘯 `JSON.parse`
-3. 鑻ュ彲瑙f瀽锛屾寜 `type` 鍒嗗彂娓叉煋鍥捐〃/琛ㄦ牸
-4. 鑻ヤ笉鍙В鏋愶紝鎸夋櫘閫氭枃鏈睍绀�
-
-### 3.2 缁撴瀯鍖� JSON 閫氱敤鏍煎紡
-
-```json
-{
-  "success": true,
-  "type": "financial_order_profit_analysis",
-  "description": "宸插畬鎴愯鍗曞埄娑﹀垎鏋�",
-  "summary": {},
-  "data": {},
-  "charts": {}
-}
-```
-
-瀛楁璇存槑锛�
-
-- `type`锛氱粨鏋滅被鍨嬶紙鍓嶇娓叉煋鍒嗗彂閿級
-- `summary`锛氬ご閮ㄦ寚鏍�
-- `data`锛氳〃鏍兼槑缁�/寤鸿鍒楄〃
-- `charts`锛欵Charts `option` 鏁版嵁
-
-## 4. type 涓庡墠绔〉闈㈡槧灏�
-
-寤鸿鎸� `type` 寤虹珛娓叉煋绛栫暐锛�
-
-- `financial_cost_accounting`锛氭垚鏈牳绠楅〉
-- `financial_order_profit_analysis`锛氳鍗曞埄娑﹂〉
-- `financial_inventory_capital_analysis`锛氬簱瀛樿祫閲戦〉
-- `financial_cashflow_forecast`锛氱幇閲戞祦椤�
-- `financial_business_anomaly_warning`锛氶闄╅璀﹂〉
-- `financial_business_cockpit`锛氱粡钀ラ┚椹惰埍
-- `financial_operation_report`锛氭棩鎶ュ懆鎶ラ〉
-- `financial_rag_knowledge`锛氱煡璇嗘绱�/鍙e緞璇存槑鍗$墖
-
-## 5. 鍏抽敭鏁版嵁瀛楁锛堣仈璋冮噸鐐癸級
-
-### 5.1 鎴愭湰/鍒╂鼎绫�
-
-- `data.orders[]`锛�
-  - `salesContractNo`
-  - `customerName`
-  - `revenue`
-  - `materialCost`
-  - `laborCost`
-  - `depreciationCost`
-  - `scrapCost`
-  - `totalCost`
-  - `profit`
-  - `profitRate`
-  - `riskLevel`
-  - `reasons`
-  - `suggestion`
-
-### 5.2 搴撳瓨璧勯噾绫�
-
-- `data.items[]`锛�
-  - `productName`
-  - `model`
-  - `quantity`
-  - `inventoryValue`
-  - `stagnantDays`
-  - `overstock`
-  - `riskLevel`
-
-### 5.3 鐜伴噾娴佺被
-
-- `data.actualMonthly[]` / `data.forecastMonthly[]`锛�
-  - `month`
-  - `income`
-  - `expense`
-  - `netFlow`
-- `data.receivableRiskTop[]` / `data.payablePressureTop[]`
-
-### 5.4 寮傚父棰勮绫�
-
-- `data.items[]`锛�
-  - `riskLevel`
-  - `type`
-  - `message`
-  - `detail`
-
-### 5.5 鎶ュ憡绫�
-
-- `data.headline`
-- `data.conclusions[]`
-- `data.riskSuggestions[]`
-- `data.orderProfitTop[]`
-
-## 6. 鍥捐〃鑱旇皟瑙勮寖
-
-`charts` 鍐呭瓧娈靛潎涓� ECharts `option`锛屽彲鐩存帴鍠傜粰鍥捐〃缁勪欢銆�
-
-甯歌瀛楁锛�
-
-- 鏌辩姸鍥撅細`orderProfitBarOption` / `processCostBarOption` / `inventoryValueTopOption`
-- 楗煎浘锛歚costCompositionPieOption` / `inventoryAgingPieOption` / `anomalyLevelPieOption`
-- 瓒嬪娍鍥撅細`cashFlowTrendOption`
-- 浠〃鐩橈細`fundGapGaugeOption` / `inventoryTurnoverGauge`
-
-## 7. 鎺ㄨ崘鍓嶇闂彞锛堝洖褰掓祴璇曪級
-
-1. `鏌ョ湅鏈湀缁忚惀椹鹃┒鑸盽
-2. `鏌ヨ杩�30澶╀簭鎹熻鍗昤
-3. `鍒嗘瀽杩�30澶╁簱瀛樿祫閲戝崰鐢╜
-4. `棰勬祴鏈潵3涓湀鐜伴噾娴乣
-5. `鐢熸垚鏈懆缁忚惀鍛ㄦ姤`
-6. `涓轰粈涔堝埄娑︿笅闄峘
-7. `鍝釜瀹㈡埛鏈�璧氶挶`
-8. `鍝釜宸ュ簭鎴愭湰鏈�楂榒
-
-## 8. 寮傚父涓庡厹搴曞鐞�
-
-- `memoryId` 涓虹┖锛氳繑鍥炴枃鏈� `memoryId涓嶈兘涓虹┖`
-- `message` 涓虹┖锛氳繑鍥炴枃鏈� `message涓嶈兘涓虹┖`
-- 鏃犳暟鎹満鏅細`success=true` 涓� `data.items=[]`锛屽墠绔寜绌烘�佸睍绀�
-- 闈� JSON 娴佽繑鍥烇細鎸夋櫘閫氳亰澶╂枃鏈睍绀�
-
-## 9. 鑱旇皟寤鸿
-
-1. 鍏堝仛 `type` 鍒嗗彂鍣紙淇濊瘉鎵�鏈夌粨鏋勫寲缁撴灉鍙惤鍦帮級
-2. 鍐嶅仛鎽樿鍗$墖锛坄summary`锛�+ 琛ㄦ牸锛坄data`锛�+ 鍥捐〃锛坄charts`锛�
-3. 鏈�鍚庤ˉ浼氳瘽鍘嗗彶涓庡垹闄よ兘鍔涳紝褰㈡垚瀹屾暣瀵硅瘽闂幆
diff --git a/doc/sql/20260609_knowledge_base_vector.sql b/doc/sql/20260609_knowledge_base_vector.sql
deleted file mode 100644
index 7b4323f..0000000
--- a/doc/sql/20260609_knowledge_base_vector.sql
+++ /dev/null
@@ -1,30 +0,0 @@
--- 鐭ヨ瘑搴撳悜閲忔绱㈠姛鑳芥暟鎹簱鍙樻洿
--- 鎵ц鍓嶈纭繚 knowledge_base 琛ㄥ凡瀛樺湪
-
--- 1. knowledge_base 琛ㄥ鍔犲瓧娈�
-ALTER TABLE knowledge_base
-ADD COLUMN IF NOT EXISTS file_count INT DEFAULT 0 COMMENT '鏂囦欢鏁伴噺',
-ADD COLUMN IF NOT EXISTS total_chunk_count INT DEFAULT 0 COMMENT '鎬诲垏鐗囨暟閲�',
-ADD COLUMN IF NOT EXISTS description VARCHAR(500) COMMENT '鐭ヨ瘑搴撴弿杩�';
-
--- 2. 鍒涘缓鐭ヨ瘑搴撴枃浠跺悜閲忚褰曡〃
-CREATE TABLE IF NOT EXISTS knowledge_base_vector (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '涓婚敭ID',
-    knowledge_base_id BIGINT NOT NULL COMMENT '鍏宠仈鐭ヨ瘑搴揑D',
-    storage_blob_id BIGINT NOT NULL COMMENT '鍏宠仈鏂囦欢blob ID',
-    file_name VARCHAR(255) NOT NULL COMMENT '鏂囦欢鍚嶇О',
-    file_type VARCHAR(50) NOT NULL COMMENT '鏂囦欢绫诲瀷(docx/pdf/xlsx/txt绛�)',
-    vector_status TINYINT DEFAULT 0 COMMENT '鍚戦噺鍖栫姸鎬�: 0-寰呭鐞�, 1-澶勭悊涓�, 2-宸插畬鎴�, 3-澶辫触',
-    vector_error VARCHAR(500) COMMENT '鍚戦噺鍖栧け璐ュ師鍥�',
-    chunk_count INT DEFAULT 0 COMMENT '鍒囩墖鏁伴噺',
-    namespace VARCHAR(100) COMMENT '鍚戦噺鍛藉悕绌洪棿',
-    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
-    create_user INT COMMENT '鍒涘缓浜�',
-    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
-    update_user INT COMMENT '鏇存柊浜�',
-    tenant_id BIGINT COMMENT '绉熸埛ID',
-    dept_id BIGINT COMMENT '閮ㄩ棬ID',
-    INDEX idx_knowledge_base_id (knowledge_base_id),
-    INDEX idx_storage_blob_id (storage_blob_id),
-    INDEX idx_vector_status (vector_status)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鐭ヨ瘑搴撴枃浠跺悜閲忚褰曡〃';
\ No newline at end of file
diff --git "a/doc/\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-\350\256\276\345\244\207\346\212\245\344\277\256\344\277\235\345\205\273\350\264\242\345\212\241\346\250\241\345\235\227\346\224\271\351\200\240.md" "b/doc/\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-\350\256\276\345\244\207\346\212\245\344\277\256\344\277\235\345\205\273\350\264\242\345\212\241\346\250\241\345\235\227\346\224\271\351\200\240.md"
deleted file mode 100644
index 43c468c..0000000
--- "a/doc/\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-\350\256\276\345\244\207\346\212\245\344\277\256\344\277\235\345\205\273\350\264\242\345\212\241\346\250\241\345\235\227\346\224\271\351\200\240.md"
+++ /dev/null
@@ -1,233 +0,0 @@
-# 鍓嶇鑱旇皟鏂囨。锛堣澶囨姤淇� / 璁惧淇濆吇瀹氭椂浠诲姟 / 璐㈠姟绉戠洰鎬昏处锛�
-
-## 1. 鍙樻洿鑼冨洿
-
-鏈鑱旇皟娑夊強 3 涓ā鍧楋細
-
-1. 璐㈠姟妯″潡锛氱鐩�昏处鍘绘帀鍑瘉瀛楀彿銆佹憳瑕侊紝鍙繑鍥� 1 鏉″悎璁℃暟鎹��
-2. 璁惧淇濆吇瀹氭椂浠诲姟锛氭柊澧� `淇濆吇浜篳 瀛楁锛屽畾鏃朵换鍔$敓鎴愪繚鍏昏褰曟椂甯﹀叆銆�
-3. 璁惧鎶ヤ慨锛氱‘璁ゆ姤淇悗鏂板楠屾敹瀹℃壒锛岄獙鏀堕�氳繃鍚庢墠绠楀畬缁撱��
-
----
-
-## 2. 鎺ュ彛娓呭崟
-
-### 2.1 璐㈠姟-绉戠洰鎬昏处
-
-- **GET** `/financial/ledger/general`
-- 璇存槑锛氳繑鍥炵鐩�昏处鍚堣锛屼粎 1 鏉¤褰曘��
-
-#### 璇锋眰鍙傛暟锛圦uery锛�
-
-| 鍙傛暟 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-|---|---|---|---|
-| `subjectCode` | string | 鏄� | 绉戠洰缂栫爜 |
-| `startMonth` | string | 鏄� | 寮�濮嬫湀浠斤紝鏍煎紡 `YYYY-MM` |
-| `endMonth` | string | 鏄� | 缁撴潫鏈堜唤锛屾牸寮� `YYYY-MM` |
-
-#### 杩斿洖缁撴瀯
-
-`R<List<FinLedgerRowVo>>`
-
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": [
-    {
-      "rowType": "yearly_total",
-      "date": "2026-05-31",
-      "debit": 12000.00,
-      "credit": 8000.00,
-      "direction": "鍊�",
-      "balance": 4000.00
-    }
-  ]
-}
-```
-
-#### 鑱旇皟娉ㄦ剰
-
-1. `data` 鍥哄畾鍙湁 1 鏉★紙鍚堣锛夈��
-2. `voucherNo`銆乣summary` 涓嶈繑鍥烇紙涓嶅啀灞曠ず鍑瘉瀛楀彿銆佹憳瑕侊級銆�
-
----
-
-### 2.2 璁惧淇濆吇瀹氭椂浠诲姟锛堟柊澧炰繚鍏讳汉锛�
-
-- 鍩虹璺緞锛歚/deviceMaintenanceTask`
-- 鐩稿叧鎺ュ彛锛�
-  - **POST** `/add`
-  - **POST** `/update`
-  - **GET** `/listPage`
-
-#### 鏂板瀛楁
-
-| 瀛楁 | 绫诲瀷 | 璇存槑 |
-|---|---|---|
-| `maintenancePerson` | string | 淇濆吇浜� |
-
-#### 鏂板/鏇存柊璇锋眰绀轰緥
-
-```json
-{
-  "id": 1,
-  "taskName": "绌哄帇鏈轰繚鍏讳换鍔�",
-  "taskId": 1001,
-  "maintenancePerson": "寮犱笁",
-  "frequencyType": "MONTHLY",
-  "frequencyDetail": "10,09:00",
-  "remarks": "姣忔湀渚嬭淇濆吇"
-}
-```
-
-#### 瀹氭椂浠诲姟涓嬪彂琛屼负
-
-瀹氭椂浠诲姟鎵ц鍚庯紝绯荤粺鑷姩鍒涘缓淇濆吇璁板綍锛坄device_maintenance`锛夋椂浼氬啓鍏ワ細
-
-- `maintenanceActuallyName = maintenancePerson`
-
-鍗冲墠绔湪瀹氭椂浠诲姟閲岀淮鎶ょ殑淇濆吇浜猴紝浼氳嚜鍔ㄥ甫鍏ュ埌淇濆吇璁板綍銆�
-
----
-
-### 2.3 璁惧鎶ヤ慨锛堢‘璁ゅ悗楠屾敹瀹℃壒锛�
-
-- 鍩虹璺緞锛歚/device/repair`
-
-#### 鐘舵�佸畾涔�
-
-| 鐘舵�佸�� | 鍚箟 |
-|---|---|
-| `0` | 寰呯淮淇� |
-| `3` | 寰呴獙鏀� |
-| `1` | 瀹岀粨 |
-| `2` | 澶辫触 |
-
-#### 2.3.1 缁翠慨纭锛堝師纭鎶ヤ慨锛�
-
-- **POST** `/device/repair/repair`
-- 璇存槑锛氭彁浜ゅ悗鐘舵�佷粠 `寰呯淮淇�(0)` 杩涘叆 `寰呴獙鏀�(3)`锛屼笉鍐嶇洿鎺ュ畬缁撱��
-
-璇锋眰绀轰緥锛�
-
-```json
-{
-  "id": 10001,
-  "maintenanceName": "鏉庡洓",
-  "maintenanceTime": "2026-05-14 10:30:00",
-  "maintenanceResult": "鏇存崲杞存壙骞惰瘯杩愯姝e父",
-  "sparePartsUseList": [
-    {
-      "id": 501,
-      "quantity": 2
-    }
-  ]
-}
-```
-
-甯歌澶辫触鎻愮ず锛堢敤浜庡墠绔脊绐楋級锛�
-
-- `鎶ヤ慨璁板綍涓嶅瓨鍦╜
-- `璇ユ姤淇凡瀹岀粨锛屼笉鑳介噸澶嶇‘璁ょ淮淇甡
-- `璇ユ姤淇凡鎻愪氦楠屾敹瀹℃壒`
-- `澶囦欢 xxx 鏁伴噺涓嶈冻`
-
-#### 2.3.2 楠屾敹瀹℃壒锛堟柊澧烇級
-
-- **POST** `/device/repair/acceptance`
-- 璇存槑锛氫粎 `寰呴獙鏀�(3)` 鍙鎵癸紱瀹℃壒閫氳繃鍚庣姸鎬佹敼涓� `瀹岀粨(1)`銆�
-
-璇锋眰鍙傛暟锛圔ody锛夛細
-
-| 瀛楁 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-|---|---|---|---|
-| `id` | long | 鏄� | 鎶ヤ慨璁板綍ID |
-| `acceptanceName` | string | 鏄� | 楠屾敹浜� |
-| `acceptanceTime` | string | 鏄� | 楠屾敹鏃堕棿锛屾牸寮� `yyyy-MM-dd HH:mm:ss` |
-| `acceptanceRemark` | string | 鏄� | 楠屾敹澶囨敞 |
-
-璇锋眰绀轰緥锛�
-
-```json
-{
-  "id": 10001,
-  "acceptanceName": "鐜嬩簲",
-  "acceptanceTime": "2026-05-14 11:00:00",
-  "acceptanceRemark": "缁翠慨椤规牳楠岄�氳繃锛岃澶囪繍琛屾甯�"
-}
-```
-
-甯歌澶辫触鎻愮ず锛�
-
-- `鎶ヤ慨璁板綍id涓嶈兘涓虹┖`
-- `鎶ヤ慨璁板綍涓嶅瓨鍦╜
-- `璇ユ姤淇湭杩涘叆寰呴獙鏀剁姸鎬侊紝涓嶈兘瀹℃壒`
-- `楠屾敹浜轰笉鑳戒负绌篳
-- `楠屾敹鏃堕棿涓嶈兘涓虹┖`
-- `楠屾敹澶囨敞涓嶈兘涓虹┖`
-
-#### 2.3.3 鏅�氭洿鏂版帴鍙i檺鍒�
-
-- **PUT** `/device/repair`
-- 闄愬埗锛氫笉鑳介�氳繃鏅�氭洿鏂扮洿鎺ユ妸鐘舵�佹敼鎴� `瀹岀粨(1)`锛堝繀椤昏蛋楠屾敹瀹℃壒鎺ュ彛锛夈��
-- 澶辫触鎻愮ず锛歚璇峰厛鎻愪氦楠屾敹瀹℃壒锛岄獙鏀堕�氳繃鍚庢墠鍙畬缁揱
-
----
-
-## 3. 杩斿洖瀛楁鍙樻洿锛堟姤淇垪琛�/璇︽儏锛�
-
-浠ヤ笅鎺ュ彛杩斿洖宸叉柊澧為獙鏀跺瓧娈碉細
-
-- **GET** `/device/repair/page`
-- **GET** `/device/repair/{id}`
-
-鏂板杩斿洖瀛楁锛�
-
-| 瀛楁 | 绫诲瀷 | 璇存槑 |
-|---|---|---|
-| `acceptanceName` | string | 楠屾敹浜� |
-| `acceptanceTime` | string | 楠屾敹鏃堕棿 |
-| `acceptanceRemark` | string | 楠屾敹澶囨敞 |
-
----
-
-## 4. 鍓嶇鏀归�犲缓璁�
-
-1. 鎶ヤ慨鍒楄〃澧炲姞鐘舵�佸�� `3=寰呴獙鏀禶 鐨勫睍绀烘枃妗堜笌绛涢�夐」銆�
-2. 鈥滅‘璁ょ淮淇�濇寜閽皟鐢� `/device/repair/repair`锛屾垚鍔熷悗鍒锋柊涓哄緟楠屾敹鐘舵�併��
-3. 鏂板鈥滈獙鏀跺鎵光�濆脊绐楋紝蹇呭~锛�
-   - 楠屾敹浜�
-   - 楠屾敹鏃堕棿
-   - 楠屾敹澶囨敞
-4. 绂佹鍦ㄦ櫘閫氱紪杈戦〉鐩存帴灏嗙姸鎬佺疆涓哄畬缁撱��
-5. 璁惧淇濆吇瀹氭椂浠诲姟鏂板鈥滀繚鍏讳汉鈥濊緭鍏ラ」锛屽苟鍦ㄥ垪琛�/璇︽儏灞曠ず銆�
-6. 绉戠洰鎬昏处椤甸潰鎸夊崟琛屽悎璁℃覆鏌擄紝涓嶅啀鏄剧ず鍑瘉瀛楀彿銆佹憳瑕佸垪銆�
-
----
-
-## 5. 鑱旇皟妫�鏌ユ竻鍗�
-
-1. 绉戠洰鎬昏处鏌ヨ杩斿洖 `data.length === 1`锛屼笖鏃� `voucherNo/summary`銆�
-2. 鏂板淇濆吇瀹氭椂浠诲姟鏃朵紶 `maintenancePerson`锛屽垪琛ㄨ兘鍥炴樉銆�
-3. 瀹氭椂浠诲姟瑙﹀彂鍚庯紝鐢熸垚鐨勪繚鍏昏褰� `maintenanceActuallyName` 涓庡畾鏃朵换鍔′繚鍏讳汉涓�鑷淬��
-4. 鎶ヤ慨鍗曟祦绋嬶細`0寰呯淮淇� -> 3寰呴獙鏀� -> 1瀹岀粨`銆�
-5. 寰呴獙鏀跺崟鎹湭濉獙鏀朵汉/楠屾敹鏃堕棿/楠屾敹澶囨敞鏃讹紝鍚庣杩斿洖瀵瑰簲閿欒鎻愮ず銆�
-6. 灏濊瘯閫氳繃 `PUT /device/repair` 鐩存帴璁句负瀹岀粨鏃讹紝鍚庣杩斿洖鎷︽埅鎻愮ず銆�
-
----
-
-## 6. 鏁版嵁搴撳彉鏇达紙鑱旇皟鍓嶇‘璁わ級
-
-```sql
-ALTER TABLE maintenance_task
-  ADD COLUMN maintenance_person VARCHAR(100) NULL COMMENT '淇濆吇浜�';
-
-ALTER TABLE device_repair
-  ADD COLUMN acceptance_name VARCHAR(100) NULL COMMENT '楠屾敹浜�',
-  ADD COLUMN acceptance_time DATETIME NULL COMMENT '楠屾敹鏃堕棿',
-  ADD COLUMN acceptance_remark VARCHAR(500) NULL COMMENT '楠屾敹澶囨敞';
-```
-
-> 鑻ユ湭鎵ц浠ヤ笂 SQL锛岀浉鍏虫帴鍙d細鍑虹幇瀛楁涓嶅瓨鍦ㄥ紓甯搞��
-
diff --git "a/doc/\347\237\245\350\257\206\345\272\223RAG\345\212\237\350\203\275\345\256\236\347\216\260\346\226\207\346\241\243.md" "b/doc/\347\237\245\350\257\206\345\272\223RAG\345\212\237\350\203\275\345\256\236\347\216\260\346\226\207\346\241\243.md"
deleted file mode 100644
index 4a94cc5..0000000
--- "a/doc/\347\237\245\350\257\206\345\272\223RAG\345\212\237\350\203\275\345\256\236\347\216\260\346\226\207\346\241\243.md"
+++ /dev/null
@@ -1,1034 +0,0 @@
-# 鐭ヨ瘑搴揜AG鍚戦噺妫�绱㈠姛鑳藉疄鐜版枃妗�
-
-## 涓�銆佸姛鑳芥杩�
-
-鍩轰簬 RAG锛圧etrieval-Augmented Generation锛夋妧鏈疄鐜扮煡璇嗗簱闂瓟鍔熻兘锛屾敮鎸侊細
-- 鐭ヨ瘑搴撶鐞嗭紙CRUD锛�
-- 鏂囦欢涓婁紶涓庡悜閲忓寲澶勭悊
-- 鍩轰簬鍚戦噺妫�绱㈢殑鏅鸿兘闂瓟
-- 澶氱鏂囦欢鏍煎紡鏀寔锛坱xt銆乵d銆乨ocx銆亁lsx銆亁ls銆乸df锛�
-
-## 浜屻�佹妧鏈灦鏋�
-
-### 2.1 鎶�鏈爤
-| 缁勪欢 | 鎶�鏈� |
-|------|------|
-| 鍚戦噺鏁版嵁搴� | Pinecone |
-| Embedding妯″瀷 | 闃块噷浜� DashScope text-embedding-v3 |
-| LLM | 闃块噷浜戦�氫箟鍗冮棶 qwen-max |
-| 妗嗘灦 | langchain4j |
-| ORM | MyBatis-Plus |
-
-### 2.2 鏋舵瀯鍥�
-
-```
-鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
-鈹�                        鍓嶇搴旂敤                              鈹�
-鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
-                              鈹�
-                              鈻�
-鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
-鈹�                     Controller Layer                         鈹�
-鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�   鈹�
-鈹�  鈹� KnowledgeBaseCtrl   鈹�  鈹� KnowledgeChatController     鈹�   鈹�
-鈹�  鈹� (鐭ヨ瘑搴撶鐞�)         鈹�  鈹� (鐭ヨ瘑搴撻棶绛�)                 鈹�   鈹�
-鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�   鈹�
-鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
-                              鈹�
-                              鈻�
-鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
-鈹�                      Service Layer                           鈹�
-鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�   鈹�
-鈹�  鈹侹nowledgeBaseService 鈹�  鈹� KnowledgeRagService         鈹�   鈹�
-鈹�  鈹� (鐭ヨ瘑搴揅RUD)         鈹�  鈹� (鍚戦噺鍖�/妫�绱�)                鈹�   鈹�
-鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�   鈹�
-鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
-                              鈹�
-                              鈻�
-鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
-鈹�                      AI Layer                                鈹�
-鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹屸攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�   鈹�
-鈹�  鈹� KnowledgeChatAgent  鈹�  鈹� EmbeddingStore (Pinecone)   鈹�   鈹�
-鈹�  鈹� (闂瓟Agent)          鈹�  鈹� (鍚戦噺瀛樺偍)                   鈹�   鈹�
-鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�  鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�   鈹�
-鈹斺攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
-```
-
----
-
-## 涓夈�佸悗绔疄鐜�
-
-### 3.1 鏁版嵁搴撹璁�
-
-#### 3.1.1 鐭ヨ瘑搴撹〃锛坘nowledge_base锛�
-
-```sql
-CREATE TABLE knowledge_base (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY,
-    title VARCHAR(255) COMMENT '鐭ヨ瘑鏍囬',
-    type VARCHAR(50) COMMENT '鐭ヨ瘑绫诲瀷',
-    scenario VARCHAR(255) COMMENT '閫傜敤鍦烘櫙',
-    efficiency VARCHAR(20) COMMENT '瑙e喅鏁堢巼',
-    problem TEXT COMMENT '闂鎻忚堪',
-    solution TEXT COMMENT '瑙e喅鏂规',
-    key_points TEXT COMMENT '鍏抽敭瑕佺偣',
-    creator VARCHAR(100) COMMENT '鍒涘缓浜�',
-    usage_count INT DEFAULT 0 COMMENT '浣跨敤娆℃暟',
-    file_count INT DEFAULT 0 COMMENT '鏂囦欢鏁伴噺',
-    total_chunk_count INT DEFAULT 0 COMMENT '鎬诲垏鐗囨暟閲�',
-    description VARCHAR(500) COMMENT '鐭ヨ瘑搴撴弿杩�',
-    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
-    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-    create_user INT,
-    update_user INT,
-    tenant_id BIGINT,
-    dept_id BIGINT
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鐭ヨ瘑搴撹〃';
-```
-
-#### 3.1.2 鐭ヨ瘑搴撳悜閲忚褰曡〃锛坘nowledge_base_vector锛�
-
-```sql
-CREATE TABLE knowledge_base_vector (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '涓婚敭ID',
-    knowledge_base_id BIGINT NOT NULL COMMENT '鍏宠仈鐭ヨ瘑搴揑D',
-    storage_blob_id BIGINT NOT NULL COMMENT '鍏宠仈鏂囦欢blob ID',
-    file_name VARCHAR(255) NOT NULL COMMENT '鏂囦欢鍚嶇О',
-    file_type VARCHAR(50) NOT NULL COMMENT '鏂囦欢绫诲瀷',
-    vector_status TINYINT DEFAULT 0 COMMENT '鍚戦噺鍖栫姸鎬�: 0-寰呭鐞�, 1-澶勭悊涓�, 2-宸插畬鎴�, 3-澶辫触',
-    vector_error VARCHAR(500) COMMENT '鍚戦噺鍖栧け璐ュ師鍥�',
-    chunk_count INT DEFAULT 0 COMMENT '鍒囩墖鏁伴噺',
-    namespace VARCHAR(100) COMMENT '鍚戦噺鍛藉悕绌洪棿',
-    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
-    create_user INT,
-    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-    update_user INT,
-    tenant_id BIGINT,
-    dept_id BIGINT,
-    INDEX idx_knowledge_base_id (knowledge_base_id),
-    INDEX idx_storage_blob_id (storage_blob_id),
-    INDEX idx_vector_status (vector_status)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鐭ヨ瘑搴撴枃浠跺悜閲忚褰曡〃';
-```
-
-### 3.2 Maven渚濊禆
-
-```xml
-<!-- langchain4j BOM -->
-<dependencyManagement>
-    <dependencies>
-        <dependency>
-            <groupId>dev.langchain4j</groupId>
-            <artifactId>langchain4j-bom</artifactId>
-            <version>1.0.0-beta3</version>
-            <type>pom</type>
-            <scope>import</scope>
-        </dependency>
-    </dependencies>
-</dependencyManagement>
-
-<dependencies>
-    <!-- langchain4j 鏍稿績 -->
-    <dependency>
-        <groupId>dev.langchain4j</groupId>
-        <artifactId>langchain4j-spring-boot-starter</artifactId>
-    </dependency>
-
-    <!-- Pinecone 鍚戦噺鏁版嵁搴� -->
-    <dependency>
-        <groupId>dev.langchain4j</groupId>
-        <artifactId>langchain4j-pinecone</artifactId>
-    </dependency>
-
-    <!-- 闃块噷浜� DashScope -->
-    <dependency>
-        <groupId>dev.langchain4j</groupId>
-        <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
-    </dependency>
-</dependencies>
-```
-
-### 3.3 閰嶇疆鏂囦欢锛坅pplication.yml锛�
-
-```yaml
-# Pinecone 鍚戦噺鏁版嵁搴撻厤缃�
-pinecone:
-  api-key: your-pinecone-api-key
-  index: your-index-name
-  namespace: knowledge-base
-
-# langchain4j 閰嶇疆
-langchain4j:
-  community:
-    dashscope:
-      streaming-chat-model:
-        api-key: your-dashscope-api-key
-        model-name: "qwen-max"
-      embedding-model:
-        api-key: your-dashscope-api-key
-        model-name: "text-embedding-v3"
-```
-
-### 3.4 鏍稿績浠g爜瀹炵幇
-
-#### 3.4.1 瀹炰綋绫�
-
-**KnowledgeBase.java**
-```java
-@Data
-@TableName("knowledge_base")
-public class KnowledgeBase implements Serializable {
-    @TableId(type = IdType.AUTO)
-    private Long id;
-    private String title;
-    private String type;
-    private String scenario;
-    private String efficiency;
-    private String problem;
-    private String solution;
-    private String keyPoints;
-    private String creator;
-    private Integer usageCount;
-    private Integer fileCount;
-    private Integer totalChunkCount;
-    private String description;
-    @TableField(fill = FieldFill.INSERT)
-    private LocalDateTime createTime;
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private LocalDateTime updateTime;
-    @TableField(fill = FieldFill.INSERT)
-    private Integer createUser;
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Integer updateUser;
-    @TableField(fill = FieldFill.INSERT)
-    private Long tenantId;
-    @TableField(fill = FieldFill.INSERT)
-    private Long deptId;
-}
-```
-
-**KnowledgeBaseVector.java**
-```java
-@Data
-@TableName("knowledge_base_vector")
-public class KnowledgeBaseVector implements Serializable {
-    @TableId(type = IdType.AUTO)
-    private Long id;
-    private Long knowledgeBaseId;
-    private Long storageBlobId;
-    private String fileName;
-    private String fileType;
-    private Integer vectorStatus;
-    private String vectorError;
-    private Integer chunkCount;
-    private String namespace;
-    @TableField(fill = FieldFill.INSERT)
-    private LocalDateTime createTime;
-    @TableField(fill = FieldFill.INSERT)
-    private Integer createUser;
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private LocalDateTime updateTime;
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Integer updateUser;
-    @TableField(fill = FieldFill.INSERT)
-    private Long tenantId;
-    @TableField(fill = FieldFill.INSERT)
-    private Long deptId;
-
-    // 鍚戦噺鍖栫姸鎬佸父閲�
-    public static final int STATUS_PENDING = 0;
-    public static final int STATUS_PROCESSING = 1;
-    public static final int STATUS_COMPLETED = 2;
-    public static final int STATUS_FAILED = 3;
-}
-```
-
-#### 3.4.2 EmbeddingStore閰嶇疆
-
-**EmbeddingStoreConfig.java**
-```java
-@Configuration
-public class EmbeddingStoreConfig {
-
-    @Value("${pinecone.api-key}")
-    private String pineconeApiKey;
-
-    @Value("${pinecone.index}")
-    private String indexName;
-
-    @Value("${pinecone.namespace}")
-    private String namespace;
-
-    @Bean
-    public Pinecone pinecone() {
-        return new Pinecone.Builder(pineconeApiKey).build();
-    }
-
-    @Bean
-    public Index pineconeIndex(Pinecone pinecone) {
-        return pinecone.getIndexConnection(indexName);
-    }
-
-    @Bean
-    public EmbeddingStore<TextSegment> embeddingStore(EmbeddingModel embeddingModel) {
-        return PineconeEmbeddingStore.builder()
-                .apiKey(pineconeApiKey)
-                .index(indexName)
-                .nameSpace(namespace)
-                .createIndex(PineconeServerlessIndexConfig.builder()
-                        .cloud("AWS")
-                        .region("us-east-1")
-                        .dimension(embeddingModel.dimension())
-                        .build())
-                .build();
-    }
-}
-```
-
-#### 3.4.3 RAG鏈嶅姟瀹炵幇
-
-**KnowledgeRagService.java**
-```java
-public interface KnowledgeRagService {
-    void processVectorAsync(Long vectorId);
-    void processVector(Long vectorId);
-    List<String> searchRelevantContent(String namespace, String query, int maxResults);
-    void deleteEmbeddings(String namespace, Long storageBlobId);
-}
-```
-
-**KnowledgeRagServiceImpl.java**锛堟牳蹇冨疄鐜帮級
-```java
-@Slf4j
-@Service
-public class KnowledgeRagServiceImpl implements KnowledgeRagService {
-
-    private final KnowledgeBaseVectorService knowledgeBaseVectorService;
-    private final StorageBlobService storageBlobService;
-    private final EmbeddingModel embeddingModel;
-    private final EmbeddingStore<TextSegment> embeddingStore;
-    private final FileProperties fileProperties;
-    private final Index pineconeIndex;
-
-    @Value("${pinecone.namespace}")
-    private String namespace;
-
-    private static final int CHUNK_SIZE = 500;
-    private static final int CHUNK_OVERLAP = 100;
-    private static final long CHUNK_THRESHOLD_BYTES = 80L * 1024 * 1024;
-    private static final int EMBEDDING_MAX_LENGTH = 8000;
-
-    @Override
-    @Async("threadPoolTaskExecutor")
-    public void processVectorAsync(Long vectorId) {
-        processVector(vectorId);
-    }
-
-    @Override
-    public void processVector(Long vectorId) {
-        KnowledgeBaseVector vector = knowledgeBaseVectorService.getById(vectorId);
-        if (vector == null) return;
-
-        try {
-            // 鏇存柊鐘舵�佷负澶勭悊涓�
-            knowledgeBaseVectorService.updateVectorStatus(vectorId, STATUS_PROCESSING, null, null);
-
-            // 鑾峰彇鏂囦欢鍐呭
-            StorageBlob blob = storageBlobService.getById(vector.getStorageBlobId());
-            File file = getFile(blob);
-            String content = extractFileContent(file, vector.getFileName());
-
-            if (content == null || content.trim().isEmpty()) {
-                throw new RuntimeException("鏂囦欢鍐呭涓虹┖");
-            }
-
-            // 鏂囨湰鍒囩墖
-            List<TextSegment> chunks;
-            boolean needChunk = file.length() > CHUNK_THRESHOLD_BYTES || content.length() > EMBEDDING_MAX_LENGTH;
-            if (needChunk) {
-                chunks = splitText(content, vector);
-            } else {
-                Map<String, Object> metadata = buildMetadata(vector);
-                chunks = List.of(TextSegment.from(content, new Metadata(metadata)));
-            }
-
-            // 鐢熸垚宓屽叆鍚戦噺骞跺瓨鍌�
-            int chunkCount = 0;
-            for (TextSegment chunk : chunks) {
-                Embedding embedding = embeddingModel.embed(chunk).content();
-                embeddingStore.add(embedding, chunk);
-                chunkCount++;
-            }
-
-            // 鏇存柊鐘舵�佷负瀹屾垚
-            knowledgeBaseVectorService.updateVectorStatus(vectorId, STATUS_COMPLETED, chunkCount, null);
-
-        } catch (Exception e) {
-            log.error("鍚戦噺鍖栧鐞嗗け璐�", e);
-            knowledgeBaseVectorService.updateVectorStatus(vectorId, STATUS_FAILED, null, e.getMessage());
-        }
-    }
-
-    @Override
-    public List<String> searchRelevantContent(String namespace, String query, int maxResults) {
-        Embedding queryEmbedding = embeddingModel.embed(query).content();
-        EmbeddingSearchRequest searchRequest = EmbeddingSearchRequest.builder()
-                .queryEmbedding(queryEmbedding)
-                .maxResults(maxResults)
-                .minScore(0.7)
-                .build();
-        EmbeddingSearchResult<TextSegment> searchResult = embeddingStore.search(searchRequest);
-        return searchResult.matches().stream()
-                .map(match -> match.embedded().text())
-                .collect(Collectors.toList());
-    }
-
-    @Override
-    public void deleteEmbeddings(String namespace, Long storageBlobId) {
-        Struct filter = Struct.newBuilder()
-                .putFields("storageBlobId", Value.newBuilder()
-                        .setStructValue(Struct.newBuilder()
-                                .putFields("$eq", Value.newBuilder()
-                                        .setNumberValue(storageBlobId.doubleValue())
-                                        .build()))
-                        .build())
-                .build();
-        pineconeIndex.delete(new ArrayList<>(), false, this.namespace, filter);
-    }
-
-    private String extractFileContent(File file, String fileName) throws Exception {
-        String ext = getFileExtension(fileName);
-        if (isPlainText(ext)) {
-            return readFileWithEncoding(file);
-        }
-        if ("docx".equals(ext)) {
-            return extractDocx(file);
-        }
-        if ("xlsx".equals(ext) || "xls".equals(ext)) {
-            return extractExcel(file);
-        }
-        return readFileWithEncoding(file);
-    }
-
-    // ... 鍏朵粬杈呭姪鏂规硶
-}
-```
-
-#### 3.4.4 鐭ヨ瘑搴撻棶绛擜gent
-
-**KnowledgeChatAgent.java**
-```java
-@AiService(
-        wiringMode = EXPLICIT,
-        streamingChatModel = "qwenStreamingChatModel",
-        chatMemoryProvider = "chatMemoryProvider"
-)
-public interface KnowledgeChatAgent {
-
-    @SystemMessage("""
-            浣犳槸浼佷笟鐭ヨ瘑搴撻棶绛斿姪鎵嬨��
-            浣犻渶瑕佸熀浜庢彁渚涚殑鐭ヨ瘑搴撳唴瀹瑰洖绛旂敤鎴烽棶棰樸��
-            閬靛惊浠ヤ笅瑙勫垯锛�
-            1. 涓ユ牸鍩轰簬鐭ヨ瘑搴撳唴瀹瑰洖绛旓紝涓嶈缂栭�犱俊鎭�
-            2. 濡傛灉鐭ヨ瘑搴撲腑娌℃湁鐩稿叧淇℃伅锛屾槑纭憡鐭ョ敤鎴�
-            3. 鍥炵瓟瑕佸噯纭�佺畝娲併�佹湁鏉$悊
-            4. 寮曠敤鏉ユ簮鏃舵敞鏄�"鏍规嵁鐭ヨ瘑搴撳唴瀹�"
-            """)
-    Flux<String> chat(@MemoryId String memoryId, @UserMessage String userMessage);
-}
-```
-
-#### 3.4.5 Controller灞�
-
-**KnowledgeBaseController.java**
-```java
-@RestController
-@RequestMapping("/knowledgeBase")
-@Tag(name = "鐭ヨ瘑搴撶鐞�")
-public class KnowledgeBaseController {
-
-    @GetMapping("/getList")
-    public AjaxResult getList(@RequestParam(defaultValue = "1") long current,
-                              @RequestParam(defaultValue = "10") long size,
-                              KnowledgeBase knowledgeBase) {
-        Page page = new Page(current, size);
-        return AjaxResult.success(knowledgeBaseService.listpage(page, knowledgeBase));
-    }
-
-    @PostMapping("/add")
-    public AjaxResult add(@RequestBody KnowledgeBase knowledgeBase) {
-        return AjaxResult.success(knowledgeBaseService.save(knowledgeBase));
-    }
-
-    @PostMapping("/update")
-    public AjaxResult update(@RequestBody KnowledgeBase knowledgeBase) {
-        return AjaxResult.success(knowledgeBaseService.updateById(knowledgeBase));
-    }
-
-    @DeleteMapping("/delete")
-    public AjaxResult delete(@RequestBody List<Long> ids) {
-        return AjaxResult.success(knowledgeBaseService.removeByIds(ids));
-    }
-
-    @GetMapping("/vector/status/{knowledgeBaseId}")
-    @Operation(summary = "鏌ヨ鐭ヨ瘑搴撴枃浠跺悜閲忓寲鐘舵��")
-    public AjaxResult getVectorStatus(@PathVariable Long knowledgeBaseId) {
-        return AjaxResult.success(knowledgeBaseVectorService.getVectorStatusByKnowledgeBaseId(knowledgeBaseId));
-    }
-
-    @PostMapping("/vector/reprocess/{vectorId}")
-    @Operation(summary = "閲嶆柊鍚戦噺鍖栨枃浠�")
-    public AjaxResult reprocessVector(@PathVariable Long vectorId) {
-        knowledgeBaseVectorService.reprocessVector(vectorId);
-        return AjaxResult.success("宸查噸鏂版彁浜ゅ悜閲忓寲浠诲姟");
-    }
-
-    @PostMapping("/file/save")
-    @Operation(summary = "淇濆瓨鐭ヨ瘑搴撴枃浠跺叧鑱�")
-    public AjaxResult saveKnowledgeBaseFiles(@RequestBody KnowledgeBaseFileDTO dto) {
-        // 淇濆瓨闄勪欢鍏宠仈骞惰Е鍙戝悜閲忓寲
-        // ...
-    }
-
-    @DeleteMapping("/file/delete")
-    @Operation(summary = "鍒犻櫎鐭ヨ瘑搴撴枃浠�")
-    public AjaxResult deleteKnowledgeBaseFiles(@RequestBody List<Long> vectorIds) {
-        knowledgeBaseVectorService.deleteVectors(vectorIds);
-        return AjaxResult.success();
-    }
-}
-```
-
-**KnowledgeChatController.java**
-```java
-@RestController
-@RequestMapping("/ai/knowledge")
-@Tag(name = "鐭ヨ瘑搴撻棶绛�")
-public class KnowledgeChatController {
-
-    private final KnowledgeChatAgent knowledgeChatAgent;
-    private final KnowledgeRagService knowledgeRagService;
-    private final KnowledgeBaseService knowledgeBaseService;
-
-    @PostMapping(value = "/chat", produces = "text/stream;charset=utf-8")
-    @Operation(summary = "鐭ヨ瘑搴撻棶绛�")
-    public Flux<String> chat(@RequestBody KnowledgeChatRequest request) {
-        // 妫�绱㈢浉鍏冲唴瀹�
-        String namespace = "kb-" + request.getKnowledgeBaseId();
-        List<String> relevantContents = knowledgeRagService.searchRelevantContent(
-                namespace, request.getQuestion(), 5);
-
-        if (relevantContents.isEmpty()) {
-            return Flux.just("鐭ヨ瘑搴撲腑鏈壘鍒扮浉鍏冲唴瀹�");
-        }
-
-        // 鏋勫缓涓婁笅鏂�
-        StringBuilder context = new StringBuilder();
-        context.append("浠ヤ笅鏄粠鐭ヨ瘑搴撲腑妫�绱㈠埌鐨勭浉鍏冲唴瀹癸細\n\n");
-        for (int i = 0; i < relevantContents.size(); i++) {
-            context.append("銆愬唴瀹�").append(i + 1).append("銆慭n");
-            context.append(relevantContents.get(i)).append("\n\n");
-        }
-        context.append("---\n璇峰熀浜庝互涓婄煡璇嗗簱鍐呭鍥炵瓟锛歕n").append(request.getQuestion());
-
-        return knowledgeChatAgent.chat(request.getMemoryId(), context.toString());
-    }
-
-    @GetMapping("/list")
-    @Operation(summary = "鐭ヨ瘑搴撳垪琛�")
-    public AjaxResult listKnowledgeBases() {
-        return AjaxResult.success(knowledgeBaseService.list());
-    }
-}
-```
-
----
-
-## 鍥涖�丄PI鎺ュ彛鏂囨。
-
-### 4.1 鐭ヨ瘑搴撶鐞嗘帴鍙�
-
-| 鎺ュ彛 | 鏂规硶 | 璺緞 | 璇存槑 |
-|------|------|------|------|
-| 鑾峰彇鍒楄〃 | GET | /knowledgeBase/getList | 鍒嗛〉鏌ヨ鐭ヨ瘑搴撳垪琛� |
-| 鏂板鐭ヨ瘑搴� | POST | /knowledgeBase/add | 鍒涘缓鐭ヨ瘑搴� |
-| 鏇存柊鐭ヨ瘑搴� | POST | /knowledgeBase/update | 鏇存柊鐭ヨ瘑搴撲俊鎭� |
-| 鍒犻櫎鐭ヨ瘑搴� | DELETE | /knowledgeBase/delete | 鎵归噺鍒犻櫎鐭ヨ瘑搴� |
-| 鏌ヨ鍚戦噺鍖栫姸鎬� | GET | /knowledgeBase/vector/status/{id} | 鏌ヨ鏂囦欢鍚戦噺鍖栫姸鎬� |
-| 閲嶆柊鍚戦噺鍖� | POST | /knowledgeBase/vector/reprocess/{id} | 閲嶆柊澶勭悊澶辫触鐨勬枃浠� |
-| 淇濆瓨鏂囦欢鍏宠仈 | POST | /knowledgeBase/file/save | 涓婁紶鏂囦欢鍚庡叧鑱斿埌鐭ヨ瘑搴� |
-| 鍒犻櫎鏂囦欢 | DELETE | /knowledgeBase/file/delete | 鍒犻櫎鐭ヨ瘑搴撴枃浠� |
-
-### 4.2 鐭ヨ瘑搴撻棶绛旀帴鍙�
-
-| 鎺ュ彛 | 鏂规硶 | 璺緞 | 璇存槑 |
-|------|------|------|------|
-| 鐭ヨ瘑搴撻棶绛� | POST | /ai/knowledge/chat | 娴佸紡杩斿洖闂瓟缁撴灉 |
-| 鐭ヨ瘑搴撳垪琛� | GET | /ai/knowledge/list | 鑾峰彇鍙�夌煡璇嗗簱鍒楄〃 |
-
-### 4.3 鎺ュ彛璇︾粏璇存槑
-
-#### 4.3.1 淇濆瓨鐭ヨ瘑搴撴枃浠跺叧鑱�
-
-**璇锋眰**
-```json
-POST /knowledgeBase/file/save
-{
-    "knowledgeBaseId": 1,
-    "storageBlobIds": [100, 101, 102]
-}
-```
-
-**鍝嶅簲**
-```json
-{
-    "code": 200,
-    "msg": "鎿嶄綔鎴愬姛"
-}
-```
-
-#### 4.3.2 鐭ヨ瘑搴撻棶绛�
-
-**璇锋眰**
-```json
-POST /ai/knowledge/chat
-Content-Type: application/json
-
-{
-    "knowledgeBaseId": 1,
-    "memoryId": "session-uuid",
-    "question": "濡備綍澶勭悊搴撳瓨鐩樼偣宸紓锛�"
-}
-```
-
-**鍝嶅簲**锛圫SE娴佸紡锛�
-```
-鏍规嵁鐭ヨ瘑搴撳唴瀹癸紝搴撳瓨鐩樼偣宸紓鐨勫鐞嗘祦绋嬪涓嬶細
-
-1. 鍙戠幇宸紓鍚庯紝棣栧厛鏍稿鐩樼偣璁板綍...
-2. 妫�鏌ユ槸鍚︽湁婕忕洏鎴栭敊鐩�...
-3. ...
-```
-
----
-
-## 浜斻�佸墠绔疄鐜�
-
-### 5.1 鐭ヨ瘑搴撶鐞嗛〉闈�
-
-```vue
-<template>
-  <div class="knowledge-base">
-    <!-- 鍒楄〃 -->
-    <el-table :data="tableData" border>
-      <el-table-column prop="title" label="鐭ヨ瘑鏍囬" />
-      <el-table-column prop="type" label="鐭ヨ瘑绫诲瀷" />
-      <el-table-column prop="fileCount" label="鏂囦欢鏁伴噺" />
-      <el-table-column prop="totalChunkCount" label="鍒囩墖鏁伴噺" />
-      <el-table-column label="鎿嶄綔">
-        <template #default="{ row }">
-          <el-button @click="handleEdit(row)">缂栬緫</el-button>
-          <el-button @click="handleFiles(row)">鏂囦欢绠$悊</el-button>
-          <el-button @click="handleChat(row)">闂瓟</el-button>
-          <el-button type="danger" @click="handleDelete(row)">鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-  </div>
-</template>
-
-<script setup>
-import { ref, onMounted } from 'vue'
-import { getKnowledgeBaseList, deleteKnowledgeBase } from '@/api/knowledge'
-
-const tableData = ref([])
-
-const loadData = async () => {
-  const res = await getKnowledgeBaseList({ current: 1, size: 10 })
-  tableData.value = res.data.records
-}
-
-onMounted(loadData)
-</script>
-```
-
-### 5.2 鏂囦欢涓婁紶涓庡悜閲忓寲鐘舵��
-
-```vue
-<template>
-  <div class="file-manager">
-    <!-- 鏂囦欢涓婁紶 -->
-    <el-upload
-      :action="uploadUrl"
-      :on-success="handleUploadSuccess"
-      multiple
-    >
-      <el-button type="primary">涓婁紶鏂囦欢</el-button>
-    </el-upload>
-
-    <!-- 鏂囦欢鍒楄〃涓庡悜閲忓寲鐘舵�� -->
-    <el-table :data="fileList">
-      <el-table-column prop="fileName" label="鏂囦欢鍚�" />
-      <el-table-column label="鍚戦噺鍖栫姸鎬�">
-        <template #default="{ row }">
-          <el-tag :type="getStatusType(row.vectorStatus)">
-            {{ getStatusText(row.vectorStatus) }}
-          </el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column prop="chunkCount" label="鍒囩墖鏁�" />
-      <el-table-column label="鎿嶄綔">
-        <template #default="{ row }">
-          <el-button v-if="row.vectorStatus === 3" @click="reprocess(row)">
-            閲嶆柊澶勭悊
-          </el-button>
-          <el-button type="danger" @click="deleteFile(row)">鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-  </div>
-</template>
-
-<script setup>
-const uploadUrl = import.meta.env.VITE_APP_BASE_API + '/common/upload'
-
-// 涓婁紶鎴愬姛鍚庝繚瀛樺叧鑱�
-const uploadedBlobIds = ref([])
-
-const handleUploadSuccess = (response, file) => {
-  if (response.code === 200) {
-    uploadedBlobIds.value.push(response.data.id)
-  }
-}
-
-// 淇濆瓨鏂囦欢鍏宠仈
-const saveFiles = async () => {
-  await saveKnowledgeBaseFiles({
-    knowledgeBaseId: props.knowledgeBaseId,
-    storageBlobIds: uploadedBlobIds.value
-  })
-  // 鍒锋柊鏂囦欢鍒楄〃
-  loadFileList()
-}
-
-// 鐘舵�佹枃鏈槧灏�
-const getStatusText = (status) => {
-  const map = {
-    0: '寰呭鐞�',
-    1: '澶勭悊涓�',
-    2: '宸插畬鎴�',
-    3: '澶辫触'
-  }
-  return map[status] || '鏈煡'
-}
-
-const getStatusType = (status) => {
-  const map = {
-    0: 'info',
-    1: 'warning',
-    2: 'success',
-    3: 'danger'
-  }
-  return map[status] || 'info'
-}
-</script>
-```
-
-### 5.3 鐭ヨ瘑搴撻棶绛旂晫闈�
-
-```vue
-<template>
-  <div class="knowledge-chat">
-    <!-- 鐭ヨ瘑搴撻�夋嫨 -->
-    <el-select v-model="selectedKbId" placeholder="閫夋嫨鐭ヨ瘑搴�">
-      <el-option
-        v-for="kb in knowledgeBases"
-        :key="kb.id"
-        :label="kb.title"
-        :value="kb.id"
-      />
-    </el-select>
-
-    <!-- 瀵硅瘽鍖哄煙 -->
-    <div class="chat-messages">
-      <div
-        v-for="(msg, index) in messages"
-        :key="index"
-        :class="['message', msg.role]"
-      >
-        <div class="content">{{ msg.content }}</div>
-      </div>
-    </div>
-
-    <!-- 杈撳叆妗� -->
-    <el-input
-      v-model="inputQuestion"
-      placeholder="璇疯緭鍏ラ棶棰�"
-      @keyup.enter="sendMessage"
-    >
-      <template #append>
-        <el-button @click="sendMessage" :loading="loading">鍙戦��</el-button>
-      </template>
-    </el-input>
-  </div>
-</template>
-
-<script setup>
-import { ref, onMounted } from 'vue'
-import { getKnowledgeBaseList, knowledgeChat } from '@/api/knowledge'
-
-const knowledgeBases = ref([])
-const selectedKbId = ref(null)
-const messages = ref([])
-const inputQuestion = ref('')
-const loading = ref(false)
-const memoryId = ref(crypto.randomUUID())
-
-const sendMessage = async () => {
-  if (!inputQuestion.value.trim()) return
-  if (!selectedKbId.value) {
-    ElMessage.warning('璇烽�夋嫨鐭ヨ瘑搴�')
-    return
-  }
-
-  // 娣诲姞鐢ㄦ埛娑堟伅
-  messages.value.push({
-    role: 'user',
-    content: inputQuestion.value
-  })
-
-  loading.value = true
-
-  try {
-    // 娴佸紡璇锋眰
-    const response = await fetch('/api/ai/knowledge/chat', {
-      method: 'POST',
-      headers: { 'Content-Type': 'application/json' },
-      body: JSON.stringify({
-        knowledgeBaseId: selectedKbId.value,
-        memoryId: memoryId.value,
-        question: inputQuestion.value
-      })
-    })
-
-    // 澶勭悊SSE娴佸紡鍝嶅簲
-    const reader = response.body.getReader()
-    const decoder = new TextDecoder()
-    let aiContent = ''
-
-    messages.value.push({ role: 'assistant', content: '' })
-
-    while (true) {
-      const { done, value } = await reader.read()
-      if (done) break
-
-      const text = decoder.decode(value)
-      aiContent += text
-      messages.value[messages.value.length - 1].content = aiContent
-    }
-  } finally {
-    loading.value = false
-    inputQuestion.value = ''
-  }
-}
-
-onMounted(async () => {
-  const res = await getKnowledgeBaseList()
-  knowledgeBases.value = res.data
-})
-</script>
-```
-
-### 5.4 API灏佽
-
-```javascript
-// api/knowledge.js
-import request from '@/utils/request'
-
-// 鑾峰彇鐭ヨ瘑搴撳垪琛�
-export function getKnowledgeBaseList(params) {
-  return request({
-    url: '/knowledgeBase/getList',
-    method: 'get',
-    params
-  })
-}
-
-// 鏂板鐭ヨ瘑搴�
-export function addKnowledgeBase(data) {
-  return request({
-    url: '/knowledgeBase/add',
-    method: 'post',
-    data
-  })
-}
-
-// 鏇存柊鐭ヨ瘑搴�
-export function updateKnowledgeBase(data) {
-  return request({
-    url: '/knowledgeBase/update',
-    method: 'post',
-    data
-  })
-}
-
-// 鍒犻櫎鐭ヨ瘑搴�
-export function deleteKnowledgeBase(ids) {
-  return request({
-    url: '/knowledgeBase/delete',
-    method: 'delete',
-    data: ids
-  })
-}
-
-// 鑾峰彇鏂囦欢鍚戦噺鍖栫姸鎬�
-export function getVectorStatus(knowledgeBaseId) {
-  return request({
-    url: `/knowledgeBase/vector/status/${knowledgeBaseId}`,
-    method: 'get'
-  })
-}
-
-// 閲嶆柊鍚戦噺鍖�
-export function reprocessVector(vectorId) {
-  return request({
-    url: `/knowledgeBase/vector/reprocess/${vectorId}`,
-    method: 'post'
-  })
-}
-
-// 淇濆瓨鏂囦欢鍏宠仈
-export function saveKnowledgeBaseFiles(data) {
-  return request({
-    url: '/knowledgeBase/file/save',
-    method: 'post',
-    data
-  })
-}
-
-// 鍒犻櫎鏂囦欢
-export function deleteKnowledgeBaseFiles(vectorIds) {
-  return request({
-    url: '/knowledgeBase/file/delete',
-    method: 'delete',
-    data: vectorIds
-  })
-}
-
-// 鐭ヨ瘑搴撻棶绛旓紙娴佸紡锛�
-export async function knowledgeChat(data) {
-  const response = await fetch('/api/ai/knowledge/chat', {
-    method: 'POST',
-    headers: { 'Content-Type': 'application/json' },
-    body: JSON.stringify(data)
-  })
-  return response.body
-}
-
-// 鑾峰彇鐭ヨ瘑搴撳垪琛紙闂瓟鐢級
-export function getKnowledgeBaseListForChat() {
-  return request({
-    url: '/ai/knowledge/list',
-    method: 'get'
-  })
-}
-```
-
----
-
-## 鍏�佹牳蹇冩祦绋�
-
-### 6.1 鏂囦欢涓婁紶涓庡悜閲忓寲娴佺▼
-
-```
-1. 鍓嶇璋冪敤 /common/upload 涓婁紶鏂囦欢 鈫� 杩斿洖 storageBlobId
-2. 鍓嶇璋冪敤 /knowledgeBase/file/save 鍏宠仈鏂囦欢鍒扮煡璇嗗簱
-3. 鍚庣鍒涘缓 KnowledgeBaseVector 璁板綍锛堢姸鎬侊細寰呭鐞嗭級
-4. 鍚庣寮傛璋冪敤 KnowledgeRagService.processVectorAsync()
-   鈹溾攢鈹� 鏇存柊鐘舵�佷负"澶勭悊涓�"
-   鈹溾攢鈹� 鎻愬彇鏂囦欢鍐呭锛堟敮鎸佸绉嶆牸寮忥級
-   鈹溾攢鈹� 鑷姩妫�娴嬫枃浠剁紪鐮侊紙UTF-8/GBK锛�
-   鈹溾攢鈹� 鏂囨湰鍒囩墖锛堝ぇ鏂囦欢鎴栭暱鍐呭鎵嶅垏鐗囷級
-   鈹溾攢鈹� 鐢熸垚 Embedding 鍚戦噺
-   鈹溾攢鈹� 瀛樺偍鍒� Pinecone
-   鈹斺攢鈹� 鏇存柊鐘舵�佷负"瀹屾垚"鎴�"澶辫触"
-```
-
-### 6.2 鐭ヨ瘑搴撻棶绛旀祦绋�
-
-```
-1. 鐢ㄦ埛閫夋嫨鐭ヨ瘑搴擄紝杈撳叆闂
-2. 鍓嶇璋冪敤 /ai/knowledge/chat锛堟祦寮忔帴鍙o級
-3. 鍚庣澶勭悊锛�
-   鈹溾攢鈹� 鏋勫缓鍛藉悕绌洪棿锛歬b-{knowledgeBaseId}
-   鈹溾攢鈹� 璋冪敤 Embedding 妯″瀷鐢熸垚闂鍚戦噺
-   鈹溾攢鈹� 浠� Pinecone 妫�绱㈢浉鍏冲唴瀹癸紙minScore=0.7, maxResults=5锛�
-   鈹溾攢鈹� 鏋勫缓涓婁笅鏂� Prompt
-   鈹溾攢鈹� 璋冪敤 LLM 鐢熸垚鍥炵瓟
-   鈹斺攢鈹� 娴佸紡杩斿洖缁撴灉
-```
-
----
-
-## 涓冦�佹敞鎰忎簨椤�
-
-1. **Pinecone 鍛藉悕绌洪棿**锛氫笉鑳戒娇鐢� `__default__`锛屽繀椤讳娇鐢ㄨ嚜瀹氫箟鍛藉悕绌洪棿
-2. **鏂囦欢缂栫爜**锛氳嚜鍔ㄦ娴� UTF-8/GBK锛岄伩鍏嶄贡鐮�
-3. **鍒囩墖绛栫暐**锛�
-   - 鏂囦欢 > 80MB 鎴栧唴瀹� > 8000 瀛楃鏃舵墠鍒囩墖
-   - 鍒囩墖澶у皬 500 瀛楃锛岄噸鍙� 100 瀛楃
-   - 浼樺厛鍦ㄥ彞瀛愯竟鐣屽垏鍒�
-4. **Embedding 闄愬埗**锛氶樋閲屼簯 DashScope 闄愬埗鍗曟杈撳叆鏈�澶� 8192 瀛楃
-5. **鍚戦噺鍒犻櫎**锛氫娇鐢� Pinecone 鍘熺敓瀹㈡埛绔紝閫氳繃 metadata filter 鍒犻櫎
-6. **寮傛澶勭悊**锛氬悜閲忓寲浣跨敤 `@Async` 寮傛鎵ц锛岄伩鍏嶉樆濉炴帴鍙�
-
----
-
-## 鍏�佹枃浠舵竻鍗�
-
-### 鍚庣鏂囦欢
-```
-src/main/java/com/ruoyi/
-鈹溾攢鈹� approve/
-鈹�   鈹溾攢鈹� controller/
-鈹�   鈹�   鈹斺攢鈹� KnowledgeBaseController.java
-鈹�   鈹溾攢鈹� pojo/
-鈹�   鈹�   鈹溾攢鈹� KnowledgeBase.java
-鈹�   鈹�   鈹斺攢鈹� KnowledgeBaseVector.java
-鈹�   鈹溾攢鈹� service/
-鈹�   鈹�   鈹溾攢鈹� KnowledgeBaseService.java
-鈹�   鈹�   鈹溾攢鈹� KnowledgeBaseVectorService.java
-鈹�   鈹�   鈹斺攢鈹� impl/
-鈹�   鈹�       鈹溾攢鈹� KnowledgeBaseServiceImpl.java
-鈹�   鈹�       鈹斺攢鈹� KnowledgeBaseVectorServiceImpl.java
-鈹�   鈹溾攢鈹� mapper/
-鈹�   鈹�   鈹溾攢鈹� KnowledgeBaseMapper.java
-鈹�   鈹�   鈹斺攢鈹� KnowledgeBaseVectorMapper.java
-鈹�   鈹斺攢鈹� dto/
-鈹�       鈹斺攢鈹� KnowledgeBaseVectorVO.java
-鈹斺攢鈹� ai/
-    鈹溾攢鈹� config/
-    鈹�   鈹溾攢鈹� EmbeddingStoreConfig.java
-    鈹�   鈹斺攢鈹� XiaozhiAgentConfig.java
-    鈹溾攢鈹� controller/
-    鈹�   鈹斺攢鈹� KnowledgeChatController.java
-    鈹溾攢鈹� assistant/
-    鈹�   鈹斺攢鈹� KnowledgeChatAgent.java
-    鈹溾攢鈹� service/
-    鈹�   鈹溾攢鈹� KnowledgeRagService.java
-    鈹�   鈹斺攢鈹� impl/
-    鈹�       鈹斺攢鈹� KnowledgeRagServiceImpl.java
-    鈹斺攢鈹� dto/
-        鈹斺攢鈹� KnowledgeChatRequest.java
-```
-
-### 鍓嶇鏂囦欢
-```
-src/views/knowledge/
-鈹溾攢鈹� index.vue              # 鐭ヨ瘑搴撳垪琛�
-鈹溾攢鈹� form.vue               # 鏂板/缂栬緫琛ㄥ崟
-鈹溾攢鈹� files.vue              # 鏂囦欢绠$悊
-鈹斺攢鈹� chat.vue               # 鐭ヨ瘑搴撻棶绛�
-
-src/api/knowledge.js       # API灏佽
-```
\ No newline at end of file
diff --git "a/doc/\351\207\207\350\264\255\346\231\272\350\203\275\344\275\223\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md" "b/doc/\351\207\207\350\264\255\346\231\272\350\203\275\344\275\223\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md"
deleted file mode 100644
index cb9e3cf..0000000
--- "a/doc/\351\207\207\350\264\255\346\231\272\350\203\275\344\275\223\345\244\232\346\226\207\344\273\266\345\210\206\346\236\220\345\211\215\347\253\257\350\201\224\350\260\203\350\257\264\346\230\216.md"
+++ /dev/null
@@ -1,183 +0,0 @@
-# 閲囪喘鏅鸿兘浣撳鏂囦欢鍒嗘瀽鍓嶇鑱旇皟璇存槑
-
-## 娴佺▼璇存槑
-
-鍚庣宸叉柊澧為噰璐櫤鑳戒綋澶氭枃浠跺垎鏋愮‘璁ゆ祦绋嬶細
-
-1. 鍓嶇涓婁紶澶氫釜閲囪喘鐩稿叧鏂囦欢锛屽苟闄勫甫鐢ㄦ埛瑕佹眰銆�
-2. 鍚庣鎻愬彇鏂囦欢鍐呭锛屼氦缁欓噰璐櫤鑳戒綋鍒嗘瀽銆�
-3. 鏅鸿兘浣撹繑鍥炲緟瀹㈡埛纭鐨勭粨鏋勫寲 JSON銆�
-4. 鍓嶇灞曠ず鎽樿銆侀闄┿�佺己澶卞瓧娈靛拰寰呭鐞嗘暟鎹��
-5. 瀹㈡埛纭鎴栬ˉ鍏呮暟鎹悗锛屽墠绔皟鐢ㄧ‘璁ゆ帴鍙c��
-6. 鍚庣鏍规嵁纭鍚庣殑鏁版嵁鎵ц瀵瑰簲閲囪喘涓氬姟澶勭悊銆�
-
-鍒嗘瀽鎺ュ彛涓嶄細钀藉簱锛屽彧鏈夌‘璁ゆ帴鍙d細鎵ц涓氬姟澶勭悊銆�
-
-## 鎺ュ彛 1锛氶噰璐鏂囦欢鍒嗘瀽
-
-```http
-POST /purchase-ai/analyze-files
-Content-Type: multipart/form-data
-```
-
-璇锋眰鍙傛暟锛�
-
-| 鍙傛暟 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-| --- | --- | --- | --- |
-| files | file[] | 鏄� | 澶氭枃浠朵笂浼犲瓧娈碉紝瀛楁鍚嶅繀椤绘槸 `files` |
-| message | string | 鍚� | 鐢ㄦ埛瑕佹眰锛屼緥濡傦細璇锋牴鎹繖浜涢噰璐悎鍚屽拰鏄庣粏鏁寸悊閲囪喘鍙拌处鏁版嵁 |
-| memoryId | string | 鍚� | 浼氳瘽 ID锛屼笉浼犳椂鍚庣浼氳嚜鍔ㄧ敓鎴愬唴閮ㄤ細璇� |
-
-杩斿洖锛�
-
-```http
-Content-Type: text/stream;charset=utf-8
-```
-
-鍓嶇闇�瑕佹嫾鎺ュ畬鏁存祦寮忔枃鏈悗鍐嶆墽琛� `JSON.parse`銆�
-
-杩斿洖 JSON 缁撴瀯绀轰緥锛�
-
-```json
-{
-  "success": true,
-  "businessType": "purchase_ledger",
-  "action": "confirm_required",
-  "description": "宸叉牴鎹枃浠舵暣鐞嗗嚭閲囪喘鍙拌处鑽夌锛岃纭銆�",
-  "confidence": 0.86,
-  "missingFields": [],
-  "warnings": [],
-  "payload": {},
-  "preview": []
-}
-```
-
-瀛楁璇存槑锛�
-
-| 瀛楁 | 璇存槑 |
-| --- | --- |
-| success | 鏄惁鍒嗘瀽鎴愬姛 |
-| businessType | 涓氬姟绫诲瀷锛歚purchase_ledger`銆乣payment_registration`銆乣purchase_return_order`銆乣unknown` |
-| action | 鍥哄畾涓� `confirm_required` |
-| description | 涓枃璇存槑 |
-| confidence | 缃俊搴︼紝0 鍒� 1 |
-| missingFields | 缂哄け瀛楁锛屽墠绔渶瑕佹彁绀虹敤鎴疯ˉ鍏� |
-| warnings | 椋庨櫓鎻愮ず |
-| payload | 寰呭鎴风‘璁ゅ苟鎻愪氦缁欑‘璁ゆ帴鍙g殑鏁版嵁 |
-| preview | 缁欏鎴风‘璁ょ敤鐨勪腑鏂囨憳瑕� |
-
-## 鎺ュ彛 2锛氱‘璁ゅ苟鎵ц涓氬姟澶勭悊
-
-```http
-POST /purchase-ai/analyze-files/confirm
-Content-Type: application/json
-```
-
-璇锋眰浣擄細
-
-```json
-{
-  "businessType": "purchase_ledger",
-  "payload": {
-  }
-}
-```
-
-褰撳墠鏀寔鐨� `businessType`锛�
-
-| businessType | 璇存槑 | 鍚庣澶勭悊 |
-| --- | --- | --- |
-| purchase_ledger | 閲囪喘鍙拌处 | 璋冪敤閲囪喘鍙拌处鏂板/缂栬緫 |
-| payment_registration | 浠樻鐧昏 | 璋冪敤浠樻鐧昏鏂板 |
-| purchase_return_order | 閲囪喘閫�璐у崟 | 璋冪敤閲囪喘閫�璐у崟鏂板 |
-
-纭鎺ュ彛杩斿洖鏅�� `AjaxResult`銆�
-
-## 閲囪喘鍙拌处 Payload 绾﹀畾
-
-閲囪喘鍙拌处纭鎺ㄨ崘浣跨敤涓や釜闆嗗悎锛�
-
-```json
-{
- "businessType": "purchase_ledger",
-  "payload": {
-    "purchaseLedgers": []
-  }
-}
-```
-
-瀛楁绾﹀畾锛�
-
-- `purchaseLedgers` 鏀鹃噰璐鍗�/閲囪喘鍙拌处涓昏〃鏁版嵁锛屽瓧娈靛悕蹇呴』涓� `PurchaseLedgerDto` 淇濇寔涓�鑷淬��
-- 浜у搧鏄庣粏鏀惧湪姣忔潯 `purchaseLedgers[i].productData` 涓紝瀵瑰簲 `PurchaseLedgerDto` 鐨� `private List<SalesLedgerProduct> productData;`銆�
-- 椤跺眰 `payload.productData` 浠呬綔涓烘棫鏍煎紡鍏煎锛屼笉寤鸿鍓嶇缁х画浣跨敤銆�
-- 鏂囦欢涓殑鈥滈噰璐崟鍙封�濆氨鏄�滈噰璐悎鍚屽彿鈥濓紝鍓嶇鍙互缁熶竴鏄犲皠鎴� `purchaseContractNumber`銆�
-- 鏂囦欢涓殑鈥滈攢鍞崟鍙封�濆氨鏄�滈攢鍞悎鍚屽彿鈥濓紝鍓嶇鍙互缁熶竴鏄犲皠鎴� `salesContractNo`銆�
-- 鏃ユ湡瀛楁缁熶竴浣跨敤 `yyyy-MM-dd`锛屼緥濡� `2026-04-30`锛涗笉瑕佹彁浜� `4/30/26`銆乣2026/4/30`銆乣2026骞�4鏈�30鏃 鎴栧甫鏃跺垎绉掔殑鏍煎紡銆�
-- 閲囪喘鍙拌处涓嶉渶瑕佸墠绔紶瀹℃壒浜猴紝涓嶈鎻愪氦 `approveUserIds`銆乣approverId`銆�
-- `missingFields` 闈㈠悜瀹㈡埛灞曠ず锛屽彧鏀句腑鏂囩己澶遍」锛屼緥濡� `渚涘簲鍟嗗悕绉癭銆乣鍚◣鍗曚环`锛屼笉瑕佸睍绀鸿嫳鏂囧瓧娈靛悕銆�
-- 閲囪喘鍙拌处涓氬姟蹇呭~锛氶噰璐悎鍚屽彿銆佷緵搴斿晢鍚嶇О鎴栦緵搴斿晢ID銆�
-- 浜у搧鏄庣粏涓氬姟蹇呭~锛氫骇鍝佸悕绉般�佽鏍煎瀷鍙枫�佸崟浣嶃�佹暟閲忋�佸惈绋庡崟浠枫�佸惈绋庢�讳环锛涘鏋滃彧鏈夊惈绋庢�讳环鍜屾暟閲忥紝鍚庣浼氳嚜鍔ㄨ绠楀惈绋庡崟浠凤紱濡傛灉鍙湁鍚◣鍗曚环鍜屾暟閲忥紝鍚庣浼氳嚜鍔ㄨ绠楀惈绋庢�讳环銆�
-- 浜у搧鏄庣粏鍙�氳繃 `purchaseContractNumber`銆乣purchaseContractNo`銆乣閲囪喘鍚堝悓鍙穈銆乣閲囪喘鍗曞彿`銆乣閲囪喘璁㈠崟鍙穈 鍏宠仈瀵瑰簲閲囪喘璁㈠崟锛涗篃鍙�氳繃 `salesContractNo`銆乣salesContractNumber`銆乣閿�鍞悎鍚屽彿`銆乣閿�鍞崟鍙穈銆乣閿�鍞鍗曞彿` 杈呭姪鍖归厤銆�
-
-`purchaseLedgers` 鍗曟潯璁板綍鍏佽浣跨敤鐨� `PurchaseLedgerDto` 瀛楁锛�
-
-```text
-entryDateStart, entryDateEnd, id, purchaseContractNumber,
-supplierId, supplierName, isWhite, recorderId, recorderName, salesContractNo,
-salesContractNoId, projectName, entryDate, executionDate, remarks,
-attachmentMaterials, createdAt, updatedAt, salesLedgerId, hasChildren, Type,
-productData, tempFileIds, SalesLedgerFiles, phoneNumber, businessPersonId,
-productId, productModelId, invoiceNumber, invoiceAmount, ticketRegistrationId,
-contractAmount, receiptPaymentAmount, unReceiptPaymentAmount, type,
-paymentMethod, approvalStatus, templateName
-```
-
-绀轰緥锛�
-
-```json
-{
-  "purchaseLedgers": [
-    {
-      "purchaseContractNumber": "CG-2026-001",
-      "supplierName": "鍗楅�氱ず渚嬩緵搴斿晢",
-      "salesContractNo": "XS-2026-001",
-      "projectName": "绀轰緥椤圭洰",
-      "entryDate": "2026-04-30",
-      "executionDate": "2026-04-30",
-      "contractAmount": 120000,
-      "remarks": "鐢辨枃浠跺垎鏋愮敓鎴愶紝寰呯‘璁�",
-      "productData": [
-        {
-          "productCategory": "绀轰緥浜у搧",
-          "specificationModel": "鍨嬪彿A",
-          "unit": "浠�",
-          "quantity": 10,
-          "taxInclusiveUnitPrice": 12000,
-          "taxInclusiveTotalPrice": 120000,
-          "type": 2
-        }
-      ]
-    }
-  ]
-}
-```
-
-## 鍓嶇澶勭悊寤鸿
-
-1. 鐢ㄦ埛閫夋嫨澶氫釜鏂囦欢锛屽~鍐欏垎鏋愯姹傘��
-2. 浣跨敤 `multipart/form-data` 璋冪敤 `/purchase-ai/analyze-files`銆�
-3. 鎷兼帴娴佸紡杩斿洖鏂囨湰銆�
-4. 瀵瑰畬鏁存枃鏈墽琛� `JSON.parse`銆�
-5. 灞曠ず `preview`銆乣warnings`銆乣missingFields` 鍜� `payload`銆�
-6. 濡傛灉 `missingFields` 涓嶄负绌猴紝寮曞鐢ㄦ埛琛ュ厖鎴栫紪杈� `payload`銆�
-7. 鐢ㄦ埛纭鍚庯紝灏� `businessType` 鍜岀‘璁ゅ悗鐨� `payload` 鎻愪氦鍒� `/purchase-ai/analyze-files/confirm`銆�
-
-## 娉ㄦ剰浜嬮」
-
-- 鏂囦欢涓婁紶瀛楁鍚嶅繀椤绘槸 `files`銆�
-- 鍒嗘瀽鎺ュ彛鍙敓鎴愬緟纭鏁版嵁锛屼笉浼氭墽琛屼笟鍔¤惤搴撱��
-- 纭鎺ュ彛鎵嶄細鎵ц涓氬姟澶勭悊銆�
-- 濡傛灉 `payload` 缂哄皯蹇呰涓氬姟 ID锛岀‘璁ゆ帴鍙e彲鑳借繑鍥炰笟鍔℃牎楠岄敊璇��
-- 鍓嶇闇�瑕佹妸 `missingFields` 鏄庣‘灞曠ず缁欑敤鎴枫��
-- AI 杩斿洖鍐呭鎸夊悎娉� JSON 澶勭悊锛屼笉瑕佹寜鏅�氳嚜鐒惰瑷�灞曠ず銆�
diff --git a/docs/mock_data_check.md b/docs/mock_data_check.md
deleted file mode 100644
index 8c67159..0000000
--- a/docs/mock_data_check.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# 鏁版嵁妯℃嫙 - 鍩虹鏁版嵁妫�娴�
-
-## 娑夊強椤甸潰
-
-- 鏁版嵁妯℃嫙鎿嶄綔椤甸潰锛堟柊澧烇級
-
-## API
-
-| 鏂规硶 | 璺緞 | 璇存槑 |
-|------|------|------|
-| POST | /mock/dataCheck | 妫�娴嬫寚瀹氭ā鍧楃殑鍩虹鏁版嵁鏄惁灏辩华 |
-
-**璇锋眰鍙傛暟锛�**
-
-| 鍙傛暟 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-|------|------|------|------|
-| modules | List\<String\> | 鏄� | 瑕佹娴嬬殑妯″潡鍒楄〃锛屽彲閫夊�硷細sales锛堥攢鍞級銆乸urchase锛堥噰璐級銆乹uality锛堣川閲忥級銆乸roduction锛堢敓浜э級 |
-
-璇锋眰浣撶ず渚嬶細
-```json
-{ "modules": ["sales", "purchase", "quality", "production"] }
-```
-
-**鍝嶅簲锛�**
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": {
-    "totalItems": 6,
-    "passedItems": 3,
-    "items": [
-      {
-        "module": "common",
-        "itemName": "浜у搧鏁版嵁",
-        "minRequired": 1,
-        "currentCount": 5,
-        "passed": true,
-        "message": "閫氳繃"
-      },
-      {
-        "module": "sales",
-        "itemName": "瀹㈡埛鏁版嵁",
-        "minRequired": 1,
-        "currentCount": 0,
-        "passed": false,
-        "message": "缂哄皯瀹㈡埛鏁版嵁锛岃鍏堝湪銆愬熀纭�鏁版嵁-瀹㈡埛绠$悊銆戜腑娣诲姞鑷冲皯1鏉″鎴�"
-      }
-    ]
-  }
-}
-```
-
-## 妫�娴嬭鍒�
-
-### 閿�鍞ā鍧� (sales)
-| 妫�娴嬮」 | 鏈�浣庢暟閲� | 鏈�氳繃鎻愮ず |
-|--------|----------|------------|
-| 浜у搧鏁版嵁 | 1 | 缂哄皯浜у搧鏁版嵁锛岃鍏堝湪銆愬熀纭�鏁版嵁-浜у搧绠$悊銆戜腑娣诲姞鑷冲皯1鏉′骇鍝� |
-| 瀹㈡埛鏁版嵁 | 1 | 缂哄皯瀹㈡埛鏁版嵁锛岃鍏堝湪銆愬熀纭�鏁版嵁-瀹㈡埛绠$悊銆戜腑娣诲姞鑷冲皯1鏉″鎴� |
-| 鎶ヤ环瀹℃壒妯℃澘 | 1 | 缂哄皯鎶ヤ环瀹℃壒妯℃澘锛岃鍏堝湪銆愮郴缁熺鐞�-瀹℃壒妯℃澘銆戜腑鍒涘缓鎶ヤ环瀹℃壒妯℃澘 |
-| 鍙戣揣瀹℃壒妯℃澘 | 1 | 缂哄皯鍙戣揣瀹℃壒妯℃澘锛岃鍏堝湪銆愮郴缁熺鐞�-瀹℃壒妯℃澘銆戜腑鍒涘缓鍙戣揣瀹℃壒妯℃澘 |
-
-### 閲囪喘妯″潡 (purchase)
-| 妫�娴嬮」 | 鏈�浣庢暟閲� | 鏈�氳繃鎻愮ず |
-|--------|----------|------------|
-| 浜у搧鏁版嵁 | 1 | 缂哄皯浜у搧鏁版嵁锛岃鍏堝湪銆愬熀纭�鏁版嵁-浜у搧绠$悊銆戜腑娣诲姞鑷冲皯1鏉′骇鍝� |
-| 渚涘簲鍟嗘暟鎹� | 1 | 缂哄皯渚涘簲鍟嗘暟鎹紝璇峰厛鍦ㄣ�愬熀纭�鏁版嵁-渚涘簲鍟嗙鐞嗐�戜腑娣诲姞鑷冲皯1鏉′緵搴斿晢 |
-| 閲囪喘瀹℃壒妯℃澘 | 1 | 缂哄皯閲囪喘瀹℃壒妯℃澘锛岃鍏堝湪銆愮郴缁熺鐞�-瀹℃壒妯℃澘銆戜腑鍒涘缓閲囪喘瀹℃壒妯℃澘 |
-
-### 鐢熶骇妯″潡 (production)
-| 妫�娴嬮」 | 鏈�浣庢暟閲� | 鏈�氳繃鎻愮ず |
-|--------|----------|------------|
-| 浜у搧鏁版嵁 | 1 | 缂哄皯浜у搧鏁版嵁锛岃鍏堝湪銆愬熀纭�鏁版嵁-浜у搧绠$悊銆戜腑娣诲姞鑷冲皯1鏉′骇鍝� |
-| 浜у搧瑙勬牸 | 1 | 缂哄皯浜у搧瑙勬牸锛岃鍏堝湪銆愬熀纭�鏁版嵁-浜у搧绠$悊銆戜腑涓轰骇鍝佹坊鍔犺鏍煎瀷鍙� |
-| 宸ュ簭 | 1 | 缂哄皯宸ュ簭锛岃鍏堝湪銆愬伐鑹鸿璁�-宸ュ簭绠$悊銆戜腑鍒涘缓宸ュ簭 |
-| BOM | 1 | 缂哄皯BOM锛岃鍏堝湪銆愬伐鑹鸿璁�-BOM绠$悊銆戜腑鍒涘缓BOM |
-| BOM浜у搧缁撴瀯 | 1 | 缂哄皯BOM浜у搧缁撴瀯锛岃鍏堝湪銆愬伐鑹鸿璁�-BOM绠$悊銆戜腑涓築OM娣诲姞浜у搧缁撴瀯鑺傜偣 |
-| 宸ヨ壓璺嚎 | 1 | 缂哄皯宸ヨ壓璺嚎锛岃鍏堝湪銆愬伐鑹鸿璁�-宸ヨ壓璺嚎銆戜腑鍒涘缓宸ヨ壓璺嚎 |
-| 宸ヨ壓璺嚎宸ュ簭 | 1 | 缂哄皯宸ヨ壓璺嚎宸ュ簭锛岃鍏堝湪銆愬伐鑹鸿璁�-宸ヨ壓璺嚎銆戜腑涓哄伐鑹鸿矾绾挎坊鍔犲伐搴� |
-| 浜у搧-宸ヨ壓璺嚎鍏宠仈 | 鈮�1 | 閮ㄥ垎浜у搧瑙勬牸鏈叧鑱斿伐鑹鸿矾绾匡紝璇峰厛鍦ㄣ�愬伐鑹鸿璁�-宸ヨ壓璺嚎銆戜腑涓轰骇鍝佽鏍煎垱寤哄伐鑹鸿矾绾� |
-| 宸ヨ壓璺嚎-宸ュ簭鍏宠仈 | 鈮�1 | 閮ㄥ垎宸ヨ壓璺嚎鏈坊鍔犲伐搴忥紝璇峰厛鍦ㄣ�愬伐鑹鸿璁�-宸ヨ壓璺嚎銆戜腑涓哄伐鑹鸿矾绾挎坊鍔犲伐搴� |
-| BOM-浜у搧缁撴瀯鍏宠仈 | 鈮�1 | 閮ㄥ垎BOM鏈坊鍔犱骇鍝佺粨鏋勶紝璇峰厛鍦ㄣ�愬伐鑹鸿璁�-BOM绠$悊銆戜腑涓築OM娣诲姞浜у搧缁撴瀯鑺傜偣 |
-
-### 璐ㄩ噺妯″潡 (quality)
-| 妫�娴嬮」 | 鏈�浣庢暟閲� | 鏈�氳繃鎻愮ず |
-|--------|----------|------------|
-| 浜у搧鏁版嵁 | 1 | 缂哄皯浜у搧鏁版嵁锛岃鍏堝湪銆愬熀纭�鏁版嵁-浜у搧绠$悊銆戜腑娣诲姞鑷冲皯1鏉′骇鍝� |
-| 妫�娴嬫爣鍑� | 1 | 缂哄皯妫�娴嬫爣鍑嗭紝璇峰厛鍦ㄣ�愯川閲忕鐞�-妫�娴嬫爣鍑嗐�戜腑鍒涘缓妫�娴嬫爣鍑� |
-| 鎸囨爣缁戝畾 | 1 | 缂哄皯鎸囨爣缁戝畾锛岃鍏堝湪銆愯川閲忕鐞�-妫�娴嬫爣鍑嗙粦瀹氥�戜腑灏嗘娴嬫爣鍑嗕笌浜у搧缁戝畾 |
-
-## 鍓嶇淇敼鐐�
-
-### 1. 鏁版嵁妯℃嫙椤甸潰鍏ュ彛
-
-鍦ㄥ乏渚ц彍鍗曟柊澧�"鏁版嵁妯℃嫙"鑿滃崟椤癸紝璺敱 `/mock`銆�
-
-### 2. 鏁版嵁妫�娴嬪尯鍩�
-
-```html
-<template>
-  <div class="mock-container">
-    <el-card header="鍩虹鏁版嵁妫�娴�">
-      <el-checkbox-group v-model="selectedModules">
-        <el-checkbox label="sales">閿�鍞ā鍧�</el-checkbox>
-        <el-checkbox label="purchase">閲囪喘妯″潡</el-checkbox>
-        <el-checkbox label="quality">璐ㄩ噺妯″潡</el-checkbox>
-        <el-checkbox label="production">鐢熶骇妯″潡</el-checkbox>
-      </el-checkbox-group>
-      <el-button type="primary" @click="handleCheck" :loading="checking">
-        寮�濮嬫娴�
-      </el-button>
-    </el-card>
-
-    <el-card v-if="checkResult" header="妫�娴嬬粨鏋�" style="margin-top: 16px">
-      <el-alert
-        :title="`閫氳繃 ${checkResult.passedItems} / ${checkResult.totalItems} 椤筦"
-        :type="checkResult.passedItems === checkResult.totalItems ? 'success' : 'warning'"
-        :closable="false"
-        show-icon
-      />
-      <el-table :data="checkResult.items" style="margin-top: 12px">
-        <el-table-column prop="module" label="妯″潡" width="100" />
-        <el-table-column prop="itemName" label="妫�娴嬮」" width="160" />
-        <el-table-column prop="minRequired" label="鏈�浣庤姹�" width="80" />
-        <el-table-column prop="currentCount" label="褰撳墠鏁伴噺" width="80" />
-        <el-table-column label="鐘舵��" width="80">
-          <template #default="{ row }">
-            <el-tag :type="row.passed ? 'success' : 'danger'">
-              {{ row.passed ? '閫氳繃' : '鏈�氳繃' }}
-            </el-tag>
-          </template>
-        </el-table-column>
-        <el-table-column prop="message" label="鎻愮ず" />
-      </el-table>
-    </el-card>
-  </div>
-</template>
-```
-
-### 3. data 鏁版嵁
-
-```js
-data() {
-  return {
-    selectedModules: ['sales', 'purchase', 'quality', 'production'],
-    checking: false,
-    checkResult: null,
-  }
-}
-```
-
-### 4. 鏂规硶
-
-```js
-import request from '@/utils/request'
-
-methods: {
-  async handleCheck() {
-    if (this.selectedModules.length === 0) {
-      this.$message.warning('璇疯嚦灏戦�夋嫨涓�涓ā鍧�')
-      return
-    }
-    this.checking = true
-    try {
-      const res = await request.post('/mock/dataCheck', {
-        modules: this.selectedModules
-      })
-      this.checkResult = res.data
-    } finally {
-      this.checking = false
-    }
-  }
-}
-```
-
-## 娉ㄦ剰浜嬮」
-
-- 浜у搧鏁版嵁锛堝叕鍏卞熀纭�锛夊湪澶氫釜妯″潡闂村叡浜紝妫�娴嬬粨鏋滀腑鍙嚭鐜颁竴娆★紝涓嶄細閲嶅灞曠ず
-- 妫�娴嬩粎鍋氬彧璇绘煡璇紝涓嶅啓鍏ヤ换浣曟暟鎹�
-- 妯″潡鍙傛暟涓虹┖鏁扮粍鏃惰繑鍥炵┖妫�娴嬪垪琛�
-- 寤鸿鍦ㄦ暟鎹ā鎷熷紑濮嬪墠鍏堣皟鐢ㄦ鎺ュ彛纭鍩虹鏁版嵁灏辩华
-- 鐢熶骇妯″潡闄や簡妫�娴嬫暟鎹噺锛岃繕浼氭娴嬪叧鑱旀�э紙浜у搧-宸ヨ壓璺嚎銆佸伐鑹鸿矾绾�-宸ュ簭銆丅OM-浜у搧缁撴瀯锛夛紝纭繚宸ヨ壓璁捐鏁版嵁瀹屾暣
diff --git a/docs/mock_data_generate.md b/docs/mock_data_generate.md
deleted file mode 100644
index 6dc801e..0000000
--- a/docs/mock_data_generate.md
+++ /dev/null
@@ -1,243 +0,0 @@
-# 鏁版嵁妯℃嫙 - AI 鏁版嵁鐢熸垚
-
-## 娑夊強椤甸潰
-
-- 鏁版嵁妯℃嫙鎿嶄綔椤甸潰锛堟柊澧�/淇敼锛�
-
-## API
-
-| 鏂规硶 | 璺緞 | 璇存槑 |
-|------|------|------|
-| POST | /mock/generate | AI 鐢熸垚妯℃嫙鏁版嵁锛堝惈鍓嶇疆鍩虹鏁版嵁妫�娴嬶級 |
-
-**璇锋眰鍙傛暟锛�**
-
-| 鍙傛暟 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-|------|------|------|------|
-| modules | List\<String\> | 鏄� | 瑕佺敓鎴愭暟鎹殑妯″潡锛歴ales锛堥攢鍞級銆乸urchase锛堥噰璐級銆乹uality锛堣川閲忥級銆乸roduction锛堢敓浜э級銆乻tock锛堝簱瀛橈級 |
-| industries | List\<String\> | 鏄� | 琛屼笟锛屽锛歔"鏈烘鍒堕��", "椋熷搧鍔犲伐", "鐢靛瓙瑁呴厤"] |
-| countMin | int | 鍚� | 姣忎釜瀹炰綋鐢熸垚鏉℃暟鏈�灏忓�硷紝榛樿 3 |
-| countMax | int | 鍚� | 姣忎釜瀹炰綋鐢熸垚鏉℃暟鏈�澶у�硷紝榛樿 10 |
-| dateStart | String | 鍚� | 鏃堕棿鑼冨洿寮�濮嬶紙yyyy-MM-dd锛� |
-| dateEnd | String | 鍚� | 鏃堕棿鑼冨洿缁撴潫锛坹yyy-MM-dd锛� |
-| additionalInfo | String | 鍚� | 鍏朵粬琛ュ厖鎻忚堪锛屽"浜у搧浠ラ噾灞為浂閮ㄤ欢涓轰富" |
-
-璇锋眰浣撶ず渚嬶細
-```json
-{
-  "modules": ["sales", "purchase", "quality"],
-  "industries": ["鏈烘鍒堕��", "鐢靛瓙瑁呴厤"],
-  "countMin": 3,
-  "countMax": 8,
-  "dateStart": "2026-01-01",
-  "dateEnd": "2026-06-01",
-  "additionalInfo": "浜у搧浠ラ噾灞為浂閮ㄤ欢鍜岀數瀛愬厓鍣ㄤ欢涓轰富"
-}
-```
-
-**鍝嶅簲锛堟垚鍔燂級锛�**
-```json
-{
-  "code": 200,
-  "msg": "鎿嶄綔鎴愬姛",
-  "data": {
-    "status": "SUCCESS",
-    "totalGenerated": 24,
-    "moduleSummaries": [
-      { "module": "sales", "entityName": "瀹㈡埛", "generatedCount": 5, "successCount": 5, "failCount": 0 },
-      { "module": "sales", "entityName": "閿�鍞彴璐�", "generatedCount": 5, "successCount": 5, "failCount": 0 },
-      { "module": "purchase", "entityName": "渚涘簲鍟�", "generatedCount": 4, "successCount": 4, "failCount": 0 },
-      { "module": "purchase", "entityName": "閲囪喘鍙拌处", "generatedCount": 4, "successCount": 4, "failCount": 0 },
-      { "module": "quality", "entityName": "妫�娴嬫爣鍑�", "generatedCount": 3, "successCount": 3, "failCount": 0 },
-      { "module": "quality", "entityName": "鎸囨爣缁戝畾", "generatedCount": 3, "successCount": 3, "failCount": 0 }
-    ],
-    "errors": [],
-    "checkResult": null
-  }
-}
-```
-
-**鍝嶅簲锛堝熀纭�鏁版嵁涓嶈冻锛屽墠缃娴嬫湭閫氳繃锛夛細**
-```json
-{
-  "code": 500,
-  "msg": "鍩虹鏁版嵁涓嶈冻锛岃鍏堣ˉ鍏呭悗鍐嶇敓鎴�",
-  "data": {
-    "status": "CHECK_FAILED",
-    "checkResult": {
-      "totalItems": 6,
-      "passedItems": 3,
-      "items": [
-        { "module": "common", "itemName": "浜у搧鏁版嵁", "passed": true, "message": "閫氳繃" },
-        { "module": "sales", "itemName": "瀹㈡埛鏁版嵁", "passed": false, "message": "缂哄皯瀹㈡埛鏁版嵁锛岃鍏�..." }
-      ]
-    }
-  }
-}
-```
-
-## 宸ヤ綔娴佺▼
-
-1. 鐢ㄦ埛鍦ㄩ〉闈㈤�夋嫨妯″潡 + 濉啓琛屼笟/鏁伴噺/鏃堕棿绛変俊鎭�
-2. 璋冪敤 `POST /mock/generate`
-3. 鍚庣棣栧厛璋冪敤 `POST /mock/dataCheck` 妫�娴嬪熀纭�鏁版嵁鏄惁灏辩华
-4. 鑻ュ熀纭�鏁版嵁涓嶈冻锛岃繑鍥炴娴嬬粨鏋滐紝鎻愮ず鐢ㄦ埛鍏堣ˉ榻�
-5. 鑻ュ熀纭�鏁版嵁灏辩华锛岃皟鐢� AI 澶фā鍨嬬敓鎴愮鍚堣涓氱壒寰佺殑 JSON 鏁版嵁
-6. 鎸変緷璧栭『搴忓垱寤烘暟鎹紙瀹㈡埛鈫掗攢鍞彴璐︺�佷緵搴斿晢鈫掗噰璐彴璐︺�佹娴嬫爣鍑嗏啋鎸囨爣缁戝畾...锛�
-7. 杩斿洖鐢熸垚鎽樿
-
-## 鍓嶇淇敼鐐�
-
-### 1. 鏁版嵁鐢熸垚鍖哄煙锛堝湪鏁版嵁妫�娴嬪尯鍩熶笅鏂癸級
-
-```html
-<el-card header="AI 鏁版嵁鐢熸垚" style="margin-top: 16px">
-  <el-form :model="generateForm" label-width="100px">
-    <el-form-item label="閫夋嫨妯″潡">
-      <el-checkbox-group v-model="generateForm.modules">
-        <el-checkbox label="sales">閿�鍞�</el-checkbox>
-        <el-checkbox label="purchase">閲囪喘</el-checkbox>
-        <el-checkbox label="quality">璐ㄩ噺</el-checkbox>
-        <el-checkbox label="production">鐢熶骇</el-checkbox>
-        <el-checkbox label="stock">搴撳瓨</el-checkbox>
-      </el-checkbox-group>
-    </el-form-item>
-
-    <el-form-item label="琛屼笟">
-      <el-select
-        v-model="generateForm.industries"
-        multiple
-        filterable
-        allow-create
-        placeholder="杈撳叆鎴栭�夋嫨琛屼笟"
-      >
-        <el-option label="鏈烘鍒堕��" value="鏈烘鍒堕��" />
-        <el-option label="椋熷搧鍔犲伐" value="椋熷搧鍔犲伐" />
-        <el-option label="鐢靛瓙瑁呴厤" value="鐢靛瓙瑁呴厤" />
-        <el-option label="姹借溅闆堕儴浠�" value="姹借溅闆堕儴浠�" />
-        <el-option label="鍖荤枟鍣ㄦ" value="鍖荤枟鍣ㄦ" />
-        <el-option label="鍖栧伐鏉愭枡" value="鍖栧伐鏉愭枡" />
-        <el-option label="绾虹粐鏈嶈" value="绾虹粐鏈嶈" />
-        <el-option label="瀹跺叿鍒堕��" value="瀹跺叿鍒堕��" />
-      </el-select>
-    </el-form-item>
-
-    <el-row :gutter="16">
-      <el-col :span="12">
-        <el-form-item label="鐢熸垚鏉℃暟">
-          <el-slider
-            v-model="generateForm.countRange"
-            range
-            :min="1"
-            :max="50"
-            :marks="{1:'1', 10:'10', 20:'20', 50:'50'}"
-          />
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item label="鏃堕棿鑼冨洿">
-          <el-date-picker
-            v-model="generateForm.dateRange"
-            type="daterange"
-            range-separator="鑷�"
-            start-placeholder="寮�濮嬫棩鏈�"
-            end-placeholder="缁撴潫鏃ユ湡"
-            value-format="yyyy-MM-dd"
-          />
-        </el-form-item>
-      </el-col>
-    </el-row>
-
-    <el-form-item label="琛ュ厖淇℃伅">
-      <el-input
-        v-model="generateForm.additionalInfo"
-        type="textarea"
-        :rows="2"
-        placeholder="濡傦細浜у搧浠ラ噾灞為浂閮ㄤ欢涓轰富锛屽鎴烽泦涓湪鍗庝笢鍦板尯"
-      />
-    </el-form-item>
-
-    <el-form-item>
-      <el-button type="primary" @click="handleGenerate" :loading="generating">
-        寮�濮嬬敓鎴�
-      </el-button>
-      <el-button @click="handleCheckFirst" :loading="checking">
-        鍏堟娴嬪啀鐢熸垚
-      </el-button>
-    </el-form-item>
-  </el-form>
-</el-card>
-```
-
-### 3. data 鏁版嵁
-
-```js
-data() {
-  return {
-    generateForm: {
-      modules: [],
-      industries: [],
-      countRange: [3, 10],
-      dateRange: [],
-      additionalInfo: '',
-    },
-    generating: false,
-    generateResult: null,
-  }
-}
-```
-
-### 4. 鏂规硶
-
-```js
-methods: {
-  // 鐩存帴鐢熸垚锛堝唴閮ㄨ嚜鍔ㄦ娴嬶級
-  async handleGenerate() {
-    if (this.generateForm.modules.length === 0) {
-      this.$message.warning('璇疯嚦灏戦�夋嫨涓�涓ā鍧�')
-      return
-    }
-    this.generating = true
-    try {
-      const res = await request.post('/mock/generate', {
-        modules: this.generateForm.modules,
-        industries: this.generateForm.industries,
-        countMin: this.generateForm.countRange[0],
-        countMax: this.generateForm.countRange[1],
-        dateStart: this.generateForm.dateRange[0] || null,
-        dateEnd: this.generateForm.dateRange[1] || null,
-        additionalInfo: this.generateForm.additionalInfo,
-      })
-      if (res.code === 200) {
-        this.generateResult = res.data
-        this.$message.success(`鎴愬姛鐢熸垚 ${res.data.totalGenerated} 鏉℃暟鎹甡)
-      } else {
-        // 鍩虹鏁版嵁涓嶈冻
-        this.generateResult = res.data
-        this.checkResult = res.data.checkResult
-        this.$message.warning(res.msg)
-      }
-    } finally {
-      this.generating = false
-    }
-  },
-
-  // 鍏堟娴嬪啀鐢熸垚
-  async handleCheckFirst() {
-    await this.handleCheck()
-    if (this.checkResult && this.checkResult.passedItems === this.checkResult.totalItems) {
-      await this.handleGenerate()
-    } else {
-      this.$message.warning('璇峰厛琛ラ綈鍩虹鏁版嵁鍚庡啀鐢熸垚')
-    }
-  },
-}
-```
-
-## 娉ㄦ剰浜嬮」
-
-- `POST /mock/generate` 鍐呴儴浼氳嚜鍔ㄨ皟鐢ㄦ暟鎹娴嬶紝涓嶉渶瑕佹墜鍔ㄥ垎涓ゆ璧�
-- AI 鐢熸垚鐨勬暟鎹細灏介噺绗﹀悎琛屼笟鐗瑰緛锛屼絾寤鸿鐢熸垚鍚庢鏌ュ叧閿暟鎹殑鍚堢悊鎬�
-- 鐢熶骇妯″潡鍜屽簱瀛樻ā鍧椾緷璧栦骇鍝佹暟鎹紙Product/ProductModel锛夛紝璇风‘淇濆熀纭�鏁版嵁涓湁浜у搧
-- 閿�鍞彴璐︾殑鍚堝悓閲戦鐢变骇鍝佹槑缁嗚嚜鍔ㄨ绠楋紝AI 鍙渶鐢熸垚浜у搧琛岀殑鍗曚环鍜屾暟閲�
-- 浜х敓鐨勬暟鎹�氳繃鏈嶅姟灞傚垱寤猴紝浼氳嚜鍔ㄥ~鍏� tenantId/deptId/createUser 绛夊瓧娈�
diff --git a/docs/routing_operation_plan_person.md b/docs/routing_operation_plan_person.md
deleted file mode 100644
index 999d9a3..0000000
--- a/docs/routing_operation_plan_person.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# 鐢熶骇宸ュ簭鏂板璁″垝浜哄憳鍜岃鍒掓墽琛屼汉鍛�
-
-## 娑夊強椤甸潰
-
-- 宸ヨ壓璺嚎宸ュ簭绠$悊椤甸潰锛坱echnology_routing_operation锛�
-
-## API
-
-娑夊強浠ヤ笅鎺ュ彛鐨勮姹�/鍝嶅簲鏂板瀛楁锛�
-
-| 鏂规硶 | 璺緞 | 璇存槑 |
-|------|------|------|
-| GET | /technologyRoutingOperation/page | 鍒嗛〉鏌ヨ |
-| GET | /technologyRoutingOperation/list | 鍒楄〃鏌ヨ |
-| GET | /technologyRoutingOperation/{id} | 璇︽儏 |
-| POST | /technologyRoutingOperation/add | 鏂板 |
-| PUT | /technologyRoutingOperation | 淇敼 |
-
-**鏂板鍝嶅簲/璇锋眰瀛楁锛�**
-
-| 鍙傛暟 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
-|------|------|------|------|
-| planPerson | Long | 鍚� | 璁″垝浜哄憳ID |
-| executor | Long | 鍚� | 璁″垝鎵ц浜哄憳ID |
-| planPersonName | String | 鍚� | 璁″垝浜哄憳濮撳悕锛堝搷搴斿瓧娈碉紝鍚庣鑷姩鍏宠仈鏌ヨ锛� |
-| executorName | String | 鍚� | 璁″垝鎵ц浜哄憳濮撳悕锛堝搷搴斿瓧娈碉紝鍚庣鑷姩鍏宠仈鏌ヨ锛� |
-
-## 鍓嶇淇敼鐐�
-
-### 1. 琛ㄥ崟鏂板瀛楁
-
-鍦ㄥ伐搴忚〃鍗曚腑鏂板涓や釜浜哄憳閫夋嫨涓嬫媺妗嗭細
-
-```html
-<el-form-item label="璁″垝浜哄憳" prop="planPerson">
-  <el-select v-model="processForm.planPerson"
-             placeholder="璇烽�夋嫨璁″垝浜哄憳"
-             clearable
-             filterable
-             style="width: 100%">
-    <el-option v-for="item in employeeOptions"
-               :key="item.id"
-               :label="item.staffName"
-               :value="item.id" />
-  </el-select>
-</el-form-item>
-<el-form-item label="璁″垝鎵ц浜哄憳" prop="executor">
-  <el-select v-model="processForm.executor"
-             placeholder="璇烽�夋嫨璁″垝鎵ц浜哄憳"
-             clearable
-             filterable
-             style="width: 100%">
-    <el-option v-for="item in employeeOptions"
-               :key="item.id"
-               :label="item.staffName"
-               :value="item.id" />
-  </el-select>
-</el-form-item>
-```
-
-### 2. data 鏁版嵁
-
-```js
-data() {
-  return {
-    processForm: {
-      planPerson: null,
-      executor: null,
-      // ...鍏朵粬瀛楁
-    },
-    employeeOptions: [],  // 鍛樺伐鍒楄〃锛岄渶浠庢帴鍙h幏鍙�
-  }
-}
-```
-
-### 3. 琛ㄦ牸鍒楁柊澧�
-
-鍒楄〃涓彲鐩存帴浣跨敤鍚庣杩斿洖鐨勫鍚嶅睍绀猴細
-
-```html
-<el-table-column label="璁″垝浜哄憳" prop="planPersonName" />
-<el-table-column label="璁″垝鎵ц浜哄憳" prop="executorName" />
-```
-
-## 娉ㄦ剰浜嬮」
-
-- `planPerson` 鍜� `executor` 瀛樺偍鐨勬槸鍛樺伐ID锛圠ong绫诲瀷锛夛紝鎻愪氦琛ㄥ崟鏃朵紶ID
-- 鍝嶅簲涓� `planPersonName` 鍜� `executorName` 鐢卞悗绔�氳繃 `staff_on_job` 琛ㄨ嚜鍔ㄥ叧鑱旀煡璇紝鍓嶇鏃犻渶棰濆杞崲
-- 鍛樺伐涓嬫媺鍒楄〃鏁版嵁闇�浠庡憳宸ユ帴鍙h幏鍙栵紙鍙傝�冪幇鏈� `employeeOptions` 鏁版嵁婧愶級
-- 鏁版嵁搴撹縼绉籗QL锛歚doc/20260615_add_plan_person_and_executor_to_routing_operation.sql`
-- 鐢熶骇璁㈠崟宸ュ簭锛坄production_order_routing_operation`锛夊悓姝ユ敮鎸佽繖涓や釜瀛楁
diff --git a/src/main/resources/application-btw.yml b/src/main/resources/application-btw.yml
deleted file mode 100644
index c532961..0000000
--- a/src/main/resources/application-btw.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-btw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_btw
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9101 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-lt.yml b/src/main/resources/application-dev.yml
similarity index 86%
rename from src/main/resources/application-lt.yml
rename to src/main/resources/application-dev.yml
index ef3fcb6..9458347 100644
--- a/src/main/resources/application-lt.yml
+++ b/src/main/resources/application-dev.yml
@@ -7,14 +7,14 @@
   # 鐗堟潈骞翠唤
   copyrightYear: 2025
   # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /data/javaWork/product-inventory-management/file
+  profile: D:/ruoyi/uploadPath
 
   # 鑾峰彇ip鍦板潃寮�鍏�
   addressEnabled: false
   # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
   captchaType: math
   # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
+  approvalNumberPrefix: DEV
 
   # 涓帹 Unipush 閰嶇疆
   getui:
@@ -37,6 +37,9 @@
     uri-encoding: UTF-8
     # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
     accept-count: 1000
+    max-swallow-size: -1          # -1 琛ㄧず涓嶉檺鍒�
+    max-http-form-post-size: -1   # POST 璇锋眰浣撲笉闄愬埗
+    connection-timeout: 60000     # 杩炴帴瓒呮椂鏃堕棿(姣)
     threads:
       # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
       max: 800
@@ -46,17 +49,10 @@
 # 鏃ュ織閰嶇疆
 logging:
   level:
+    org.quartz: DEBUG
     com.ruoyi: warn
     org.springframework: warn
 
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
 # 鐢ㄦ埛閰嶇疆
 user:
   password:
@@ -67,15 +63,17 @@
 
 # Spring閰嶇疆
 spring:
+  main:
+    allow-circular-references: true # 鍏佽寰幆渚濊禆
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        url: jdbc:mysql://172.17.0.1:11101/product-inventory-management-lt?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://localhost:3306/product-inventory-management-jhy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: xd@123456..
+        password: 200381
       # 浠庡簱鏁版嵁婧�
       slave:
         # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
@@ -145,18 +143,18 @@
   # redis 閰嶇疆
   data:
     mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_lt
+      uri: mongodb://114.132.189.42:9028/chat_memory_db
     # redis 閰嶇疆
     redis:
       # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
+      host: 127.0.0.1
+      #      host: 172.17.0.1
       # 绔彛锛岄粯璁や负6379
-      port: 11102
+      port: 6379
       # 鏁版嵁搴撶储寮�
       database: 0
       # 瀵嗙爜
-      #    password: root2022!
+      #    password: JHY20260510.
       password:
 
       # 杩炴帴瓒呮椂鏃堕棿
@@ -171,7 +169,6 @@
           max-active: 8
           # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
           max-wait: -1ms
-
   # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
   quartz:
     job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
@@ -197,11 +194,12 @@
             threadPriority: 5
             makeThreadsDaemons: true
           updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
+
 # token閰嶇疆
 token:
   # 浠ょ墝鑷畾涔夋爣璇�
   header: Authorization
-  # 浠ょ墝瀵嗛挜
+  # 浠ょ墝瀵嗛挜 鏂扮増jwt瀵嗛挜闀垮害蹇呴』64浣嶄互涓�
   secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
   # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
   expireTime: 450
@@ -256,11 +254,11 @@
 
 # 鏂囦欢涓婁紶閰嶇疆
 file:
-  temp-dir: /data/javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /data/javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /data/javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://36.213.180.217:9200 # 鍩熷悕鍓嶇紑
+  temp-dir: D:/ruoyi/uploadPath/temp/uploads   # 涓存椂鐩綍 鍚庢湡鍒犻櫎
+  upload-dir: D:/ruoyi/uploadPathprod/uploads # 姝e紡鐩綍 鍚庢湡鍒犻櫎
+  path: D:/ruoyi/uploadPath/path/uploads # 涓婁紶鐩綍
+  urlPrefix: /common # 閾炬帴鍓嶇紑
+  domain: http://localhost/ # 鍩熷悕鍓嶇紑
   expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
   useLimit: 10 # 浣跨敤娆℃暟
   compress: true # 鏄惁鍘嬬缉
diff --git a/src/main/resources/application-hjgc.yml b/src/main/resources/application-hjgc.yml
deleted file mode 100644
index c49aa33..0000000
--- a/src/main/resources/application-hjgc.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:11101/product-inventory-management-hjgc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_hjgc
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 11102
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /data/javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /data/javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /data/javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://36.213.180.217:9013 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-hthb.yml b/src/main/resources/application-hthb.yml
deleted file mode 100644
index 543b8dd..0000000
--- a/src/main/resources/application-hthb.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-hthb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_hthb
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9089 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-jfhy.yml b/src/main/resources/application-jfhy.yml
deleted file mode 100644
index ffee8bc..0000000
--- a/src/main/resources/application-jfhy.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-jfhy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_jfhy
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9099 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-jhy.yml b/src/main/resources/application-jhy.yml
index 680fdc2..a74e01d 100644
--- a/src/main/resources/application-jhy.yml
+++ b/src/main/resources/application-jhy.yml
@@ -7,7 +7,7 @@
   # 鐗堟潈骞翠唤
   copyrightYear: 2025
   # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /home/ruoyi/uploadPath
+  profile: /home/javaWork/product-inventory-management/file
 
   # 鑾峰彇ip鍦板潃寮�鍏�
   addressEnabled: false
@@ -258,7 +258,7 @@
   upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍 鍚庢湡鍒犻櫎
   path: /javaWork/product-inventory-management/file/path/uploads # 涓婁紶鐩綍
   urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://127.0.0.1:7003 # 鍩熷悕鍓嶇紑
+  domain: http://223.15.233.27:9001/ # 鍩熷悕鍓嶇紑
   expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
   useLimit: 10 # 浣跨敤娆℃暟
   compress: true # 鏄惁鍘嬬缉
diff --git a/src/main/resources/application-khyy.yml b/src/main/resources/application-khyy.yml
deleted file mode 100644
index acb4712..0000000
--- a/src/main/resources/application-khyy.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-khyy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_khyy
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9093 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-lsy.yml b/src/main/resources/application-lsy.yml
deleted file mode 100644
index 821119e..0000000
--- a/src/main/resources/application-lsy.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-lsy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_lsy
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9083 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-myhb-pro.yml b/src/main/resources/application-myhb-pro.yml
deleted file mode 100644
index a94aa06..0000000
--- a/src/main/resources/application-myhb-pro.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9110
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-myhb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_qlmc
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-      #      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9095 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-nhxcl.yml b/src/main/resources/application-nhxcl.yml
deleted file mode 100644
index 5734844..0000000
--- a/src/main/resources/application-nhxcl.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-nhxcl?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: nhxcl@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_nhxcl
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-      #      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://127.0.0.1:9001 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-old-pro.yml b/src/main/resources/application-old-pro.yml
deleted file mode 100644
index c61ef80..0000000
--- a/src/main/resources/application-old-pro.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:9002/product-inventory-management-old-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: old@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_old
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://223.221.37.139:9000 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-qfsw.yml b/src/main/resources/application-qfsw.yml
deleted file mode 100644
index 4ae73ec..0000000
--- a/src/main/resources/application-qfsw.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-qfsw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_qfsw
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9079 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-qlmc-pro.yml b/src/main/resources/application-qlmc-pro.yml
deleted file mode 100644
index 1370c5d..0000000
--- a/src/main/resources/application-qlmc-pro.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9096
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-qlmc-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_qlmc
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-      #      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9095 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-qyhy.yml b/src/main/resources/application-qyhy.yml
deleted file mode 100644
index 069abdc..0000000
--- a/src/main/resources/application-qyhy.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:11101/product-inventory-management-qyhy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_qyhy
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 11102
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /data/javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /data/javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /data/javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://36.213.180.217:9011 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-rbhb-pro.yml b/src/main/resources/application-rbhb-pro.yml
deleted file mode 100644
index 744aee9..0000000
--- a/src/main/resources/application-rbhb-pro.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 鍏嬫媺鐜涗緷铻嶉偊鐜繚绉戞妧鏈夐檺鍏徃 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:11101/product-inventory-management-rbhb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_xjgm
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 11102
-      # 鏁版嵁搴撶储寮�
-      database: 14
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /data/javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /data/javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /data/javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://36.213.180.217:9018 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-xjgm-pro.yml b/src/main/resources/application-xjgm-pro.yml
deleted file mode 100644
index 74289b2..0000000
--- a/src/main/resources/application-xjgm-pro.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 鍏嬫媺鐜涗緷甯傛柊鑱氬伐璐告湁闄愯矗浠诲叕鍙� 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:11101/product-inventory-management-xjgm?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_rbhb
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 11102
-      # 鏁版嵁搴撶储寮�
-      database: 15
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /data/javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /data/javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /data/javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://36.213.180.217:9016 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-xlgs.yml b/src/main/resources/application-xlgs.yml
deleted file mode 100644
index 0cdbd39..0000000
--- a/src/main/resources/application-xlgs.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-xlgs?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_xlgs
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9091 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-yss.yml b/src/main/resources/application-yss.yml
deleted file mode 100644
index 76f7ead..0000000
--- a/src/main/resources/application-yss.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-yss?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_yss
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9085 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)
diff --git a/src/main/resources/application-zdjc.yml b/src/main/resources/application-zdjc.yml
deleted file mode 100644
index ca0d5ee..0000000
--- a/src/main/resources/application-zdjc.yml
+++ /dev/null
@@ -1,268 +0,0 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ruoyi:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 3.8.9
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2025
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: /javaWork/product-inventory-management/file
-
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-  # 鍗忓悓瀹℃壒缂栧彿鍓嶇紑(閰嶇疆鏂囦欢鍚庣紑鍛藉悕)
-  approvalNumberPrefix: NEW
-
-  # 涓帹 Unipush 閰嶇疆
-  getui:
-    appId: PfjyAAE0FK64FaO1w2CMb1
-    appKey: zTMb831OEL6J4GK1uE3Ob4
-    masterSecret: K1GFtsv42v61tXGnF7SGE5
-    domain: https://restapi.getui.cn/v2/
-    # 绂荤嚎鎺ㄩ�佷娇鐢ㄧ殑鍖呭悕/缁勪欢鍚�
-    intentComponent: uni.app.UNI099A590/io.dcloud.PandoraEntry
-
-# 寮�鍙戠幆澧冮厤缃�
-server:
-  # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 9003
-  servlet:
-    # 搴旂敤鐨勮闂矾寰�
-    context-path: /
-  tomcat:
-    # tomcat鐨刄RI缂栫爜
-    uri-encoding: UTF-8
-    # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
-    accept-count: 1000
-    threads:
-      # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
-      max: 800
-      # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
-      min-spare: 100
-
-# 鏃ュ織閰嶇疆
-logging:
-  level:
-    com.ruoyi: warn
-    org.springframework: warn
-
-minio:
-  endpoint: http://114.132.189.42/
-  port: 7019
-  secure: false
-  accessKey: admin
-  secretKey: 12345678
-  preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
-  default-bucket: jxc
-# 鐢ㄦ埛閰嶇疆
-user:
-  password:
-    # 瀵嗙爜鏈�澶ч敊璇鏁�
-    maxRetryCount: 5
-    # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
-    lockTime: 10
-
-# Spring閰嶇疆
-spring:
-  datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
-    driverClassName: com.mysql.cj.jdbc.Driver
-    druid:
-      # 涓诲簱鏁版嵁婧�
-      master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-zdjc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: root
-        password: xd@123456..
-      # 浠庡簱鏁版嵁婧�
-      slave:
-        # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
-        enabled: false
-        url:
-        username:
-        password:
-      # 鍒濆杩炴帴鏁�
-      initialSize: 5
-      # 鏈�灏忚繛鎺ユ睜鏁伴噺
-      minIdle: 10
-      # 鏈�澶ц繛鎺ユ睜鏁伴噺
-      maxActive: 20
-      # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
-      maxWait: 60000
-      # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
-      connectTimeout: 30000
-      # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
-      socketTimeout: 60000
-      # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
-      timeBetweenEvictionRunsMillis: 60000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      minEvictableIdleTimeMillis: 300000
-      # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
-      maxEvictableIdleTimeMillis: 900000
-      # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
-      testWhileIdle: true
-      testOnBorrow: false
-      testOnReturn: false
-      webStatFilter:
-        enabled: true
-      statViewServlet:
-        enabled: true
-        # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
-        allow:
-        url-pattern: /druid/*
-        # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
-        login-username: ruoyi
-        login-password: 123456
-      filter:
-        stat:
-          enabled: true
-          # 鎱QL璁板綍
-          log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: true
-        wall:
-          config:
-            multi-statement-allow: true
-  # 璧勬簮淇℃伅
-  messages:
-    # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
-    basename: i18n/messages
-  # 鏂囦欢涓婁紶
-  servlet:
-    multipart:
-      # 鍗曚釜鏂囦欢澶у皬
-      max-file-size: 1GB
-      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-      max-request-size: 2GB
-  # 鏈嶅姟妯″潡
-  devtools:
-    restart:
-      # 鐑儴缃插紑鍏�
-      enabled: false
-  # redis 閰嶇疆
-  data:
-    mongodb:
-      uri: mongodb://114.132.189.42:9028/chat_memory_db_zdjc
-    # redis 閰嶇疆
-    redis:
-      # 鍦板潃
-#      host: 127.0.0.1
-      host: 172.17.0.1
-      # 绔彛锛岄粯璁や负6379
-      port: 6379
-      # 鏁版嵁搴撶储寮�
-      database: 0
-      # 瀵嗙爜
-      #    password: root2022!
-      password:
-
-      # 杩炴帴瓒呮椂鏃堕棿
-      timeout: 10s
-      lettuce:
-        pool:
-          # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-          min-idle: 0
-          # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
-          max-idle: 8
-          # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
-          max-active: 8
-          # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
-          max-wait: -1ms
-
-  # Quartz瀹氭椂浠诲姟閰嶇疆锛堟柊澧為儴鍒嗭級
-  quartz:
-    job-store-type: jdbc  # 浣跨敤鏁版嵁搴撳瓨鍌�
-    jdbc:
-      initialize-schema: never  # 棣栨杩愯鏃惰嚜鍔ㄥ垱寤鸿〃缁撴瀯锛屾垚鍔熷悗鏀逛负never
-      schema: classpath:org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql  # MySQL琛ㄧ粨鏋勮剼鏈�
-    properties:
-      org:
-        quartz:
-          scheduler:
-            instanceName: RuoYiScheduler
-            instanceId: AUTO
-          jobStore:
-            class: org.quartz.impl.jdbcjobstore.JobStoreTX
-            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate  # MySQL閫傞厤
-            tablePrefix: qrtz_  # 琛ㄥ悕鍓嶇紑锛屼笌鑴氭湰涓�鑷�
-            isClustered: false  # 鍗曡妭鐐规ā寮忥紙闆嗙兢闇�鏀逛负true锛�
-            clusterCheckinInterval: 10000
-            txIsolationLevelSerializable: true
-          threadPool:
-            class: org.quartz.simpl.SimpleThreadPool
-            threadCount: 10  # 绾跨▼姹犲ぇ灏�
-            threadPriority: 5
-            makeThreadsDaemons: true
-          updateCheck: false  # 鍏抽棴鐗堟湰妫�鏌�
-# token閰嶇疆
-token:
-  # 浠ょ墝鑷畾涔夋爣璇�
-  header: Authorization
-  # 浠ょ墝瀵嗛挜
-  secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
-  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 450
-
-# MyBatis Plus閰嶇疆
-mybatis-plus:
-  # 鎼滅储鎸囧畾鍖呭埆鍚�   鏍规嵁鑷繁鐨勯」鐩潵
-  typeAliasesPackage: com.ruoyi.**.pojo
-  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-  mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
-  global-config:
-    enable-sql-runner: true
-    db-config:
-      id-type: auto
-
-# PageHelper鍒嗛〉鎻掍欢
-pagehelper:
-  helperDialect: mysql
-  supportMethodsArguments: true
-  params: count=countSql
-
-# Swagger閰嶇疆
-swagger:
-  # 鏄惁寮�鍚痵wagger
-  enabled: true
-  # 璇锋眰鍓嶇紑
-  pathMapping: /dev-api
-
-# 闃叉XSS鏀诲嚮
-xss:
-  # 杩囨护寮�鍏�
-  enabled: true
-  # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
-  excludes: /system/notice
-  # 鍖归厤閾炬帴
-  urlPatterns: /system/*,/monitor/*,/tool/*
-
-# 浠g爜鐢熸垚
-gen:
-  # 浣滆��
-  author: ruoyi
-  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
-  packageName: com.ruoyi.project.system
-  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
-  autoRemovePre: false
-  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
-  tablePrefix: sys_
-  # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
-  allowOverwrite: false
-
-# 鏂囦欢涓婁紶閰嶇疆
-file:
-  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # 涓存椂鐩綍
-  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # 姝e紡鐩綍
-  path: /javaWork/product-inventory-management/file # 涓婁紶鐩綍
-  urlPrefix: /prod-api/common # 閾炬帴鍓嶇紑
-  domain: http://1.15.17.182:9081 # 鍩熷悕鍓嶇紑
-  expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
-  useLimit: 10 # 浣跨敤娆℃暟
-  compress: true # 鏄惁鍘嬬缉
-  needCompressSize: 10MB # 鍘嬬缉闃堝��
-  compressQuality: 0.5 # 鍘嬬缉璐ㄩ噺(0.0-1.0)

--
Gitblit v1.9.3