From 685bc509fbd7bec9623429af0b5e548f550f27d7 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 11 七月 2025 20:16:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java           |  152 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java          |  287 ++--
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnologyStatusEnum.java                      |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceChangeService.java                 |   14 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java     |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceSpareService.java                  |   14 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java            |  153 ++
 db/LS/eam_inspection_order_detail.sql                                                                              |  143 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceSpareMapper.java                     |   14 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java                   |  167 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java        |   18 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceSpareMapper.xml                  |    5 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/rule/WorkShopOrgCodeProRule.java         |    2 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java                   |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceChangeMapper.java                    |   14 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceSpareServiceImpl.java          |   18 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java |   84 -
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java                |   14 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java                  |  129 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java                    |  195 +-
 db/LS/eam_week_inspection_detail.sql                                                                               |  175 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java         |   46 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java         |   18 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml                |    5 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java                       |    6 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java             |  153 ++
 db/LS/eam_inspection_order.sql                                                                                     |  215 +++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrderDetail.java              |  142 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java                         |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java            |  494 ++++--
 db/LS/sys_business_code_rule.sql                                                                                   |  843 ++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java                   |   14 
 /dev/null                                                                                                          |  139 --
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java                    |   54 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceChangeMapper.xml                 |    5 
 db/LS/sys_position.sql                                                                                             |  124 +
 db/LS/dict_ls.sql                                                                                                  |   28 
 37 files changed, 3,215 insertions(+), 685 deletions(-)

diff --git a/db/LS/dict_ls.sql b/db/LS/dict_ls.sql
new file mode 100644
index 0000000..de01d1e
--- /dev/null
+++ b/db/LS/dict_ls.sql
@@ -0,0 +1,28 @@
+--鐐规宸ュ崟鐘舵��
+delete from [dbo].[sys_dict] where dict_code='inspection_status';
+delete from [dbo].[sys_dict_item] where dict_id in (select id from [dbo].[sys_dict] where dict_code='inspection_status');
+
+INSERT INTO [dbo].[sys_dict] ([id], [dict_name], [dict_code], [description], [del_flag], [create_by], [create_time], [update_by], [update_time], [type]) VALUES (N'1907309268858290177', N'鐐规鐘舵��', N'inspection_status', N'璁惧绠$悊-鐐规鐘舵��', 0, N'admin', '2025-04-02 13:49:00.0000000', N'admin', '2025-04-02 13:49:19.6510000', NULL);
+
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1907309380946870273', N'1907309268858290177', N'寰呯偣妫�', N'WAIT_INSPECTION', '', 1, 1, N'admin', '2025-04-02 13:49:27.0000000', N'admin', '2025-05-07 10:11:47.5670000');
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1907309408746717185', N'1907309268858290177', N'寰呯‘璁�', N'WAIT_CONFIRM', '', 3, 1, N'admin', '2025-04-02 13:49:33.0000000', N'admin', '2025-05-07 10:12:06.4320000');
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1907309436466872322', N'1907309268858290177', N'宸插畬鎴�', N'COMPLETE', '', 4, 1, N'admin', '2025-04-02 13:49:40.0000000', N'admin', '2025-05-07 10:12:19.2070000');
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1909417976002236418', N'1907309268858290177', N'鐐规涓�', N'UNDER_INSPECTION', '', 2, 1, N'admin', '2025-04-08 09:28:15.0000000', N'admin', '2025-05-07 10:11:56.7550000');
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1909419871794089986', N'1907309268858290177', N'宸蹭綔搴�', N'ABOLISH', '', 5, 1, N'admin', '2025-04-08 09:35:47.0000000', N'admin', '2025-05-07 10:12:33.1970000');
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1919938438058639361', N'1907309268858290177', N'宸茶繃鏈�', N'EXPIRED', '', 6, 1, N'admin', '2025-05-07 10:12:49.0210000', NULL, NULL);
+
+--鐐规缁撴灉鐘舵��
+delete from [dbo].[sys_dict] where dict_code='inspection_project_result';
+delete from [dbo].[sys_dict_item] where dict_id in (select id from [dbo].[sys_dict] where dict_code='inspection_project_result');
+
+INSERT INTO [dbo].[sys_dict] ([id], [dict_name], [dict_code], [description], [del_flag], [create_by], [create_time], [update_by], [update_time], [type]) VALUES (N'1745288324644782081', N'鐐规缁撴灉', N'inspection_project_result', '', 0, N'admin', '2024-01-11 11:35:37.1360000', NULL, NULL, NULL);
+
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1745288369645469697', N'1745288324644782081', N'姝e父', N'NORMAL', '', 1, 1, N'admin', '2024-01-11 11:35:47.0000000', N'admin', '2025-07-08 15:31:49.8100000');
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1745288400943366146', N'1745288324644782081', N'寮傚父', N'ANOMALY', '', 1, 1, N'admin', '2024-01-11 11:35:55.0000000', N'admin', '2025-07-08 15:29:58.8960000');
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1745288434866896897', N'1745288324644782081', N'鏁呴殰鍋滄満', N'FAULT', '', 2, 1, N'admin', '2024-01-11 11:36:03.0000000', N'admin', '2025-07-08 15:30:07.6710000');
+INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1745288466827493377', N'1745288324644782081', N'娌″紑鏈�', N'CLOSE', '', 3, 1, N'admin', '2024-01-11 11:36:11.0000000', N'admin', '2025-07-08 15:30:16.7710000');
+
+--缁翠慨閮ㄩ棬鐝粍缂栫爜瑙勫垯
+delete from [dbo].[sys_fill_rule] where rule_code='org_repair_deport_rule';
+
+INSERT INTO [dbo].[sys_fill_rule] ([id], [rule_name], [rule_code], [rule_class], [rule_params], [update_by], [update_time], [create_by], [create_time]) VALUES (N'1676142178556973058', N'缁翠慨閮ㄩ棬鐝粍缂栫爜鐢熸垚', N'org_repair_deport_rule', N'org.jeecg.modules.system.rule.OrgCodeRepDepRule', N'{"parentId":""}', N'admin', '2025-07-03 11:27:21.0000000', NULL, NULL);
diff --git a/db/LS/eam_inspection_order.sql b/db/LS/eam_inspection_order.sql
new file mode 100644
index 0000000..593d889
--- /dev/null
+++ b/db/LS/eam_inspection_order.sql
@@ -0,0 +1,215 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : localhost-sqlserver
+ Source Server Type    : SQL Server
+ Source Server Version : 11003000 (11.00.3000)
+ Source Host           : localhost:1433
+ Source Catalog        : LXZN_TEST_430_NEW
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 11003000 (11.00.3000)
+ File Encoding         : 65001
+
+ Date: 11/07/2025 10:50:26
+*/
+
+
+-- ----------------------------
+-- Table structure for eam_inspection_order
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[eam_inspection_order]') AND type IN ('U'))
+	DROP TABLE [dbo].[eam_inspection_order]
+GO
+
+CREATE TABLE [dbo].[eam_inspection_order] (
+  [id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [order_num] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [equipment_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [standard_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [inspection_date] datetime2(7)  NULL,
+  [operate_time] datetime2(7)  NULL,
+  [operator] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [expiration_time] datetime2(7)  NULL,
+  [creation_method] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [inspection_status] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [confirm_user] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [confirm_deal_type] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [confirm_comment] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [confirm_time] datetime2(7)  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [del_flag] int  NULL,
+  [create_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(7)  NULL,
+  [update_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [update_time] datetime2(7)  NULL,
+  [hf_code] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[eam_inspection_order] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓婚敭',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'宸ュ崟鍙�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'order_num'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'璁惧ID',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'equipment_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏍囧噯ID',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'standard_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规鏃ユ湡',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'inspection_date'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'operate_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'operator'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规杩囨湡鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'expiration_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏂瑰紡',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'creation_method'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规鐘舵��',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'inspection_status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'缁翠慨宸ョ‘璁や汉',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'confirm_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'纭绫诲瀷',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'confirm_deal_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'纭鎰忚',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'confirm_comment'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'纭鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'confirm_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'澶囨敞',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒犻櫎鏍囪',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'del_flag'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'update_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'HF缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order',
+'COLUMN', N'hf_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规宸ュ崟',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order'
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table eam_inspection_order
+-- ----------------------------
+ALTER TABLE [dbo].[eam_inspection_order] ADD CONSTRAINT [PK__eam_insp__3213E83F513910DD] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
+ON [PRIMARY]
+GO
+
diff --git a/db/LS/eam_inspection_order_detail.sql b/db/LS/eam_inspection_order_detail.sql
new file mode 100644
index 0000000..df8abd0
--- /dev/null
+++ b/db/LS/eam_inspection_order_detail.sql
@@ -0,0 +1,143 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : localhost-sqlserver
+ Source Server Type    : SQL Server
+ Source Server Version : 11003000 (11.00.3000)
+ Source Host           : localhost:1433
+ Source Catalog        : LXZN_TEST_430_NEW
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 11003000 (11.00.3000)
+ File Encoding         : 65001
+
+ Date: 11/07/2025 10:50:33
+*/
+
+
+-- ----------------------------
+-- Table structure for eam_inspection_order_detail
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[eam_inspection_order_detail]') AND type IN ('U'))
+	DROP TABLE [dbo].[eam_inspection_order_detail]
+GO
+
+CREATE TABLE [dbo].[eam_inspection_order_detail] (
+  [id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [order_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [item_code] int  NULL,
+  [item_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [item_demand] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [inspection_result] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [report_flag] nvarchar(1) COLLATE Chinese_PRC_CI_AS  NULL,
+  [exception_description] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(7)  NULL,
+  [update_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [update_time] datetime2(7)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[eam_inspection_order_detail] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓婚敭',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'宸ュ崟ID',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'order_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'椤圭洰搴忓彿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'item_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'淇濆吇椤圭洰',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'item_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'淇濆吇瑕佹眰',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'item_demand'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规缁撴灉;姝e父銆佸紓甯搞�佸叧鏈恒�佹晠闅�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'inspection_result'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鎶ヤ慨鏍囪',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'report_flag'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'寮傚父鎻忚堪',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'exception_description'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'update_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规宸ュ崟鏄庣粏',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_inspection_order_detail'
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table eam_inspection_order_detail
+-- ----------------------------
+ALTER TABLE [dbo].[eam_inspection_order_detail] ADD CONSTRAINT [PK__eam_insp__3213E83FB31E58DA] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
+ON [PRIMARY]
+GO
+
diff --git a/db/LS/eam_week_inspection_detail.sql b/db/LS/eam_week_inspection_detail.sql
new file mode 100644
index 0000000..8b3076b
--- /dev/null
+++ b/db/LS/eam_week_inspection_detail.sql
@@ -0,0 +1,175 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : localhost-sqlserver
+ Source Server Type    : SQL Server
+ Source Server Version : 11003000 (11.00.3000)
+ Source Host           : localhost:1433
+ Source Catalog        : LXZN_TEST_430_NEW
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 11003000 (11.00.3000)
+ File Encoding         : 65001
+
+ Date: 11/07/2025 10:50:40
+*/
+
+
+-- ----------------------------
+-- Table structure for eam_week_inspection_detail
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[eam_week_inspection_detail]') AND type IN ('U'))
+	DROP TABLE [dbo].[eam_week_inspection_detail]
+GO
+
+CREATE TABLE [dbo].[eam_week_inspection_detail] (
+  [id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [equipment_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [standard_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [plan_inspection_date] datetime2(7)  NULL,
+  [item_code] int  NULL,
+  [item_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [item_demand] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [inspection_result] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [report_flag] nvarchar(1) COLLATE Chinese_PRC_CI_AS  NULL,
+  [exception_description] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(7)  NULL,
+  [update_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [update_time] datetime2(7)  NULL,
+  [inspector] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [inspect_time] datetime2(7)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[eam_week_inspection_detail] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓婚敭',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'璁惧ID',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'equipment_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏍囧噯ID',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'standard_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'璁″垝鐐规鏃ユ湡',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'plan_inspection_date'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'椤圭洰搴忓彿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'item_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'淇濆吇椤圭洰',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'item_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'淇濆吇瑕佹眰',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'item_demand'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规缁撴灉;姝e父銆佸紓甯搞�佸叧鏈恒�佹晠闅�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'inspection_result'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鎶ヤ慨鏍囪',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'report_flag'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'寮傚父鎻忚堪',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'exception_description'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'update_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'inspector'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐐规鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail',
+'COLUMN', N'inspect_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍛ㄧ偣妫�鏄庣粏',
+'SCHEMA', N'dbo',
+'TABLE', N'eam_week_inspection_detail'
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table eam_week_inspection_detail
+-- ----------------------------
+ALTER TABLE [dbo].[eam_week_inspection_detail] ADD CONSTRAINT [PK__eam_week__3213E83FCC4AA6BA] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
+ON [PRIMARY]
+GO
+
diff --git a/db/LS/sys_business_code_rule.sql b/db/LS/sys_business_code_rule.sql
new file mode 100644
index 0000000..ad5f5c1
--- /dev/null
+++ b/db/LS/sys_business_code_rule.sql
@@ -0,0 +1,843 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : localhost-sqlserver
+ Source Server Type    : SQL Server
+ Source Server Version : 11003000 (11.00.3000)
+ Source Host           : localhost:1433
+ Source Catalog        : LXZN_TEST_430_NEW
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 11003000 (11.00.3000)
+ File Encoding         : 65001
+
+ Date: 01/07/2025 10:19:15
+*/
+
+
+-- ----------------------------
+-- Table structure for sys_business_code_rule
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_business_code_rule]') AND type IN ('U'))
+	DROP TABLE [dbo].[sys_business_code_rule]
+GO
+
+CREATE TABLE [dbo].[sys_business_code_rule] (
+  [id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [create_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(7)  NULL,
+  [update_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [update_time] datetime2(7)  NULL,
+  [del_flag] int  NULL,
+  [business_name] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [business_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [prefix] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [year_format] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [month_format] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [day_format] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [seq_length] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[sys_business_code_rule] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓婚敭',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'update_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒犻櫎鏍囪',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'del_flag'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓氬姟鍚嶇О',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'business_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓氬姟缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'business_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'缂栫爜鍓嶇紑',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'prefix'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'骞翠唤缂栫爜鏍煎紡',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'year_format'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏈堜唤缂栫爜鏍煎紡',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'month_format'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'澶� 缂栫爜鏍煎紡',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'day_format'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'搴忓彿闀垮害',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule',
+'COLUMN', N'seq_length'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓氬姟缂栫爜瑙勫垯',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_rule'
+GO
+
+
+-- ----------------------------
+-- Records of sys_business_code_rule
+-- ----------------------------
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1902203774154248193', N'admin', N'2025-03-19 11:41:35.6240000', NULL, NULL, N'0', N'宸ヨ壓鍙傛暟缂栫爜瑙勫垯', N'ProcessParametersRule', N'PRC', N'yyyy', N'MM', N'dd', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1902230626944094210', N'admin', N'2025-03-19 13:28:17.8550000', NULL, NULL, N'0', N'绮惧害鍙傛暟缂栫爜瑙勫垯', N'PrecisionParametersRule', N'PRS', N'yy', N'M', N'd', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1902243477803536385', N'admin', N'2025-03-19 14:19:21.0000000', N'admin', N'2025-03-19 14:36:36.2420000', N'0', N'澶囦欢璇疯喘鍗曠紪鐮佽鍒�', N'SpareRequisitionCodeRule', N'SRCR', N'yyyy', N'MM', N'dd', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1902247777776095233', N'admin', N'2025-03-19 14:36:26.9310000', NULL, NULL, N'0', N'鏁呴殰鍘熷洜缂栫爜瑙勫垯', N'EquipmentFaultReasonRule', N'EFR', N'yyyy', NULL, NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1902628155861540866', N'admin', N'2025-03-20 15:47:56.0000000', N'admin', N'2025-03-20 15:48:03.3090000', N'0', N'澶囦欢缂栫爜瑙勫垯', N'SparePartCodeRule', N'SP', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1905536888087691266', N'admin', N'2025-03-28 16:26:11.9360000', NULL, NULL, N'0', N'淇濆吇鏍囧噯瑙勫垯', N'MaintenanceStandardCodeRule', N'MSCR', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1907312309862907906', N'admin', N'2025-04-02 14:01:05.0000000', N'admin', N'2025-04-02 14:01:40.4970000', N'0', N'鐐规宸ュ崟鍙疯鍒�', N'EamInspectionOrder', N'EIO', N'yyyy', N'MM', N'dd', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1907665666767273985', N'admin', N'2025-04-03 13:25:12.3300000', NULL, NULL, N'0', N'鍛ㄤ繚宸ュ崟鍙疯鍒�', N'WeekMaintenanceCodeRule', N'WMCR', N'yyyy', N'MM', N'', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1909078470665629697', N'admin', N'2025-04-07 10:59:11.0260000', NULL, NULL, N'0', N'宀椾綅缂栫爜瑙勫垯', N'PositionCodeRule', N'PCR', NULL, NULL, NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1909083005541539841', N'admin', N'2025-04-07 11:17:12.0000000', N'admin', N'2025-04-07 11:18:37.9750000', N'0', N'缁翠慨宸ュ崟缂栫爜瑙勫垯', N'RepairOrderCodeRule', N'WX', N'yyyy', N'MM', N'', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1921760981629857793', N'admin', N'2025-05-12 10:54:57.0000000', N'admin', N'2025-05-12 10:55:07.6780000', N'0', N'宸ュ叿鍒嗙被缂栫爜瑙勫垯', N'ToolsClassify', N'GJFL', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1922563469951819778', N'admin', N'2025-05-14 16:03:45.3910000', NULL, NULL, N'0', N'浜屼繚缂栫爜瑙勫垯', N'SecondMaintenanceCodeRule', N'SMCR', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1922563625669550081', N'admin', N'2025-05-14 16:04:22.5200000', NULL, NULL, N'0', N'涓変繚缂栫爜瑙勫垯', N'ThirdMaintenanceCodeRule', N'TMCR', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1922942124129423361', N'admin', N'2025-05-15 17:08:23.0000000', N'admin', N'2025-05-26 11:18:57.5170000', N'0', N'璁惧鍊熷嚭褰掕繕瑙勫垯', N'EquipmentLeanOutCodeRule', N'LEAN', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1924402748380516353', N'admin', N'2025-05-19 17:52:23.5350000', NULL, NULL, N'0', N'宸ュ叿鍏ュ簱鐢宠鍗曠紪鐮佽鍒�', N'InBoundOrder', N'IBO', NULL, NULL, NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1924661750514237441', N'admin', N'2025-05-20 11:01:34.4720000', NULL, NULL, N'0', N'宸ュ叿鍑哄簱鐢宠鍗曠紪鐮佽鍒�', N'outBoundOrder', N'OBO', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1925388470684553218', N'admin', N'2025-05-22 11:09:18.0000000', N'admin', N'2025-05-26 11:19:04.7460000', N'0', N'璁惧灏佸瓨鍚皝瑙勫垯', N'EquipmentSealUpCodeRule', N'SEAL', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1925822932846026753', N'XU1129', N'2025-05-23 15:55:41.8760000', NULL, NULL, N'0', N'宸ュ叿鎶ユ崯鐢宠缂栫爜瑙勫垯', N'LossBound', N'LB', N'YYYY', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1925823234437455874', N'XU1129', N'2025-05-23 15:56:53.0000000', N'XU1129', N'2025-05-23 16:11:59.2590000', N'0', N'宸ュ叿鐩樼偣鐢宠缂栫爜瑙勫垯', N'stocktakingBound', N'TSB', N'YYYY', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1926840992444026882', N'admin', N'2025-05-26 11:21:06.0000000', N'admin', N'2025-05-26 11:32:19.5650000', N'0', N'璁惧璋冩嫧缂栫爜瑙勫垯', N'EquipmentTransferCodeRule', N'DB', N'yyyy', N'MM', N'', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1927198276936269826', N'admin', N'2025-05-27 11:00:49.0000000', N'admin', N'2025-05-27 11:57:07.4360000', N'0', N'璁惧鎶ュ簾缂栫爜瑙勫垯', N'EquipmentScrapCodeRule', N'SCRAP', N'YYYY', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1929779613475590145', N'admin', N'2025-06-03 13:58:08.0000000', N'admin', N'2025-06-03 13:59:52.3910000', N'0', N'澶囦欢棰嗙敤鐮佽鍒�', N'SparePartReceive', N'SPR', N'YYYY', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1930807505479364610', N'admin', N'2025-06-06 10:02:36.0000000', N'admin', N'2025-06-06 10:02:54.8780000', N'0', N'澶囦欢鎶ュ簾缂栫爜瑙勫垯', N'SparePartScrapCodeRule', N'BJBF', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1933399195028254721', N'admin', N'2025-06-13 13:41:03.0000000', N'admin', N'2025-06-13 13:41:21.5630000', N'0', N'鍒�鍏峰噯澶囧崟缂栫爜瑙勫垯', N'ToolPreparationOrder', N'TPO', N'yyyy', N'MM', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1934814744203427841', N'admin', N'2025-06-17 11:25:56.0000000', N'admin', N'2025-06-17 11:26:49.6290000', N'0', N'娌规恫缂栫爜瑙勫垯', N'EamFluidCodeRule', N'EFCR', N'yyyy', N'MM', N'dd', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_rule] ([id], [create_by], [create_time], [update_by], [update_time], [del_flag], [business_name], [business_code], [prefix], [year_format], [month_format], [day_format], [seq_length]) VALUES (N'1935244162453413890', N'admin', N'2025-06-18 15:52:18.0000000', N'admin', N'2025-06-30 21:25:31.6860000', N'0', N'璁惧閲囪喘璁″垝缂栫爜瑙勫垯', N'EquipmentPurchasePlanRule', N'EPPR', N'yyyy', N'MM', N'dd', N'4')
+GO
+
+
+-- ----------------------------
+-- Table structure for sys_business_code_seq
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_business_code_seq]') AND type IN ('U'))
+	DROP TABLE [dbo].[sys_business_code_seq]
+GO
+
+CREATE TABLE [dbo].[sys_business_code_seq] (
+  [id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [create_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(7)  NULL,
+  [update_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [update_time] datetime2(7)  NULL,
+  [rule_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [prefix] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [current_year] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [current_month] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [current_day] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [current_seq] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[sys_business_code_seq] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓婚敭',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'update_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'瑙勫垯缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'rule_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍓嶇紑',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'prefix'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'褰撳墠骞翠唤',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'current_year'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'褰撳墠鏈堜唤',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'current_month'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'褰撳墠澶�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'current_day'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'褰撳墠搴忓垪鍊�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq',
+'COLUMN', N'current_seq'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'涓氬姟缂栫爜鐢熸垚搴忓垪',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_business_code_seq'
+GO
+
+
+-- ----------------------------
+-- Records of sys_business_code_seq
+-- ----------------------------
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1902205061780410369', N'admin', N'2025-03-19 11:46:42.6460000', NULL, NULL, N'1902203774154248193', N'PRC', N'2025', N'03', N'19', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1902235168561631234', N'admin', N'2025-03-19 13:46:20.6620000', NULL, NULL, N'1902230626944094210', N'PRS', N'25', N'3', N'19', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1902250920492605442', N'admin', N'2025-03-19 14:48:56.2100000', N'admin', N'2025-05-13 16:35:50.3900000', N'1902247777776095233', N'EFR', N'2025', NULL, NULL, N'6')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1902251196090417154', N'admin', N'2025-03-19 14:50:01.9190000', N'admin', N'2025-03-19 17:20:57.2470000', N'1902243477803536385', N'SRCR', N'2025', N'03', N'19', N'2')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1902549646657036289', N'admin', N'2025-03-20 10:35:58.0780000', N'admin', N'2025-03-20 15:48:27.0070000', N'1902243477803536385', N'SRCR', N'2025', N'03', N'20', N'10')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1902628442475110402', N'admin', N'2025-03-20 15:49:04.4650000', N'admin', N'2025-03-21 13:46:25.4790000', N'1902628155861540866', N'SP', N'2025', N'03', NULL, N'57')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1906546213484642306', N'zhangherong', N'2025-03-31 11:16:53.8660000', N'admin', N'2025-03-31 17:47:46.8580000', N'1905536888087691266', N'MSCR', N'2025', N'03', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1906983134023303169', N'admin', N'2025-04-01 16:13:03.8240000', N'liuyuanheng', N'2025-04-09 16:39:37.7410000', N'1905536888087691266', N'MSCR', N'2025', N'04', NULL, N'12')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1907687764440817666', N'admin', N'2025-04-03 14:53:00.8230000', N'admin', N'2025-04-03 17:17:04.7240000', N'1907312309862907906', N'EIO', N'2025', N'04', N'03', N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1907713865418760194', N'admin', N'2025-04-03 16:36:43.7820000', N'admin', N'2025-04-10 09:48:33.1140000', N'1907665666767273985', N'WMCR', N'2025', N'04', NULL, N'9')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1909066020519829506', N'admin', N'2025-04-07 10:09:42.6780000', N'admin', N'2025-04-07 17:43:46.9490000', N'1907312309862907906', N'EIO', N'2025', N'04', N'07', N'18')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1909079838063259650', N'admin', N'2025-04-07 11:04:37.0390000', N'admin', N'2025-05-27 17:11:23.2560000', N'1909078470665629697', N'PCR', NULL, NULL, NULL, N'7')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1909140283565137921', N'admin', N'2025-04-07 15:04:48.3650000', N'admin', N'2025-04-09 15:13:46.8090000', N'1909083005541539841', N'WX', N'2025', N'04', NULL, N'9')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1909413919380381698', N'admin', N'2025-04-08 09:12:08.2290000', N'liuyuanheng', N'2025-04-08 17:59:10.4020000', N'1907312309862907906', N'EIO', N'2025', N'04', N'08', N'21')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1909775081225768961', N'admin', N'2025-04-09 09:07:15.9240000', N'liuyuanheng', N'2025-04-09 16:24:32.7670000', N'1907312309862907906', N'EIO', N'2025', N'04', N'09', N'15')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1910222976441880578', N'admin', N'2025-04-10 14:47:02.4670000', N'admin', N'2025-04-10 15:39:33.1630000', N'1907312309862907906', N'EIO', N'2025', N'04', N'10', N'12')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1911679027821326338', N'admin', N'2025-04-14 15:12:52.1660000', NULL, NULL, N'1907312309862907906', N'EIO', N'2025', N'04', N'14', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1912333935927021570', N'admin', N'2025-04-16 10:35:14.4260000', N'admin', N'2025-04-16 10:48:35.0470000', N'1907312309862907906', N'EIO', N'2025', N'04', N'16', N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1917417488566374402', N'admin', N'2025-04-30 11:15:27.8290000', NULL, NULL, N'1907312309862907906', N'EIO', N'2025', N'04', N'30', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1919939025538023426', N'admin', N'2025-05-07 10:15:09.0870000', NULL, NULL, N'1907312309862907906', N'EIO', N'2025', N'05', N'07', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1921770746502201345', N'admin', N'2025-05-12 11:33:45.3920000', NULL, NULL, N'1921760981629857793', N'GJFL', N'2025', N'05', NULL, N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1922521704305713153', N'admin', N'2025-05-14 13:17:47.6830000', N'admin', N'2025-05-23 09:57:43.3800000', N'1905536888087691266', N'MSCR', N'2025', N'05', NULL, N'10')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1922860589376278529', N'admin', N'2025-05-15 11:44:24.1810000', N'admin', N'2025-05-20 14:02:55.4210000', N'1922563469951819778', N'SMCR', N'2025', N'05', NULL, N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1922902573440782338', N'admin', N'2025-05-15 14:31:13.9610000', N'admin', N'2025-05-23 17:57:18.9220000', N'1922563625669550081', N'TMCR', N'2025', N'05', NULL, N'8')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1922946115039080449', N'admin', N'2025-05-15 17:24:15.0900000', N'admin', N'2025-05-30 15:55:44.3970000', N'1922942124129423361', N'LEAN', N'2025', N'05', NULL, N'19')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1924405751489536001', N'admin', N'2025-05-19 18:04:19.5380000', N'admin', N'2025-06-04 17:38:06.3530000', N'1924402748380516353', N'IBO', NULL, NULL, NULL, N'21')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1924663063441661954', N'admin', N'2025-05-20 11:06:47.4960000', N'admin', N'2025-05-20 11:06:53.4130000', N'1902243477803536385', N'SRCR', N'2025', N'05', N'20', N'2')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1924696535328579585', N'admin', N'2025-05-20 13:19:47.8100000', N'admin', N'2025-05-30 17:45:31.0570000', N'1924661750514237441', N'OBO', N'2025', N'05', NULL, N'22')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1924703916516208641', N'admin', N'2025-05-20 13:49:07.6250000', N'admin', N'2025-05-30 13:34:00.7890000', N'1902628155861540866', N'SP', N'2025', N'05', NULL, N'21')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1924742377038155778', N'admin', N'2025-05-20 16:21:57.3220000', N'admin', N'2025-05-20 16:26:04.6790000', N'1907312309862907906', N'EIO', N'2025', N'05', N'20', N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1925008251143806978', N'admin', N'2025-05-21 09:58:26.6500000', N'admin', N'2025-05-21 10:00:29.5430000', N'1902230626944094210', N'PRS', N'25', N'5', N'21', N'8')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1925388708644196353', N'admin', N'2025-05-22 11:10:14.7730000', N'admin', N'2025-05-26 09:25:32.7630000', N'1925388470684553218', N'SEAL', N'2025', N'05', NULL, N'8')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1925721230137196545', N'admin', N'2025-05-23 09:11:34.0930000', N'admin', N'2025-05-23 09:17:54.6240000', N'1902243477803536385', N'SRCR', N'2025', N'05', N'23', N'2')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1925733263605690370', N'admin', N'2025-05-23 09:59:23.0960000', NULL, NULL, N'1907312309862907906', N'EIO', N'2025', N'05', N'23', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1925826887617560578', N'XU1129', N'2025-05-23 16:11:24.7650000', NULL, NULL, N'1925823234437455874', N'sb', N'2025', N'05', NULL, N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1925827375918432258', N'XU1129', N'2025-05-23 16:13:21.2180000', N'admin', N'2025-05-26 14:06:17.9940000', N'1925823234437455874', N'TSB', N'2025', N'05', NULL, N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1925862287815938049', N'admin', N'2025-05-23 18:32:04.8560000', NULL, NULL, N'1925822932846026753', N'LB', N'2025', N'05', NULL, N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1926834324666683394', N'admin', N'2025-05-26 10:54:36.5080000', N'admin', N'2025-05-26 11:01:24.5150000', N'1902243477803536385', N'SRCR', N'2025', N'05', N'26', N'2')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1926843894491373569', N'admin', N'2025-05-26 11:32:38.1320000', N'admin', N'2025-05-27 10:58:43.0310000', N'1926840992444026882', N'DB', N'2025', N'05', NULL, N'9')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1927212610336874498', N'admin', N'2025-05-27 11:57:46.8400000', N'admin', N'2025-05-27 15:12:57.5920000', N'1927198276936269826', N'SCRAP', N'2025', N'05', NULL, N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1927241564099260417', N'admin', N'2025-05-27 13:52:49.9500000', N'admin', N'2025-05-27 17:20:07.9590000', N'1902243477803536385', N'SRCR', N'2025', N'05', N'27', N'12')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1927619521376444418', N'admin', N'2025-05-28 14:54:41.9960000', N'sqw', N'2025-05-28 18:20:59.0640000', N'1902243477803536385', N'SRCR', N'2025', N'05', N'28', N'5')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1928275207458533378', N'admin', N'2025-05-30 10:20:09.7310000', N'admin', N'2025-05-30 17:27:10.9680000', N'1902243477803536385', N'SRCR', N'2025', N'05', N'30', N'64')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1929716171297447937', N'admin', N'2025-06-03 09:46:02.2850000', N'admin', N'2025-06-03 16:07:23.8970000', N'1902243477803536385', N'SRCR', N'2025', N'06', N'03', N'12')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1929716193044914178', N'admin', N'2025-06-03 09:46:07.4720000', N'admin', N'2025-06-13 09:56:46.6060000', N'1902628155861540866', N'SP', N'2025', N'06', NULL, N'9')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1929779912953090050', N'admin', N'2025-06-03 13:59:19.4810000', N'admin', N'2025-06-06 15:09:40.5620000', N'1929779613475590145', N'SPR', N'2025', N'06', NULL, N'57')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1930141422624288770', N'admin', N'2025-06-04 13:55:50.1010000', NULL, NULL, N'1907312309862907906', N'EIO', N'2025', N'06', N'04', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1930185417001295874', N'admin', N'2025-06-04 16:50:39.1730000', N'admin', N'2025-06-16 14:18:23.2850000', N'1924661750514237441', N'OBO', N'2025', N'06', NULL, N'18')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1930552744431685633', N'admin', N'2025-06-05 17:10:16.8650000', N'admin', N'2025-06-05 17:15:51.5270000', N'1902243477803536385', N'SRCR', N'2025', N'06', N'05', N'5')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1930800566506713089', N'admin', N'2025-06-06 09:35:02.2450000', N'admin', N'2025-06-06 15:09:35.8540000', N'1902243477803536385', N'SRCR', N'2025', N'06', N'06', N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1930822662909685761', N'admin', N'2025-06-06 11:02:50.4570000', N'admin', N'2025-06-06 15:39:50.0790000', N'1930807505479364610', N'BJBF', N'2025', N'06', NULL, N'18')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1931954412185968642', N'admin', N'2025-06-09 14:00:00.4950000', N'admin', N'2025-06-09 14:00:02.2600000', N'1925822932846026753', N'LB', N'2025', N'06', NULL, N'2')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1931972588781166593', N'admin', N'2025-06-09 15:12:14.1130000', NULL, NULL, N'1902203774154248193', N'PRC', N'2025', N'06', N'09', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1932713779793424385', N'admin', N'2025-06-11 16:17:27.8320000', N'admin', N'2025-06-13 16:42:51.9590000', N'1925823234437455874', N'TSB', N'2025', N'06', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1933405091460493314', N'admin', N'2025-06-13 14:04:29.3980000', N'admin', N'2025-06-19 17:39:46.9190000', N'1933399195028254721', N'TPO', N'2025', N'06', NULL, N'5')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1934796748953202689', N'admin', N'2025-06-17 10:14:26.3820000', NULL, NULL, N'1902243477803536385', N'SRCR', N'2025', N'06', N'17', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1934817312719646722', N'admin', N'2025-06-17 11:36:09.1500000', N'admin', N'2025-06-17 13:50:33.1030000', N'1934814744203427841', N'EFCR', N'2025', N'06', N'17', N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1934853776615698434', N'admin', N'2025-06-17 14:01:02.8440000', N'admin', N'2025-06-20 13:16:23.0150000', N'1905536888087691266', N'MSCR', N'2025', N'06', NULL, N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1934854043465707521', N'admin', N'2025-06-17 14:02:06.4700000', N'admin', N'2025-06-20 14:49:18.3610000', N'1922563469951819778', N'SMCR', N'2025', N'06', NULL, N'4')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1934860730443403266', N'admin', N'2025-06-17 14:28:40.7610000', NULL, NULL, N'1902203774154248193', N'PRC', N'2025', N'06', N'17', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1935164771439497218', N'admin', N'2025-06-18 10:36:49.7860000', N'admin', N'2025-06-18 15:34:18.3130000', N'1907312309862907906', N'EIO', N'2025', N'06', N'18', N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1935246657187680258', N'admin', N'2025-06-18 16:02:12.8460000', NULL, NULL, N'1935244162453413890', N'EPPR', N'2025', N'06', N'18', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1935516820136026113', N'admin', N'2025-06-19 09:55:44.7370000', N'admin', N'2025-06-20 14:52:30.3050000', N'1922563625669550081', N'TMCR', N'2025', N'06', NULL, N'3')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1935540986675535874', N'admin', N'2025-06-19 11:31:46.4920000', NULL, NULL, N'1921760981629857793', N'GJFL', N'2025', N'06', NULL, N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1935600911224107009', N'admin', N'2025-06-19 15:29:53.6090000', NULL, NULL, N'1935244162453413890', N'EPPR', N'2025', N'06', N'19', N'1')
+GO
+
+INSERT INTO [dbo].[sys_business_code_seq] ([id], [create_by], [create_time], [update_by], [update_time], [rule_id], [prefix], [current_year], [current_month], [current_day], [current_seq]) VALUES (N'1935891092275654657', N'admin', N'2025-06-20 10:42:58.1410000', N'admin', N'2025-06-20 11:10:52.0490000', N'1935244162453413890', N'EPPR', N'2025', N'06', N'20', N'3')
+GO
+
+
+-- ----------------------------
+-- Table structure for sys_maintain_depart
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_maintain_depart]') AND type IN ('U'))
+	DROP TABLE [dbo].[sys_maintain_depart]
+GO
+
+CREATE TABLE [dbo].[sys_maintain_depart] (
+  [id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [parent_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [maintain_name] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [maintain_name_abbr] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [maintain_order] int  NULL,
+  [description] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [org_type] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [org_code] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [address] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [memo] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [status] nvarchar(1) COLLATE Chinese_PRC_CI_AS  NULL,
+  [del_flag] nvarchar(1) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(7)  NULL,
+  [update_by] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [update_time] datetime2(7)  NULL,
+  [maintain_code] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[sys_maintain_depart] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'ID',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐖禝D',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'浜х嚎鍚嶇О',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'maintain_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'缂╁啓',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'maintain_name_abbr'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鎺掑簭',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'maintain_order'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鎻忚堪',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'description'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'浜х嚎绫诲瀷 1涓�绾ч儴闂� 2瀛愰儴闂�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'org_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'浜х嚎缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'org_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍦板潃',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'address'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'澶囨敞',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'memo'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鐘舵�侊紙1鍚敤锛�0涓嶅惎鐢級',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒犻櫎鐘舵�侊紙0锛屾甯革紝1宸插垹闄わ級',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'del_flag'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏃ユ湡',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'update_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鏇存柊鏃ユ湡',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'缁翠慨閮ㄩ棬缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart',
+'COLUMN', N'maintain_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'浜х嚎琛�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_maintain_depart'
+GO
+
+
+-- ----------------------------
+-- Records of sys_maintain_depart
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_position
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_position]') AND type IN ('U'))
+	DROP TABLE [dbo].[sys_position]
+GO
+
+CREATE TABLE [dbo].[sys_position] (
+  [id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [code] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [post_rank] nvarchar(2) COLLATE Chinese_PRC_CI_AS  NULL,
+  [company_id] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(7)  NULL,
+  [update_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [update_time] datetime2(7)  NULL,
+  [sys_org_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[sys_position] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鑱屽姟缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鑱屽姟鍚嶇О',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鑱岀骇',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'post_rank'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍏徃id',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'company_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'淇敼浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'update_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'淇敼鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'缁勭粐鏈烘瀯缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'sys_org_code'
+GO
+
+
+-- ----------------------------
+-- Records of sys_position
+-- ----------------------------
+INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079838201671681', N'PCR0001', N'鎿嶄綔宸�', NULL, NULL, N'admin', N'2025-04-07 11:04:37.0720000', NULL, NULL, N'A01')
+GO
+
+INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079910381449218', N'PCR0002', N'缁翠慨宸�', NULL, NULL, N'admin', N'2025-04-07 11:04:54.2810000', NULL, NULL, N'A01')
+GO
+
+INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079939120820226', N'PCR0003', N'杞﹂棿鐝粍闀�', NULL, NULL, N'admin', N'2025-04-07 11:05:01.0000000', N'admin', N'2025-05-19 15:42:08.0230000', N'A01')
+GO
+
+INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079969235922946', N'PCR0004', N'杞﹂棿璁惧绠$悊鍛�', NULL, NULL, N'admin', N'2025-04-07 11:05:08.0000000', N'admin', N'2025-05-19 15:41:14.8330000', N'A01')
+GO
+
+INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1922222199530192898', N'PCR0006', N'鍏徃璁惧绠$悊鍛�', NULL, NULL, N'admin', N'2025-05-13 17:27:40.0000000', N'admin', N'2025-05-19 15:41:34.2050000', N'A01')
+GO
+
+INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1927291533460058114', N'PCR0007', N'澶囦欢绠$悊鍛�', NULL, NULL, N'admin', N'2025-05-27 17:11:23.5840000', NULL, NULL, N'A01')
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table sys_business_code_rule
+-- ----------------------------
+ALTER TABLE [dbo].[sys_business_code_rule] ADD CONSTRAINT [PK__sys_busi__3213E83FAC8ACCD8] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table sys_business_code_seq
+-- ----------------------------
+ALTER TABLE [dbo].[sys_business_code_seq] ADD CONSTRAINT [PK__sys_busi__3213E83F361CB9BB] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table sys_position
+-- ----------------------------
+CREATE UNIQUE NONCLUSTERED INDEX [uniq_code]
+ON [dbo].[sys_position] (
+  [code] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table sys_position
+-- ----------------------------
+ALTER TABLE [dbo].[sys_position] ADD CONSTRAINT [PK__sys_posi__3213E83F22016FDB] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
+ON [PRIMARY]
+GO
+
diff --git a/db/LS/sys_position.sql b/db/LS/sys_position.sql
new file mode 100644
index 0000000..1bd9fb4
--- /dev/null
+++ b/db/LS/sys_position.sql
@@ -0,0 +1,124 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : localhost-sqlserver
+ Source Server Type    : SQL Server
+ Source Server Version : 11003000 (11.00.3000)
+ Source Host           : localhost:1433
+ Source Catalog        : LXZN_TEST_430_NEW
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 11003000 (11.00.3000)
+ File Encoding         : 65001
+
+ Date: 11/07/2025 10:51:28
+*/
+
+
+-- ----------------------------
+-- Table structure for sys_position
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_position]') AND type IN ('U'))
+	DROP TABLE [dbo].[sys_position]
+GO
+
+CREATE TABLE [dbo].[sys_position] (
+  [id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [code] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [post_rank] nvarchar(2) COLLATE Chinese_PRC_CI_AS  NULL,
+  [company_id] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(7)  NULL,
+  [update_by] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [update_time] datetime2(7)  NULL,
+  [sys_org_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[sys_position] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鑱屽姟缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鑱屽姟鍚嶇О',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鑱岀骇',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'post_rank'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍏徃id',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'company_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'鍒涘缓鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'淇敼浜�',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'update_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'淇敼鏃堕棿',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'缁勭粐鏈烘瀯缂栫爜',
+'SCHEMA', N'dbo',
+'TABLE', N'sys_position',
+'COLUMN', N'sys_org_code'
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table sys_position
+-- ----------------------------
+CREATE UNIQUE NONCLUSTERED INDEX [uniq_code]
+ON [dbo].[sys_position] (
+  [code] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table sys_position
+-- ----------------------------
+ALTER TABLE [dbo].[sys_position] ADD CONSTRAINT [PK__sys_posi__3213E83F22016FDB] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
+ON [PRIMARY]
+GO
+
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
index 0cae0d9..eb55e54 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
@@ -118,7 +118,7 @@
                         log.setEquipmentId(order.getEquipmentId());
                         log.setBusinessId(order.getId());
                         log.setOperator(order.getOperator());
-                        log.setDescription(order.getLeaderConfirmComment());
+                        log.setDescription(order.getProblemDescription());
                         log.setCreateTime(order.getActualEndTime());
                     }
                 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnologyStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnologyStatusEnum.java
new file mode 100644
index 0000000..2fbfdb6
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnologyStatusEnum.java
@@ -0,0 +1,8 @@
+package org.jeecg.modules.eam.constant;
+
+public enum TechnologyStatusEnum {
+    QUALIFIED, //鍚堟牸
+    RESTRICTED, //闄愮敤
+    PROHIBITED, //绂佺敤
+    ;
+}
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java
new file mode 100644
index 0000000..06065f9
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java
@@ -0,0 +1,167 @@
+package org.jeecg.modules.eam.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.common.system.base.entity.JeecgEntity;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 涓変繚鍙樻洿
+ * @Author: jeecg-boot
+ * @Date: 2025-07-11
+ * @Version: V1.0
+ */
+@Data
+@TableName("eam_third_maintenance_change")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "eam_third_maintenance_change瀵硅薄", description = "涓変繚鍙樻洿")
+public class EamThirdMaintenanceChange extends JeecgEntity implements Serializable {
+
+    private static final long serialVersionUID = -5589051394307488593L;
+
+    /**
+     * 鍒犻櫎鏍囪
+     */
+    @Excel(name = "鍒犻櫎鏍囪", width = 15)
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    private Integer delFlag;
+    /**
+     * 涓変繚宸ュ崟ID
+     */
+    @Excel(name = "涓変繚宸ュ崟ID", width = 15)
+    @ApiModelProperty(value = "涓変繚宸ュ崟ID")
+    private String orderId;
+    /**
+     * 鍙樻洿鍗曞彿
+     */
+    @Excel(name = "鍙樻洿鍗曞彿", width = 15)
+    @ApiModelProperty(value = "鍙樻洿鍗曞彿")
+    private String changeOrderNum;
+    /**
+     * 鐢宠浜�
+     */
+    @Excel(name = "鐢宠浜�", width = 15)
+    @ApiModelProperty(value = "鐢宠浜�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String applicant;
+    /**
+     * 鐢宠閮ㄩ棬
+     */
+    @Excel(name = "鐢宠閮ㄩ棬", width = 15)
+    @ApiModelProperty(value = "鐢宠閮ㄩ棬")
+    private String factoryOrgCode;
+    /**
+     * 鐢宠鏃ユ湡
+     */
+    @ApiModelProperty(value = "鐢宠鏃ユ湡")
+    @Excel(name = "鐢宠鏃ユ湡", width = 20, format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date applyDate;
+    /**
+     * 鐢宠绫诲瀷;鎶ュ簾銆佸欢淇�
+     */
+    @Excel(name = "鐢宠绫诲瀷;鎶ュ簾銆佸欢淇�", width = 15)
+    @ApiModelProperty(value = "鐢宠绫诲瀷;鎶ュ簾銆佸欢淇�")
+    private String applyCategory;
+    /**
+     * 鍙樻洿鐘舵��;寰呮彁浜ゃ�佸緟涓荤瀹℃牳銆佸緟閮ㄩ棬纭銆佸緟淇濋殰閮ㄧ‘璁ゃ�佸凡浣滃簾銆佸凡瀹屾垚
+     */
+    @Excel(name = "鍙樻洿鐘舵��;寰呮彁浜ゃ�佸緟涓荤瀹℃牳銆佸緟閮ㄩ棬纭銆佸緟淇濋殰閮ㄧ‘璁ゃ�佸凡浣滃簾銆佸凡瀹屾垚", width = 15)
+    @ApiModelProperty(value = "鍙樻洿鐘舵��;寰呮彁浜ゃ�佸緟涓荤瀹℃牳銆佸緟閮ㄩ棬纭銆佸緟淇濋殰閮ㄧ‘璁ゃ�佸凡浣滃簾銆佸凡瀹屾垚")
+    private String changeStatus;
+    /**
+     * 寤朵繚鍘熷洜绫诲瀷;鐢熶骇浠诲姟銆佽澶囨晠闅溿�佹姤搴熴�佸ぇ淇」淇�佹惉杩�
+     */
+    @Excel(name = "寤朵繚鍘熷洜绫诲瀷;鐢熶骇浠诲姟銆佽澶囨晠闅溿�佹姤搴熴�佸ぇ淇」淇�佹惉杩�", width = 15)
+    @ApiModelProperty(value = "寤朵繚鍘熷洜绫诲瀷;鐢熶骇浠诲姟銆佽澶囨晠闅溿�佹姤搴熴�佸ぇ淇」淇�佹惉杩�")
+    private String applyReasonType;
+    /**
+     * 寤朵繚(鍙樻洿)鍘熷洜
+     */
+    @Excel(name = "寤朵繚(鍙樻洿)鍘熷洜", width = 15)
+    @ApiModelProperty(value = "寤朵繚(鍙樻洿)鍘熷洜")
+    private String applyReason;
+    /**
+     * 寤惰繜淇濆吇鏃ユ湡
+     */
+    @ApiModelProperty(value = "寤惰繜淇濆吇鏃ユ湡")
+    @Excel(name = "寤惰繜淇濆吇鏃ユ湡", width = 20, format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date deferredMaintenanceDate;
+    /**
+     * 涓荤棰嗗绛惧瓧
+     */
+    @Excel(name = "涓荤棰嗗绛惧瓧", width = 15)
+    @ApiModelProperty(value = "涓荤棰嗗绛惧瓧")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String equipmentManagerSignature;
+    /**
+     * 涓荤棰嗗绛惧瓧鏃堕棿
+     */
+    @ApiModelProperty(value = "涓荤棰嗗绛惧瓧鏃堕棿")
+    @Excel(name = "涓荤棰嗗绛惧瓧鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date equipmentManagerSignatureTime;
+    /**
+     * 閮ㄩ棬棰嗗绛惧瓧;鏍规嵁寤朵繚鍘熷洜绫诲瀷鍖哄垎涓嶅悓鐨勪汉瀹℃壒
+     */
+    @Excel(name = "閮ㄩ棬棰嗗绛惧瓧;鏍规嵁寤朵繚鍘熷洜绫诲瀷鍖哄垎涓嶅悓鐨勪汉瀹℃壒", width = 15)
+    @ApiModelProperty(value = "閮ㄩ棬棰嗗绛惧瓧;鏍规嵁寤朵繚鍘熷洜绫诲瀷鍖哄垎涓嶅悓鐨勪汉瀹℃壒")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String departManagerSignature;
+    /**
+     * 閮ㄩ棬棰嗗绛惧瓧鏃堕棿
+     */
+    @ApiModelProperty(value = "閮ㄩ棬棰嗗绛惧瓧鏃堕棿")
+    @Excel(name = "閮ㄩ棬棰嗗绛惧瓧鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date departManagerSignatureTime;
+    /**
+     * 閮ㄩ棬棰嗗鎰忚
+     */
+    @Excel(name = "閮ㄩ棬棰嗗鎰忚", width = 15)
+    @ApiModelProperty(value = "閮ㄩ棬棰嗗鎰忚")
+    private String departManagerComment;
+    /**
+     * 鐢熶骇淇濋殰閮ㄩ瀵肩瀛�
+     */
+    @Excel(name = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛�", width = 15)
+    @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String productionSupportSignature;
+    /**
+     * 鐢熶骇淇濋殰閮ㄩ瀵肩瀛楁椂闂�
+     */
+    @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛楁椂闂�")
+    @Excel(name = "鐢熶骇淇濋殰閮ㄩ瀵肩瀛楁椂闂�", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date productionSupportSignatureTime;
+    /**
+     * 鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�
+     */
+    @Excel(name = "鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�", width = 15)
+    @ApiModelProperty(value = "鐢熶骇淇濋殰閮ㄩ瀵兼剰瑙�")
+    private String productionSupportComment;
+    /**
+     * HF缂栫爜
+     */
+    @Excel(name = "HF缂栫爜", width = 15)
+    @ApiModelProperty(value = "HF缂栫爜")
+    private String hfCode;
+}
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java
new file mode 100644
index 0000000..f1de276
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java
@@ -0,0 +1,129 @@
+package org.jeecg.modules.eam.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.common.system.base.entity.JeecgEntity;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 鐪熺┖鐑鐞嗙倝涓変繚
+ * @Author: jeecg-boot
+ * @Date: 2025-07-11
+ * @Version: V1.0
+ */
+@Data
+@TableName("eam_third_maintenance_furnace")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "eam_third_maintenance_furnace瀵硅薄", description = "鐪熺┖鐑鐞嗙倝涓変繚")
+public class EamThirdMaintenanceFurnace extends JeecgEntity implements Serializable {
+
+    private static final long serialVersionUID = -5799611070364065336L;
+
+    /**
+     * 鍒犻櫎鏍囪
+     */
+    @Excel(name = "鍒犻櫎鏍囪", width = 15)
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    private Integer delFlag;
+    /**
+     * 璁惧ID
+     */
+    @Excel(name = "璁惧ID", width = 15)
+    @ApiModelProperty(value = "璁惧ID")
+    private String equipmentId;
+    /**
+     * 鍘嬬缉绌烘皵鍘嬪姏(MPa)
+     */
+    @Excel(name = "鍘嬬缉绌烘皵鍘嬪姏(MPa)", width = 15)
+    @ApiModelProperty(value = "鍘嬬缉绌烘皵鍘嬪姏(MPa)")
+    private String compressedAirPressureValue;
+    /**
+     * 鏋侀檺鐪熺┖(Pa)
+     */
+    @Excel(name = "鏋侀檺鐪熺┖(Pa)", width = 15)
+    @ApiModelProperty(value = "鏋侀檺鐪熺┖(Pa)")
+    private String ultimateVacuumValue;
+    /**
+     * 娉勬紡鐜�(Pa/h)
+     */
+    @Excel(name = "娉勬紡鐜�(Pa/h)", width = 15)
+    @ApiModelProperty(value = "娉勬紡鐜�(Pa/h)")
+    private String leakRate;
+    /**
+     * 鍑�鍖栧鐞�
+     */
+    @Excel(name = "鍑�鍖栧鐞�", width = 15)
+    @ApiModelProperty(value = "鍑�鍖栧鐞�")
+    private String purificationTreatment;
+    /**
+     * 鐐夋俯鍧囧寑鎬ф娴�
+     */
+    @Excel(name = "鐐夋俯鍧囧寑鎬ф娴�", width = 15)
+    @ApiModelProperty(value = "鐐夋俯鍧囧寑鎬ф娴�")
+    private String furnaceTemperatureUniformityTesting;
+    /**
+     * 鍔犵儹鍔熺巼娴嬭瘯
+     */
+    @Excel(name = "鍔犵儹鍔熺巼娴嬭瘯", width = 15)
+    @ApiModelProperty(value = "鍔犵儹鍔熺巼娴嬭瘯")
+    private String heatingPowerTest;
+    /**
+     * 淇濆吇浜�
+     */
+    @Excel(name = "淇濆吇浜�", width = 15)
+    @ApiModelProperty(value = "淇濆吇浜�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String operator;
+    /**
+     * 淇濆吇鏃ユ湡
+     */
+    @ApiModelProperty(value = "淇濆吇鏃ユ湡")
+    @Excel(name = "淇濆吇鏃ユ湡", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date operateTime;
+    /**
+     * 淇濆吇鐘舵��;寰呮彁浜ゃ�佸緟纭銆佸凡瀹屾垚
+     */
+    @Excel(name = "淇濆吇鐘舵��;寰呮彁浜ゃ�佸緟纭銆佸凡瀹屾垚", width = 15)
+    @ApiModelProperty(value = "淇濆吇鐘舵��;寰呮彁浜ゃ�佸緟纭銆佸凡瀹屾垚")
+    private String maintenanceStatus;
+    /**
+     * 鑳藉惁婊¤冻鍔犲伐闇�姹�;鏄惁
+     */
+    @Excel(name = "鑳藉惁婊¤冻鍔犲伐闇�姹�;鏄惁", width = 15)
+    @ApiModelProperty(value = "鑳藉惁婊¤冻鍔犲伐闇�姹�;鏄惁")
+    private String processingRequirementsFlag;
+    /**
+     * 纭浜�
+     */
+    @Excel(name = "纭浜�", width = 15)
+    @ApiModelProperty(value = "纭浜�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String confirmUser;
+    /**
+     * 纭鏃ユ湡
+     */
+    @ApiModelProperty(value = "纭鏃ユ湡")
+    @Excel(name = "纭鏃ユ湡", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date confirmTime;
+    /**
+     * HF缂栫爜
+     */
+    @Excel(name = "HF缂栫爜", width = 15)
+    @ApiModelProperty(value = "HF缂栫爜")
+    private String hfCode;
+}
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java
index 4a573c9..50091af 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java
@@ -1,8 +1,6 @@
 package org.jeecg.modules.eam.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -11,6 +9,7 @@
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -28,36 +27,10 @@
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @ApiModel(value = "eam_third_maintenance_order瀵硅薄", description = "璁惧涓夌骇淇濆吇")
-public class EamThirdMaintenanceOrder implements Serializable {
+public class EamThirdMaintenanceOrder extends JeecgEntity implements Serializable {
 
-    /**
-     * 涓婚敭
-     */
-    @TableId(type = IdType.ASSIGN_ID)
-    @ApiModelProperty(value = "涓婚敭")
-    private String id;
-    /**
-     * 鍒涘缓浜�
-     */
-    @Excel(name = "鍒涘缓浜�", width = 15)
-    @ApiModelProperty(value = "鍒涘缓浜�")
-    private String createBy;
-    /**
-     * 鍒涘缓鏃堕棿
-     */
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    private Date createTime;
-    /**
-     * 鏇存柊浜�
-     */
-    @Excel(name = "鏇存柊浜�", width = 15)
-    @ApiModelProperty(value = "鏇存柊浜�")
-    private String updateBy;
-    /**
-     * 鏇存柊鏃堕棿
-     */
-    @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    private Date updateTime;
+    private static final long serialVersionUID = 2805431980389464185L;
+
     /**
      * 鍒犻櫎鏍囪
      */
@@ -90,6 +63,20 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date maintenanceDate;
     /**
+     * 閿佸畾宸ュ崟鏃ユ湡
+     */
+    @ApiModelProperty(value = "閿佸畾宸ュ崟鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date freezeOrderDate;
+    /**
+     * 宸ュ崟杩囨湡鏃ユ湡
+     */
+    @ApiModelProperty(value = "宸ュ崟杩囨湡鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date orderExpirationDate;
+    /**
      * 瀹為檯寮�濮嬫椂闂�
      */
     @Excel(name = "瀹為檯寮�濮嬫椂闂�", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@@ -106,12 +93,12 @@
     @ApiModelProperty(value = "瀹為檯缁撴潫鏃堕棿")
     private Date actualEndTime;
     /**
-     * 淇濆吇浜�
+     * 缁翠慨浜�
      */
-    @Excel(name = "淇濆吇浜�", width = 15)
-    @ApiModelProperty(value = "淇濆吇浜�")
+    @Excel(name = "缁翠慨浜�", width = 15)
+    @ApiModelProperty(value = "缁翠慨浜�")
     @Dict(dicCode = "sys_user, realname, username")
-    private String operator;
+    private String repairman;
     /**
      * 淇濆吇鐘舵��
      */
@@ -127,71 +114,137 @@
     @Dict(dicCode = "order_creation_method")
     private String creationMethod;
     /**
-     * 鏈哄姩鍔炵‘璁�
+     * 淇濆吇浜�
      */
-    @Excel(name = "鏈哄姩鍔炵‘璁�", width = 15)
-    @ApiModelProperty(value = "鏈哄姩鍔炵‘璁�")
+    @Excel(name = "淇濆吇浜�", width = 15)
+    @ApiModelProperty(value = "淇濆吇浜�")
     @Dict(dicCode = "sys_user, realname, username")
-    private String confirmUser;
+    private String operator;
     /**
-     * 纭鎰忚
+     * 璁惧鍔熻兘鏄惁榻愬;鏄惁
      */
-    @ApiModelProperty(value = "纭鎰忚")
-    private String confirmComment;
+    @Excel(name = "璁惧鍔熻兘鏄惁榻愬;鏄惁", width = 15)
+    @ApiModelProperty(value = "璁惧鍔熻兘鏄惁榻愬;鏄惁")
+    private String fullyFunctional;
     /**
-     * 纭鏃堕棿
+     * 璁惧鍔熻兘鏄惁榻愬;鏄惁
      */
-    @Excel(name = "纭鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "璁惧鑳藉惁姝e父杩愯浆;鏄惁", width = 15)
+    @ApiModelProperty(value = "璁惧鍔熻兘鏄惁榻愬;鏄惁")
+    private String runningNormally;
+    /**
+     * 闂鎻忚堪
+     */
+    @Excel(name = "闂鎻忚堪", width = 30)
+    @ApiModelProperty(value = "闂鎻忚堪")
+    private String problemDescription;
+    /**
+     * 妫�鏌ヤ汉
+     */
+    @Excel(name = "妫�鏌ヤ汉", width = 15)
+    @ApiModelProperty(value = "妫�鏌ヤ汉")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String inspector;
+    /**
+     * 妫�鏌ユ椂闂�
+     */
+    @ApiModelProperty(value = "妫�鏌ユ椂闂�")
+    @Excel(name = "妫�鏌ユ椂闂�", width = 20, format = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "纭鏃堕棿")
-    private Date confirmTime;
-
+    private Date inspectTime;
     /**
-     * 鍗曚綅棰嗗纭
+     * 鎿嶄綔浜虹瀛�
      */
-    @Excel(name = "鍗曚綅棰嗗纭", width = 15)
-    @ApiModelProperty(value = "鍗曚綅棰嗗纭")
+    @Excel(name = "鎿嶄綔浜虹瀛�", width = 15)
+    @ApiModelProperty(value = "鎿嶄綔浜虹瀛�")
     @Dict(dicCode = "sys_user, realname, username")
-    private String confirmLeader;
+    private String operatorSignature;
     /**
-     * 棰嗗鎰忚
+     * 鍗忓姪鎿嶄綔浜�
      */
-    @ApiModelProperty(value = "棰嗗鎰忚")
-    private String leaderConfirmComment;
+    @Excel(name = "鍗忓姪鎿嶄綔浜�", width = 15)
+    @ApiModelProperty(value = "鍗忓姪鎿嶄綔浜�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String assistantOperator;
     /**
-     * 棰嗗纭鏃堕棿
+     * 鎿嶄綔浜虹瀛楁椂闂�
      */
-    @ApiModelProperty(value = "棰嗗纭鏃堕棿")
+    @ApiModelProperty(value = "鎿嶄綔浜虹瀛楁椂闂�")
+    @Excel(name = "鎿嶄綔浜虹瀛楁椂闂�", width = 20, format = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date leaderConfirmTime;
-
-    @ApiModelProperty(value = "绮惧害妫�楠屼汉")
-    @Dict(dicCode = "sys_user, realname, username")
-    private String precisionChecker;
-
+    private Date operatorSignatureTime;
     /**
-     * 绮惧害妫�楠屾椂闂�
+     * 缁翠慨浜虹瀛�
      */
-    @ApiModelProperty(value = "绮惧害妫�楠屾椂闂�")
+    @Excel(name = "缁翠慨浜虹瀛�", width = 15)
+    @ApiModelProperty(value = "缁翠慨浜虹瀛�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String repairmanSignature;
+    /**
+     * 鍗忓姪缁翠慨浜�
+     */
+    @Excel(name = "鍗忓姪缁翠慨浜�", width = 15)
+    @ApiModelProperty(value = "鍗忓姪缁翠慨浜�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String assistantRepairman;
+    /**
+     * 缁翠慨浜虹瀛楁椂闂�
+     */
+    @ApiModelProperty(value = "缁翠慨浜虹瀛楁椂闂�")
+    @Excel(name = "缁翠慨浜虹瀛楁椂闂�", width = 20, format = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date precisionCheckTime;
-
+    private Date repairmanSignatureTime;
     /**
-     * 淇濆吇涓婁紶鍥剧墖
+     * 缁翠慨瀹や富浠荤瀛�
      */
-    @Excel(name = "淇濆吇涓婁紶鍥剧墖", width = 15)
-    @ApiModelProperty(value = "淇濆吇涓婁紶鍥剧墖")
-    private String imageFiles;
+    @Excel(name = "缁翠慨瀹や富浠荤瀛�", width = 15)
+    @ApiModelProperty(value = "缁翠慨瀹や富浠荤瀛�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String repairManagerSignature;
+    /**
+     * 缁翠慨瀹や富浠荤瀛楁椂闂�
+     */
+    @ApiModelProperty(value = "缁翠慨瀹や富浠荤瀛楁椂闂�")
+    @Excel(name = "缁翠慨瀹や富浠荤瀛楁椂闂�", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date repairManagerSignatureTime;
+    /**
+     * 璁惧妫�鏌ヤ汉绛惧瓧
+     */
+    @Excel(name = "璁惧妫�鏌ヤ汉绛惧瓧", width = 15)
+    @ApiModelProperty(value = "璁惧妫�鏌ヤ汉绛惧瓧")
+    @Dict(dicCode = "sys_user, realname, username")
+    private String inspectorSignature;
+    /**
+     * 璁惧妫�鏌ヤ汉绛惧瓧鏃堕棿
+     */
+    @ApiModelProperty(value = "璁惧妫�鏌ヤ汉绛惧瓧鏃堕棿")
+    @Excel(name = "璁惧妫�鏌ヤ汉绛惧瓧鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date inspectorSignatureTime;
     /**
      * 澶囨敞
      */
     @Excel(name = "澶囨敞", width = 15)
     @ApiModelProperty(value = "澶囨敞")
     private String remark;
-
+    /**
+     * 绉讳氦鍗旽F缂栫爜
+     */
+    @Excel(name = "绉讳氦鍗旽F缂栫爜", width = 15)
+    @ApiModelProperty(value = "绉讳氦鍗旽F缂栫爜")
+    private String hfCodeA;
+    /**
+     * 楠屾敹鍗旽F缂栫爜
+     */
+    @Excel(name = "楠屾敹鍗旽F缂栫爜", width = 15)
+    @ApiModelProperty(value = "楠屾敹鍗旽F缂栫爜")
+    private String hfCodeB;
     //鍒楄〃灞曠ず
     @TableField(exist = false)
     private String equipmentCode;
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrderDetail.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrderDetail.java
index 00602f1..b4e07b7 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrderDetail.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrderDetail.java
@@ -3,80 +3,118 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
+
 /**
  * @Description: 璁惧涓夌骇淇濆吇鏄庣粏
  * @Author: jeecg-boot
- * @Date:   2025-04-29
+ * @Date: 2025-04-29
  * @Version: V1.0
  */
 @Data
 @TableName("eam_third_maintenance_order_detail")
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="eam_third_maintenance_order_detail瀵硅薄", description="璁惧涓夌骇淇濆吇鏄庣粏")
-public class EamThirdMaintenanceOrderDetail implements Serializable {
-    
-	/**涓婚敭*/
-	@TableId(type = IdType.ASSIGN_ID)
-    @ApiModelProperty(value = "涓婚敭")
-	private String id;
-	/**鍒涘缓浜�*/
-	@Excel(name = "鍒涘缓浜�", width = 15)
-    @ApiModelProperty(value = "鍒涘缓浜�")
-	private String createBy;
-	/**鍒涘缓鏃堕棿*/
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-	private Date createTime;
-	/**鏇存柊浜�*/
-	@Excel(name = "鏇存柊浜�", width = 15)
-    @ApiModelProperty(value = "鏇存柊浜�")
-	private String updateBy;
-	/**鏇存柊鏃堕棿*/
-    @ApiModelProperty(value = "鏇存柊鏃堕棿")
-	private Date updateTime;
-	/**鍒犻櫎鏍囪*/
-	@Excel(name = "鍒犻櫎鏍囪", width = 15)
+@ApiModel(value = "eam_third_maintenance_order_detail瀵硅薄", description = "璁惧涓夌骇淇濆吇鏄庣粏")
+public class EamThirdMaintenanceOrderDetail extends JeecgEntity implements Serializable {
+
+    private static final long serialVersionUID = -862977193541514910L;
+
+    /**
+     * 鍒犻櫎鏍囪
+     */
+    @Excel(name = "鍒犻櫎鏍囪", width = 15)
     @ApiModelProperty(value = "鍒犻櫎鏍囪")
-	private Integer delFlag;
-	/**宸ュ崟ID*/
-	@Excel(name = "宸ュ崟ID", width = 15)
+    private Integer delFlag;
+    /**
+     * 宸ュ崟ID
+     */
+    @Excel(name = "宸ュ崟ID", width = 15)
     @ApiModelProperty(value = "宸ュ崟ID")
-	private String orderId;
-	/**椤圭洰搴忓彿*/
-	@Excel(name = "椤圭洰搴忓彿", width = 15)
+    private String orderId;
+    /**
+     * 椤圭洰搴忓彿
+     */
+    @Excel(name = "椤圭洰搴忓彿", width = 15)
     @ApiModelProperty(value = "椤圭洰搴忓彿")
-	private Integer itemCode;
-	/**淇濆吇椤圭洰*/
-	@Excel(name = "淇濆吇椤圭洰", width = 15)
-    @ApiModelProperty(value = "淇濆吇椤圭洰")
-	private String itemName;
-	/**瀛愰」鐩�*/
-	@Excel(name = "閮ㄤ綅", width = 15)
+    private Integer itemCode;
+    /**
+     * 閮ㄤ綅
+     */
+    @Excel(name = "閮ㄤ綅", width = 15)
     @ApiModelProperty(value = "閮ㄤ綅")
-	private String itemPart;
-	/**淇濆吇瑕佹眰*/
-	@Excel(name = "淇濆吇瑕佹眰", width = 15)
-    @ApiModelProperty(value = "淇濆吇瑕佹眰")
-	private String itemDemand;
-	/**鎶ヤ慨鏍囪*/
-	@Excel(name = "鎶ヤ慨鏍囪", width = 15)
-    @ApiModelProperty(value = "鎶ヤ慨鏍囪")
-	private String reportFlag;
-	/**淇濆吇缁撴灉*/
-	@Excel(name = "淇濆吇缁撴灉", width = 15)
+    private String itemPart;
+    /**
+     * 淇濆吇鍐呭
+     */
+    @Excel(name = "淇濆吇鍐呭", width = 15)
+    @ApiModelProperty(value = "淇濆吇鍐呭")
+    private String itemName;
+    /**
+     * 楠屾敹鏍囧噯
+     */
+    @Excel(name = "楠屾敹鏍囧噯", width = 15)
+    @ApiModelProperty(value = "楠屾敹鏍囧噯")
+    private String itemDemand;
+    /**
+     * 淇濆吇缁撴灉
+     */
+    @Excel(name = "淇濆吇缁撴灉", width = 15)
     @ApiModelProperty(value = "淇濆吇缁撴灉")
-	private String maintenanceResult;
-	/**寮傚父鎻忚堪*/
-	@Excel(name = "寮傚父鎻忚堪", width = 15)
+    private String maintenanceResult;
+    /**
+     * 寮傚父鎻忚堪
+     */
+    @Excel(name = "寮傚父鎻忚堪", width = 15)
     @ApiModelProperty(value = "寮傚父鎻忚堪")
-	private String exceptionDescription;
+    private String exceptionDescription;
+    /**
+     * 绗竴娆℃楠岀粨鏋�
+     */
+    @Excel(name = "绗竴娆℃楠岀粨鏋�", width = 15)
+    @ApiModelProperty(value = "绗竴娆℃楠岀粨鏋�")
+    private String firstInspectResult;
+    /**
+     * 绗竴娆℃楠屾椂闂�
+     */
+    @ApiModelProperty(value = "绗竴娆℃楠屾椂闂�")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date firstInspectTime;
+    /**
+     * 绗竴娆℃楠屽紓甯�
+     */
+    @Excel(name = "绗竴娆℃楠屽紓甯�", width = 15)
+    @ApiModelProperty(value = "绗竴娆℃楠屽紓甯�")
+    private String firstInspectException;
+    /**
+     * 绗簩娆℃楠岀粨鏋�
+     */
+    @Excel(name = "绗簩娆℃楠岀粨鏋�", width = 15)
+    @ApiModelProperty(value = "绗簩娆℃楠岀粨鏋�")
+    private String secondInspectResult;
+    /**
+     * 绗簩娆℃楠屾椂闂�
+     */
+    @ApiModelProperty(value = "绗簩娆℃楠屾椂闂�")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date secondInspectTime;
+    /**
+     * 绗簩娆℃楠屽紓甯�
+     */
+    @Excel(name = "绗簩娆℃楠屽紓甯�", width = 15)
+    @ApiModelProperty(value = "绗簩娆℃楠屽紓甯�")
+    private String secondInspectException;
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java
new file mode 100644
index 0000000..b1910d6
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java
@@ -0,0 +1,54 @@
+package org.jeecg.modules.eam.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.system.base.entity.JeecgEntity;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description: 涓変繚澶囦欢鏄庣粏
+ * @Author: jeecg-boot
+ * @Date: 2025-07-11
+ * @Version: V1.0
+ */
+@Data
+@TableName("eam_third_maintenance_spare")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "eam_third_maintenance_spare瀵硅薄", description = "涓変繚澶囦欢鏄庣粏")
+public class EamThirdMaintenanceSpare extends JeecgEntity implements Serializable {
+
+    private static final long serialVersionUID = -164548817301978100L;
+
+    /**
+     * 澶囦欢鍚嶇О
+     */
+    @Excel(name = "澶囦欢鍚嶇О", width = 15)
+    @ApiModelProperty(value = "澶囦欢鍚嶇О")
+    private String spareName;
+    /**
+     * 澶囦欢鍨嬪彿
+     */
+    @Excel(name = "澶囦欢鍨嬪彿", width = 15)
+    @ApiModelProperty(value = "澶囦欢鍨嬪彿")
+    private String spareModel;
+    /**
+     * 浣跨敤鏁伴噺
+     */
+    @Excel(name = "浣跨敤鏁伴噺", width = 15)
+    @ApiModelProperty(value = "浣跨敤鏁伴噺")
+    private BigDecimal spareQuantity;
+    /**
+     * 澶囨敞
+     */
+    @Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
index 743d9ec..f6ee810 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -238,7 +238,9 @@
                         baseFactoryService.factoryDataNameByOrgCode(eamEquipmentDto.getZxfactoryOrgCode())
                                 +"/"+ baseFactoryService.factoryDataNameByOrgCode(eamEquipmentDto.getFactoryOrgCode()));
             }
-            eamEquipmentDto.setEquipmentWeightStr(eamEquipmentDto.getEquipmentWeight().toEngineeringString());
+            if (eamEquipmentDto.getEquipmentWeight()!=null){
+                eamEquipmentDto.setEquipmentWeightStr(eamEquipmentDto.getEquipmentWeight().toEngineeringString());
+            }
             eamEquipmentDtos.add(eamEquipmentDto);
         });
         // Step.3 AutoPoi 瀵煎嚭Excel
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java
new file mode 100644
index 0000000..4e96dd1
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java
@@ -0,0 +1,153 @@
+package org.jeecg.modules.eam.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceChange;
+import org.jeecg.modules.eam.service.IEamThirdMaintenanceChangeService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+/**
+ * @Description: 涓変繚鍙樻洿
+ * @Author: jeecg-boot
+ * @Date: 2025-07-11
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags = "涓変繚鍙樻洿")
+@RestController
+@RequestMapping("/eam/eamThirdMaintenanceChange")
+public class EamThirdMaintenanceChangeController extends JeecgController<EamThirdMaintenanceChange, IEamThirdMaintenanceChangeService> {
+
+    @Resource
+    private IEamThirdMaintenanceChangeService eamThirdMaintenanceChangeService;
+
+    /**
+     * 鍒嗛〉鍒楄〃鏌ヨ
+     *
+     * @param eamThirdMaintenanceChange
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "涓変繚鍙樻洿-鍒嗛〉鍒楄〃鏌ヨ")
+    @ApiOperation(value = "涓変繚鍙樻洿-鍒嗛〉鍒楄〃鏌ヨ", notes = "涓変繚鍙樻洿-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping(value = "/list")
+    public Result<?> queryPageList(EamThirdMaintenanceChange eamThirdMaintenanceChange,
+                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                   HttpServletRequest req) {
+        QueryWrapper<EamThirdMaintenanceChange> queryWrapper = QueryGenerator.initQueryWrapper(eamThirdMaintenanceChange, req.getParameterMap());
+        Page<EamThirdMaintenanceChange> page = new Page<EamThirdMaintenanceChange>(pageNo, pageSize);
+        IPage<EamThirdMaintenanceChange> pageList = eamThirdMaintenanceChangeService.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+
+    /**
+     * 娣诲姞
+     *
+     * @param eamThirdMaintenanceChange
+     * @return
+     */
+    @AutoLog(value = "涓変繚鍙樻洿-娣诲姞")
+    @ApiOperation(value = "涓変繚鍙樻洿-娣诲姞", notes = "涓変繚鍙樻洿-娣诲姞")
+    @PostMapping(value = "/add")
+    public Result<?> add(@RequestBody EamThirdMaintenanceChange eamThirdMaintenanceChange) {
+        eamThirdMaintenanceChangeService.save(eamThirdMaintenanceChange);
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     * 缂栬緫
+     *
+     * @param eamThirdMaintenanceChange
+     * @return
+     */
+    @AutoLog(value = "涓変繚鍙樻洿-缂栬緫")
+    @ApiOperation(value = "涓変繚鍙樻洿-缂栬緫", notes = "涓変繚鍙樻洿-缂栬緫")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<?> edit(@RequestBody EamThirdMaintenanceChange eamThirdMaintenanceChange) {
+        eamThirdMaintenanceChangeService.updateById(eamThirdMaintenanceChange);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "涓変繚鍙樻洿-閫氳繃id鍒犻櫎")
+    @ApiOperation(value = "涓変繚鍙樻洿-閫氳繃id鍒犻櫎", notes = "涓変繚鍙樻洿-閫氳繃id鍒犻櫎")
+    @DeleteMapping(value = "/delete")
+    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
+        eamThirdMaintenanceChangeService.removeById(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "涓変繚鍙樻洿-鎵归噺鍒犻櫎")
+    @ApiOperation(value = "涓変繚鍙樻洿-鎵归噺鍒犻櫎", notes = "涓変繚鍙樻洿-鎵归噺鍒犻櫎")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        this.eamThirdMaintenanceChangeService.removeByIds(Arrays.asList(ids.split(",")));
+        return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�");
+    }
+
+    /**
+     * 閫氳繃id鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "涓変繚鍙樻洿-閫氳繃id鏌ヨ")
+    @ApiOperation(value = "涓変繚鍙樻洿-閫氳繃id鏌ヨ", notes = "涓変繚鍙樻洿-閫氳繃id鏌ヨ")
+    @GetMapping(value = "/queryById")
+    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
+        EamThirdMaintenanceChange eamThirdMaintenanceChange = eamThirdMaintenanceChangeService.getById(id);
+        return Result.OK(eamThirdMaintenanceChange);
+    }
+
+    /**
+     * 瀵煎嚭excel
+     *
+     * @param request
+     * @param eamThirdMaintenanceChange
+     */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, EamThirdMaintenanceChange eamThirdMaintenanceChange) {
+        return super.exportXls(request, eamThirdMaintenanceChange, EamThirdMaintenanceChange.class, "涓変繚鍙樻洿");
+    }
+
+    /**
+     * 閫氳繃excel瀵煎叆鏁版嵁
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, EamThirdMaintenanceChange.class);
+    }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java
new file mode 100644
index 0000000..5dd1820
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java
@@ -0,0 +1,152 @@
+package org.jeecg.modules.eam.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace;
+import org.jeecg.modules.eam.service.IEamThirdMaintenanceFurnaceService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+/**
+ * @Description: 鐪熺┖鐑鐞嗙倝涓変繚
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="鐪熺┖鐑鐞嗙倝涓変繚")
+@RestController
+@RequestMapping("/eam/eamThirdMaintenanceFurnace")
+public class EamThirdMaintenanceFurnaceController extends JeecgController<EamThirdMaintenanceFurnace, IEamThirdMaintenanceFurnaceService> {
+	@Resource
+	private IEamThirdMaintenanceFurnaceService eamThirdMaintenanceFurnaceService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param eamThirdMaintenanceFurnace
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ", notes="鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<EamThirdMaintenanceFurnace> queryWrapper = QueryGenerator.initQueryWrapper(eamThirdMaintenanceFurnace, req.getParameterMap());
+		Page<EamThirdMaintenanceFurnace> page = new Page<EamThirdMaintenanceFurnace>(pageNo, pageSize);
+		IPage<EamThirdMaintenanceFurnace> pageList = eamThirdMaintenanceFurnaceService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 * 娣诲姞
+	 *
+	 * @param eamThirdMaintenanceFurnace
+	 * @return
+	 */
+	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞")
+	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞", notes="鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace) {
+		eamThirdMaintenanceFurnaceService.save(eamThirdMaintenanceFurnace);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 * 缂栬緫
+	 *
+	 * @param eamThirdMaintenanceFurnace
+	 * @return
+	 */
+	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫")
+	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫", notes="鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<?> edit(@RequestBody EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace) {
+		eamThirdMaintenanceFurnaceService.updateById(eamThirdMaintenanceFurnace);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鍒犻櫎", notes="鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鍒犻櫎")
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		eamThirdMaintenanceFurnaceService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺鍒犻櫎")
+	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺鍒犻櫎", notes="鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.eamThirdMaintenanceFurnaceService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ")
+	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ", notes="鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
+		EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace = eamThirdMaintenanceFurnaceService.getById(id);
+		return Result.OK(eamThirdMaintenanceFurnace);
+	}
+
+  /**
+   * 瀵煎嚭excel
+   *
+   * @param request
+   * @param eamThirdMaintenanceFurnace
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace) {
+      return super.exportXls(request, eamThirdMaintenanceFurnace, EamThirdMaintenanceFurnace.class, "鐪熺┖鐑鐞嗙倝涓変繚");
+  }
+
+  /**
+   * 閫氳繃excel瀵煎叆鏁版嵁
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+      return super.importExcel(request, response, EamThirdMaintenanceFurnace.class);
+  }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java
new file mode 100644
index 0000000..a317036
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java
@@ -0,0 +1,153 @@
+package org.jeecg.modules.eam.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceSpare;
+import org.jeecg.modules.eam.service.IEamThirdMaintenanceSpareService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+/**
+ * @Description: 涓変繚澶囦欢鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="涓変繚澶囦欢鏄庣粏")
+@RestController
+@RequestMapping("/eam/eamThirdMaintenanceSpare")
+public class EamThirdMaintenanceSpareController extends JeecgController<EamThirdMaintenanceSpare, IEamThirdMaintenanceSpareService> {
+
+	@Resource
+	private IEamThirdMaintenanceSpareService eamThirdMaintenanceSpareService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param eamThirdMaintenanceSpare
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "涓変繚澶囦欢鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="涓変繚澶囦欢鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ", notes="涓変繚澶囦欢鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(EamThirdMaintenanceSpare eamThirdMaintenanceSpare,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<EamThirdMaintenanceSpare> queryWrapper = QueryGenerator.initQueryWrapper(eamThirdMaintenanceSpare, req.getParameterMap());
+		Page<EamThirdMaintenanceSpare> page = new Page<EamThirdMaintenanceSpare>(pageNo, pageSize);
+		IPage<EamThirdMaintenanceSpare> pageList = eamThirdMaintenanceSpareService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 * 娣诲姞
+	 *
+	 * @param eamThirdMaintenanceSpare
+	 * @return
+	 */
+	@AutoLog(value = "涓変繚澶囦欢鏄庣粏-娣诲姞")
+	@ApiOperation(value="涓変繚澶囦欢鏄庣粏-娣诲姞", notes="涓変繚澶囦欢鏄庣粏-娣诲姞")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody EamThirdMaintenanceSpare eamThirdMaintenanceSpare) {
+		eamThirdMaintenanceSpareService.save(eamThirdMaintenanceSpare);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 * 缂栬緫
+	 *
+	 * @param eamThirdMaintenanceSpare
+	 * @return
+	 */
+	@AutoLog(value = "涓変繚澶囦欢鏄庣粏-缂栬緫")
+	@ApiOperation(value="涓変繚澶囦欢鏄庣粏-缂栬緫", notes="涓変繚澶囦欢鏄庣粏-缂栬緫")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<?> edit(@RequestBody EamThirdMaintenanceSpare eamThirdMaintenanceSpare) {
+		eamThirdMaintenanceSpareService.updateById(eamThirdMaintenanceSpare);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "涓変繚澶囦欢鏄庣粏-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="涓変繚澶囦欢鏄庣粏-閫氳繃id鍒犻櫎", notes="涓変繚澶囦欢鏄庣粏-閫氳繃id鍒犻櫎")
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		eamThirdMaintenanceSpareService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "涓変繚澶囦欢鏄庣粏-鎵归噺鍒犻櫎")
+	@ApiOperation(value="涓変繚澶囦欢鏄庣粏-鎵归噺鍒犻櫎", notes="涓変繚澶囦欢鏄庣粏-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.eamThirdMaintenanceSpareService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "涓変繚澶囦欢鏄庣粏-閫氳繃id鏌ヨ")
+	@ApiOperation(value="涓変繚澶囦欢鏄庣粏-閫氳繃id鏌ヨ", notes="涓変繚澶囦欢鏄庣粏-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
+		EamThirdMaintenanceSpare eamThirdMaintenanceSpare = eamThirdMaintenanceSpareService.getById(id);
+		return Result.OK(eamThirdMaintenanceSpare);
+	}
+
+  /**
+   * 瀵煎嚭excel
+   *
+   * @param request
+   * @param eamThirdMaintenanceSpare
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, EamThirdMaintenanceSpare eamThirdMaintenanceSpare) {
+      return super.exportXls(request, eamThirdMaintenanceSpare, EamThirdMaintenanceSpare.class, "涓変繚澶囦欢鏄庣粏");
+  }
+
+  /**
+   * 閫氳繃excel瀵煎叆鏁版嵁
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+      return super.importExcel(request, response, EamThirdMaintenanceSpare.class);
+  }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderExpiredJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderExpiredJob.java
deleted file mode 100644
index d9e3f7f..0000000
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderExpiredJob.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.jeecg.modules.eam.job;
-
-import cn.hutool.core.collection.CollectionUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.util.ThrowableUtil;
-import org.jeecg.modules.eam.constant.SecondMaintenanceStatusEnum;
-import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
-import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder;
-import org.jeecg.modules.eam.service.IEamSecondMaintenanceOrderService;
-import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
-import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
-import org.jeecg.modules.flowable.service.IFlowTaskService;
-import org.jeecg.modules.quartz.entity.QuartzJob;
-import org.jeecg.modules.quartz.entity.SysQuartzLog;
-import org.jeecg.modules.quartz.service.IQuartzJobService;
-import org.jeecg.modules.quartz.service.ISysQuartzLogService;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDate;
-import java.util.Date;
-import java.util.List;
-
-@Component
-@Slf4j
-public class SecondMaintenanceOrderExpiredJob implements Job {
-
-    @Autowired
-    private IEamSecondMaintenanceOrderService eamSecondMaintenanceOrderService;
-
-    @Autowired
-    private IFlowMyBusinessService flowMyBusinessService;
-    @Autowired
-    private IFlowTaskService flowTaskService;
-    @Autowired
-    private ISysQuartzLogService sysQuartzLogService;
-    @Autowired
-    private IQuartzJobService quartzJobService;
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
-        //浠诲姟鏃ュ織
-        SysQuartzLog quartzLog = new SysQuartzLog();
-        quartzLog.setCreateTime(new Date());
-        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
-        if (byJobClassName != null && !byJobClassName.isEmpty()) {
-            quartzLog.setJobId(byJobClassName.get(0).getId());
-        }
-        long startTime = System.currentTimeMillis();
-        LocalDate now = LocalDate.now();
-        try {
-
-            List<EamSecondMaintenanceOrder> unCompleteOrderList = eamSecondMaintenanceOrderService.lambdaQuery()
-                    .lt(EamSecondMaintenanceOrder::getMaintenanceDate, now.toString())
-                    .in(EamSecondMaintenanceOrder::getMaintenanceStatus, SecondMaintenanceStatusEnum.WAIT_MAINTENANCE, SecondMaintenanceStatusEnum.UNDER_MAINTENANCE)
-                    .orderByDesc(EamSecondMaintenanceOrder::getMaintenanceDate)
-                    .list();
-
-            if (CollectionUtil.isEmpty(unCompleteOrderList)) {
-                //娌℃湁闇�瑕佸鐞嗙殑鏁版嵁
-                return;
-            }
-            for (EamSecondMaintenanceOrder order : unCompleteOrderList) {
-                if (SecondMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
-                    order.setMaintenanceStatus(SecondMaintenanceStatusEnum.ABOLISH.name());
-                } else if (WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
-                    //宸茬粡琚帴鍗� 浣嗘湭鎵ц瀹屾垚
-                    order.setMaintenanceStatus(SecondMaintenanceStatusEnum.ABOLISH.name());
-                    //寮哄埗缁撴潫娴佺▼ 鍒犻櫎鐢ㄦ埛鐨勬寰呭姙浠诲姟
-                    FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId());
-                    if (flowMyBusiness != null) {
-                        flowTaskService.end(flowMyBusiness.getProcessInstanceId(), "杩囨湡鍒犻櫎");
-                    }
-                }
-            }
-            eamSecondMaintenanceOrderService.updateBatchById(unCompleteOrderList);
-            quartzLog.setIsSuccess(0);
-        } catch (Exception e) {
-            log.error("浜屼繚杩囨湡鎵ц瀹氭椂浠诲姟澶辫触锛寋}", e.getMessage(), e);
-            quartzLog.setIsSuccess(-1);
-            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
-        }
-        long endTime = System.currentTimeMillis();
-        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
-        sysQuartzLogService.save(quartzLog);
-    }
-
-}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java
deleted file mode 100644
index be828db..0000000
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package org.jeecg.modules.eam.job;
-
-import cn.hutool.core.collection.CollectionUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.util.DateUtils;
-import org.jeecg.modules.eam.constant.BusinessCodeConst;
-import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
-import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
-import org.jeecg.modules.eam.entity.*;
-import org.jeecg.modules.eam.request.EamSecondMaintenanceRequest;
-import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
-import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
-import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
-import org.jeecg.modules.eam.service.IEamSecondMaintenanceOrderService;
-import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
-import org.jeecg.common.util.ThrowableUtil;
-import org.jeecg.modules.quartz.entity.QuartzJob;
-import org.jeecg.modules.quartz.entity.SysQuartzLog;
-import org.jeecg.modules.quartz.service.IQuartzJobService;
-import org.jeecg.modules.quartz.service.ISysQuartzLogService;
-import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Component
-@Slf4j
-public class SecondMaintenanceOrderGenerateJob implements Job {
-
-    @Autowired
-    private IEamSecondMaintenanceOrderService eamSecondMaintenanceOrderService;
-    @Autowired
-    private IEamMaintenanceStandardService eamMaintenanceStandardService;
-    @Autowired
-    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
-    @Autowired
-    private ISysBusinessCodeRuleService businessCodeRuleService;
-    @Autowired
-    private ISysQuartzLogService sysQuartzLogService;
-    @Autowired
-    private IQuartzJobService quartzJobService;
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
-
-        //浠诲姟鏃ュ織
-        SysQuartzLog quartzLog = new SysQuartzLog();
-        quartzLog.setCreateTime(new Date());
-        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
-        if (byJobClassName != null && !byJobClassName.isEmpty()) {
-            quartzLog.setJobId(byJobClassName.get(0).getId());
-        }
-        long startTime = System.currentTimeMillis();
-        /**
-         * 鑾峰彇 閰嶇疆浜� 浜屼繚鏍囧噯鐨� 淇℃伅
-         */
-        List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.SECOND_MAINTENANCE.name());
-        if (CollectionUtil.isEmpty(standardList)) {
-            log.warn("娌℃湁閰嶇疆浠讳綍浜屼繚鏍囧噯锛屼换鍔$粨鏉�");
-            return;
-        }
-        //褰撳墠鏃ユ湡
-        LocalDate now = LocalDate.now();
-        try {
-            for (EamMaintenanceStandard standard : standardList) {
-                if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) {
-                    log.error("浜屼繚鏍囧噯鍛ㄦ湡璁剧疆閿欒锛岃鍏堥厤缃爣鍑嗗懆鏈�, standard:{}", standard);
-                    continue;
-                }
-                if (standard.getInitialDate() == null) {
-                    //璁剧疆鍒濆鏃ユ湡涓哄墠涓�澶�
-                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
-                }
-                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
-//                if (standard.getLastGenerateTime() != null) {
-//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
-//                }
-                //鍔犲懆鏈�
-                do {
-                    //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
-                    generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
-                } while (now.isAfter(generateDate));
-                if(!now.isEqual(generateDate)) {
-                    //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц
-                    continue;
-                }
-                //鑾峰彇淇濆吇椤规槑缁�
-                List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId());
-                if(CollectionUtil.isEmpty(standardDetailList)) {
-                    log.error("浜屼繚鏍囧噯娌℃湁淇濆吇鏄庣粏锛岃鍏堥厤缃繚鍏绘槑缁�, standard:{}", standard);
-                    continue;
-                }
-                //寮�濮嬬敓鎴�
-                EamSecondMaintenanceRequest request = new EamSecondMaintenanceRequest();
-                request.setEquipmentId(standard.getEquipmentId());
-                request.setStandardId(standard.getId());
-                request.setMaintenanceDate(DateUtils.localDateToDate(generateDate));
-                String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.SECOND_MAINTENANCE_CODE_RULE);
-                request.setOrderNum(codeSeq);
-                request.setCreationMethod(OrderCreationMethodEnum.AUTO.name());
-
-                List<EamSecondMaintenanceOrderDetail> tableDetailList = new ArrayList<>();
-                for (EamMaintenanceStandardDetail msd : standardDetailList) {
-                    EamSecondMaintenanceOrderDetail sod = new EamSecondMaintenanceOrderDetail();
-                    sod.setItemCode(msd.getItemCode());
-                    sod.setItemName(msd.getItemName());
-                    sod.setItemDemand(msd.getItemDemand());
-                    sod.setItemPart(msd.getItemPart());
-                    tableDetailList.add(sod);
-                }
-//                List<EamSecondMaintenanceOrderDetail> collect = standardDetailList.stream().map(EamSecondMaintenanceOrderDetail::new).collect(Collectors.toList());
-                request.setTableDetailList(tableDetailList);
-                eamSecondMaintenanceOrderService.addMaintenance(request);
-
-//                standard.setLastGenerateTime(new Date());
-                eamMaintenanceStandardService.updateById(standard);
-            }
-            quartzLog.setIsSuccess(0);
-        } catch (Exception e) {
-            log.error("浜屼繚鐢熸垚鎵ц瀹氭椂浠诲姟澶辫触锛寋}", e.getMessage(), e);
-            quartzLog.setIsSuccess(-1);
-            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
-        }
-        long endTime = System.currentTimeMillis();
-        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
-        sysQuartzLogService.save(quartzLog);
-
-    }
-}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceChangeMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceChangeMapper.java
new file mode 100644
index 0000000..35587e9
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceChangeMapper.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceChange;
+
+/**
+ * @Description: 涓変繚鍙樻洿
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+public interface EamThirdMaintenanceChangeMapper extends BaseMapper<EamThirdMaintenanceChange> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java
new file mode 100644
index 0000000..c821afc
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace;
+
+/**
+ * @Description: 鐪熺┖鐑鐞嗙倝涓変繚
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+public interface EamThirdMaintenanceFurnaceMapper extends BaseMapper<EamThirdMaintenanceFurnace> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceSpareMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceSpareMapper.java
new file mode 100644
index 0000000..e91a532
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceSpareMapper.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceSpare;
+
+/**
+ * @Description: 涓変繚澶囦欢鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+public interface EamThirdMaintenanceSpareMapper extends BaseMapper<EamThirdMaintenanceSpare> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceChangeMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceChangeMapper.xml
new file mode 100644
index 0000000..5da01a2
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceChangeMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.eam.mapper.EamThirdMaintenanceChangeMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml
new file mode 100644
index 0000000..0364be1
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.eam.mapper.EamThirdMaintenanceFurnaceMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceSpareMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceSpareMapper.xml
new file mode 100644
index 0000000..91d24c8
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceSpareMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.eam.mapper.EamThirdMaintenanceSpareMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java
index bcad399..140cd99 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java
@@ -41,12 +41,6 @@
     /**淇濆吇浜�*/
     @ApiModelProperty(value = "淇濆吇浜�")
     private String operator;
-    /**淇濆吇鍥剧墖*/
-    @ApiModelProperty(value = "淇濆吇鍥剧墖")
-    private String imageFiles;
-    /**淇濆吇鍥剧墖*/
-    @ApiModelProperty(value = "淇濆吇鍥剧墖")
-    private List<FileUploadResult> imageFilesResult;
     /**澶囨敞*/
     @ApiModelProperty(value = "澶囨敞")
     private String remark;
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceChangeService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceChangeService.java
new file mode 100644
index 0000000..a14ddaa
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceChangeService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceChange;
+
+/**
+ * @Description: 涓変繚鍙樻洿
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+public interface IEamThirdMaintenanceChangeService extends IService<EamThirdMaintenanceChange> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java
new file mode 100644
index 0000000..f628bd9
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace;
+
+/**
+ * @Description: 鐪熺┖鐑鐞嗙倝涓変繚
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+public interface IEamThirdMaintenanceFurnaceService extends IService<EamThirdMaintenanceFurnace> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceSpareService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceSpareService.java
new file mode 100644
index 0000000..d57b666
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceSpareService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceSpare;
+
+/**
+ * @Description: 涓変繚澶囦欢鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+public interface IEamThirdMaintenanceSpareService extends IService<EamThirdMaintenanceSpare> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
index 356394f..0f997e7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -554,31 +554,31 @@
 
             // 1. 鎻愬彇璁惧淇℃伅
             EamMaintenanceStandard eamMaintenanceStandard = extractDeviceInfo(sheet);
-            if (eamMaintenanceStandard == null) {
+            if (eamMaintenanceStandard == null || eamMaintenanceStandard.getEquipmentId() == null) {
                 return Result.error("璁惧淇℃伅鎻愬彇澶辫触");
-            } else {
-                if (eamMaintenanceStandard.getEquipmentId() == null) {
-                    return Result.error("璁惧淇℃伅鎻愬彇澶辫触");
-                }
             }
 
             eamMaintenanceStandard.setStandardName(name);
 
-            EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(), eamMaintenanceStandard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.START.name());
+            // 妫�鏌ラ噸澶�
+            EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(),
+                    eamMaintenanceStandard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.START.name());
             if (exist != null) {
                 return Result.error(name + ": 璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞");
             }
 
             eamMaintenanceStandardMapper.insert(eamMaintenanceStandard);
 
-            // 2. 鎻愬彇姣忔棩鐐规椤圭洰
-            List<EamMaintenanceStandardDetail> dailyDetails = extractDailyItems(sheet, eamMaintenanceStandard);
+            Map<Integer, String> rowErrors = new HashMap<>();
+
+            // 2. 鎻愬彇姣忔棩鐐规椤圭洰锛堜紭鍖栫┖琛屽拰缁撴潫鏍囪澶勭悊锛�
+            List<EamMaintenanceStandardDetail> dailyDetails = extractDailyItems(sheet, eamMaintenanceStandard, rowErrors);
             if (dailyDetails.isEmpty()) {
                 return Result.error("鏈壘鍒版瘡鏃ョ偣妫�椤圭洰");
             }
 
             // 3. 鎻愬彇鍛ㄤ繚鍏婚」鐩�
-            List<EamMaintenanceStandardDetail> weeklyDetails = extractWeeklyItems(sheet, eamMaintenanceStandard);
+            List<EamMaintenanceStandardDetail> weeklyDetails = extractWeeklyItems(sheet, eamMaintenanceStandard, rowErrors);
             if (weeklyDetails.isEmpty()) {
                 return Result.error("鏈壘鍒板懆淇濆吇椤圭洰");
             }
@@ -592,14 +592,11 @@
                 eamMaintenanceStandardDetailService.saveBatch(allDetails);
             }
 
+            // 瑙﹀彂淇濆吇娴佺▼
             SysParams sysParams = sysParamsService.getSysPramBySettingKey("maintenance_import_type");
-
-            if (sysParams != null) {
-                if (sysParams.getSettingValue().equals("1")) {
-                    //瑙﹀彂淇濆吇娴佺▼
-                    eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
-                    eamMaintenanceStandardMapper.updateById(eamMaintenanceStandard);
-                }
+            if (sysParams != null && sysParams.getSettingValue().equals("1")) {
+                eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
+                eamMaintenanceStandardMapper.updateById(eamMaintenanceStandard);
             } else {
                 return Result.error("鏈壘鍒颁繚鍏绘祦绋嬪鍏ョ浉鍏抽厤缃�,璇疯仈绯荤鐞嗗憳");
             }
@@ -728,171 +725,6 @@
     }
 
     /**
-     * 鎻愬彇姣忔棩鐐规椤圭洰
-     */
-    private List<EamMaintenanceStandardDetail> extractDailyItems(Sheet sheet, EamMaintenanceStandard standard) {
-        return extractItems(sheet, standard, "鐐规椤圭洰", "瀹屾垚鏁版嵁/瑕佹眰", "DAY_INSPECTION");
-    }
-
-    /**
-     * 鎻愬彇鍛ㄤ繚鍏婚」鐩�
-     */
-    private List<EamMaintenanceStandardDetail> extractWeeklyItems(Sheet sheet, EamMaintenanceStandard standard) {
-        return extractItems(sheet, standard, "鍛ㄤ繚鍏婚」鐩�", "妫�鏌ユ爣鍑�", "WEEK_INSPECTION");
-    }
-
-    /**
-     * 閫氱敤椤圭洰鎻愬彇鏂规硶
-     */
-    private List<EamMaintenanceStandardDetail> extractItems(Sheet sheet, EamMaintenanceStandard standard,
-                                                            String primaryHeader, String secondaryHeader,
-                                                            String itemCategory) {
-        int[] section = findTableSection(sheet, primaryHeader, secondaryHeader);
-        if (section == null) {
-            return Collections.emptyList();
-        }
-
-        List<EamMaintenanceStandardDetail> details = new ArrayList<>();
-        for (int rowIdx = section[0]; rowIdx <= section[1]; rowIdx++) {
-            Row row = sheet.getRow(rowIdx);
-            if (row == null || isEmptyRow(row)) {
-                continue;
-            }
-
-            // 纭繚绗竴鍒楁槸搴忓彿锛堟暟瀛楋級
-            Cell seqCell = row.getCell(0);
-            if (seqCell == null || seqCell.getCellType() != CellType.NUMERIC) {
-                continue;
-            }
-
-            // 鍒涘缓椤圭洰璇︽儏
-            EamMaintenanceStandardDetail detail = new EamMaintenanceStandardDetail();
-            detail.setStandardId(standard.getId());
-            detail.setItemCode(Integer.parseInt(getCellStringValue(row.getCell(0))));
-            detail.setItemName(getCellStringValue(row.getCell(1)));
-            detail.setItemCategory(itemCategory);
-
-            // 鏍规嵁椤圭洰绫诲瀷璁剧疆闇�姹傚瓧娈�
-            if ("DAY_INSPECTION".equals(itemCategory)) {
-                detail.setItemDemand(getCellStringValue(row.getCell(2)));
-            } else if ("WEEK_INSPECTION".equals(itemCategory)) {
-                detail.setItemDemand(getCellStringValue(row.getCell(2)));
-            }
-
-            details.add(detail);
-        }
-
-        return details;
-    }
-
-    /**
-     * 鏌ユ壘琛ㄦ牸鍖哄煙
-     */
-    private int[] findTableSection(Sheet sheet, String primaryHeader, String secondaryHeader) {
-        for (int rowIdx = 0; rowIdx <= sheet.getLastRowNum(); rowIdx++) {
-            Row row = sheet.getRow(rowIdx);
-            if (row == null) continue;
-
-            if (isHeaderRow(row, primaryHeader, secondaryHeader)) {
-                int startRow = rowIdx + 1;
-                int endRow = findDataEnd(sheet, startRow);
-                return new int[]{startRow, endRow};
-            }
-        }
-        return null;
-    }
-
-    /**
-     * 妫�鏌ユ槸鍚︿负琛ㄥご琛�
-     */
-    private boolean isHeaderRow(Row row, String header1, String header2) {
-        boolean foundHeader1 = false;
-        boolean foundHeader2 = false;
-
-        for (int colIdx = 0; colIdx < row.getLastCellNum(); colIdx++) {
-            Cell cell = row.getCell(colIdx);
-            if (cell == null) continue;
-
-            String cellValue = getCellStringValue(cell);
-            if (cellValue.contains(header1)) foundHeader1 = true;
-            if (cellValue.contains(header2)) foundHeader2 = true;
-        }
-
-        return foundHeader1 && foundHeader2;
-    }
-
-    /**
-     * 鏌ユ壘鏁版嵁缁撴潫浣嶇疆
-     */
-    private int findDataEnd(Sheet sheet, int startRow) {
-        for (int rowIdx = startRow; rowIdx <= sheet.getLastRowNum(); rowIdx++) {
-            Row row = sheet.getRow(rowIdx);
-            if (row == null) return rowIdx - 1;
-
-            // 妫�鏌ユ槸鍚︾粨鏉熸爣蹇楄锛堝绛惧瓧琛岋級
-            if (isSignatureRow(row)) {
-                return rowIdx - 1;
-            }
-
-            // 妫�鏌ユ槸鍚︽柊鐨勮〃澶村紑濮�
-            if (isNewHeaderStart(row)) {
-                return rowIdx - 1;
-            }
-        }
-        return sheet.getLastRowNum();
-    }
-
-    /**
-     * 璇嗗埆绛惧瓧琛岀壒寰�
-     */
-    private boolean isSignatureRow(Row row) {
-        for (int colIdx = 0; colIdx < row.getLastCellNum(); colIdx++) {
-            Cell cell = row.getCell(colIdx);
-            if (cell == null) continue;
-
-            String value = getCellStringValue(cell);
-            if (value.contains("绛惧瓧") || value.contains("璐d换浜�") ||
-                    value.contains("鎵ц") || value.contains("纭")) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * 璇嗗埆鏂拌〃澶村紑濮�
-     */
-    private boolean isNewHeaderStart(Row row) {
-        for (int colIdx = 0; colIdx < row.getLastCellNum(); colIdx++) {
-            Cell cell = row.getCell(colIdx);
-            if (cell == null) continue;
-
-            String value = getCellStringValue(cell);
-            if ("搴忓彿".equals(value) || "鐐规椤圭洰".equals(value) || "鍛ㄤ繚鍏婚」鐩�".equals(value)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * 妫�鏌ヨ鏄惁涓虹┖
-     */
-    private boolean isEmptyRow(Row row) {
-        if (row == null) return true;
-        for (int colIdx = 0; colIdx < row.getLastCellNum(); colIdx++) {
-            Cell cell = row.getCell(colIdx);
-            if (cell != null && cell.getCellType() != CellType.BLANK) {
-                String value = getCellStringValue(cell);
-                if (StringUtils.isNotBlank(value)) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    /**
      * 浣跨敤姝e垯鎻愬彇瀛楁
      */
     private String extractField(String text, String regex) {
@@ -903,10 +735,139 @@
     }
 
     /**
-     * 鑾峰彇鍗曞厓鏍煎瓧绗︿覆鍊�
+            * 鎻愬彇姣忔棩鐐规椤圭洰
+     */
+    private List<EamMaintenanceStandardDetail> extractDailyItems(Sheet sheet, EamMaintenanceStandard standard, Map<Integer, String> rowErrors) {
+        // 浣跨敤澶氬叧閿瘝鍖归厤
+        String[] primaryHeaders = {"鐐规椤圭洰", "鏃ュ父鐐规", "姣忔棩妫�鏌�"};
+        String[] secondaryHeaders = {"瀹屾垚鏁版嵁/瑕佹眰", "妫�鏌ユ爣鍑�", "瑕佹眰"};
+        return extractItems(sheet, standard, primaryHeaders, secondaryHeaders, "DAY_INSPECTION", rowErrors);
+    }
+
+    /**
+            * 鎻愬彇鍛ㄤ繚鍏婚」鐩�
+     */
+    private List<EamMaintenanceStandardDetail> extractWeeklyItems(Sheet sheet, EamMaintenanceStandard standard, Map<Integer, String> rowErrors) {
+        // 浣跨敤澶氬叧閿瘝鍖归厤
+        String[] primaryHeaders = {"鍛ㄤ繚鍏婚」鐩�", "鍛ㄤ繚鍏�", "姣忓懆淇濆吇"};
+        String[] secondaryHeaders = {"妫�鏌ユ爣鍑�", "淇濆吇瑕佹眰", "鏍囧噯"};
+        return extractItems(sheet, standard, primaryHeaders, secondaryHeaders, "WEEK_INSPECTION", rowErrors);
+    }
+
+    /**
+     * 鏍稿績鏀硅繘锛氫紭鍖栬〃鏍煎尯鍩熻瘑鍒拰鏁版嵁鎻愬彇
+    */
+    private List<EamMaintenanceStandardDetail> extractItems(Sheet sheet,
+                                                            EamMaintenanceStandard standard,
+                                                            String[] primaryHeaders,
+                                                            String[] secondaryHeaders,
+                                                            String itemCategory,
+                                                            Map<Integer, String> rowErrors) {
+
+        // 1. 瀹氫綅琛ㄦ牸鍖哄煙锛堢簿纭尮閰嶈〃澶达級
+        int startRow = findHeaderRow(sheet, primaryHeaders, secondaryHeaders);
+        if (startRow == -1) {
+            rowErrors.put(-1, "鏈壘鍒�" + Arrays.toString(primaryHeaders) + "琛ㄥご鍖哄煙");
+            return Collections.emptyList();
+        }
+
+        int endRow = findDataEnd(sheet, startRow + 1, "鍛ㄤ繚鍏婚」鐩�");
+
+        // 鎻愬彇鏃ュ織锛堝疄闄呬娇鐢ㄦ椂鍙互鍘绘帀锛�
+        System.out.println("鎻愬彇鍖哄煙: " + (startRow + 1) + "琛屽埌" + (endRow + 1) + "琛�");
+
+        // 2. 鎻愬彇鏁版嵁琛�
+        List<EamMaintenanceStandardDetail> details = new ArrayList<>();
+        for (int rowIdx = startRow + 1; rowIdx <= endRow; rowIdx++) {
+            Row row = sheet.getRow(rowIdx);
+            if (row == null) continue;
+
+            try {
+                // 搴忓彿鍒楀鐞�
+                Cell seqCell = row.getCell(0);
+                if (seqCell == null || seqCell.getCellType() == CellType.BLANK) {
+                    continue;
+                }
+
+                // 鑾峰彇搴忓彿鍊硷紙鏀寔鏁板瓧鍜屾枃鏈牸寮忥級
+                int seqValue = 0;
+                try {
+                    if (seqCell.getCellType() == CellType.NUMERIC) {
+                        seqValue = (int) seqCell.getNumericCellValue();
+                    } else if (seqCell.getCellType() == CellType.STRING) {
+                        seqValue = Integer.parseInt(seqCell.getStringCellValue().trim());
+                    }
+                } catch (NumberFormatException e) {
+                    rowErrors.put(rowIdx + 1, "搴忓彿鏍煎紡閿欒");
+                    continue;
+                }
+
+                // 椤圭洰鍚嶇О鍒楋紙绗簩鍒楋級
+                Cell nameCell = row.getCell(1);
+                if (nameCell == null || nameCell.getCellType() == CellType.BLANK) {
+                    continue;
+                }
+                String itemName = getCellStringValue(nameCell).trim();
+
+                // 瑕佹眰/鏍囧噯鍒楋紙绗笁鍒楋級
+                String demand = "";
+                if (row.getLastCellNum() >= 3) {
+                    Cell demandCell = row.getCell(2);
+                    if (demandCell != null) {
+                        demand = getCellStringValue(demandCell).trim();
+                    }
+                }
+
+                // 鍒涘缓璇︽儏瀵硅薄
+                EamMaintenanceStandardDetail detail = new EamMaintenanceStandardDetail();
+                detail.setStandardId(standard.getId());
+                detail.setItemCode(seqValue);
+                detail.setItemName(itemName);
+                detail.setItemDemand(demand);
+                detail.setItemCategory(itemCategory);
+                details.add(detail);
+
+            } catch (Exception e) {
+                rowErrors.put(rowIdx + 1, "瑙f瀽閿欒: " + e.getMessage());
+            }
+        }
+        return details;
+    }
+
+    /**
+     * 鑾峰彇琛屼腑鎵�鏈夊崟鍏冩牸鐨勫瓧绗︿覆鍊�
+     */
+    private List<String> getRowStringValues(Row row) {
+        List<String> values = new ArrayList<>();
+        if (row == null) return values;
+
+        for (int cellIdx = 0; cellIdx < row.getLastCellNum(); cellIdx++) {
+            Cell cell = row.getCell(cellIdx);
+            if (cell != null) {
+                values.add(getCellStringValue(cell));
+            } else {
+                values.add(""); // 瀵逛簬绌哄崟鍏冩牸娣诲姞绌哄瓧绗︿覆
+            }
+        }
+        return values;
+    }
+
+    /**
+     * 鑾峰彇鍗曞厓鏍煎瓧绗︿覆鍊硷紙澧炲己鍏紡澶勭悊锛�
      */
     private String getCellStringValue(Cell cell) {
-        if (cell == null) return "";
+        if (cell == null) {
+            return "";
+        }
+        // 淇濇寔涓嶅彉锛屼絾娣诲姞鏁板瓧绫诲瀷澶勭悊
+        if (cell.getCellType() == CellType.NUMERIC) {
+            // 鏁存暟澶勭悊
+            double num = cell.getNumericCellValue();
+            if (num == (int) num) {
+                return String.valueOf((int) num);
+            }
+            return String.valueOf(num);
+        }
         switch (cell.getCellType()) {
             case STRING:
                 return cell.getStringCellValue().trim();
@@ -918,22 +879,117 @@
             case BOOLEAN:
                 return String.valueOf(cell.getBooleanCellValue());
             case FORMULA:
-                return handleFormulaCell(cell);
+                return getFormulaCellValue(cell);
             default:
                 return "";
         }
     }
 
     /**
-     * 澶勭悊鍏紡鍗曞厓鏍�
+     * 绮剧‘鏌ユ壘琛ㄥご琛�
+    */
+    private int findHeaderRow(Sheet sheet, String[] primaryHeaders, String[] secondaryHeaders) {
+        for (int rowIdx = 0; rowIdx <= sheet.getLastRowNum(); rowIdx++) {
+            Row row = sheet.getRow(rowIdx);
+            if (row == null) continue;
+
+            String rowText = getRowStringValues(row).stream().collect(Collectors.joining());
+
+            // 妫�鏌ヤ富鏍囬鍜屽壇鏍囬
+            boolean hasPrimary = false;
+            boolean hasSecondary = false;
+
+            for (String header : primaryHeaders) {
+                if (rowText.contains(header)) {
+                    hasPrimary = true;
+                    break;
+                }
+            }
+
+            for (String header : secondaryHeaders) {
+                if (rowText.contains(header)) {
+                    hasSecondary = true;
+                    break;
+                }
+            }
+
+            if (hasPrimary && hasSecondary) {
+                return rowIdx;
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * 鏌ユ壘鏁版嵁缁撴潫浣嶇疆锛堟牴鎹偍鐨凟xcel缁撴瀯浼樺寲锛�
      */
-    private String handleFormulaCell(Cell cell) {
+    private int findDataEnd(Sheet sheet, int startRow, String nextSectionKeyword) {
+        int consecutiveEmptyRows = 0;
+        final int MAX_EMPTY_ROWS = 3;
+
+        for (int rowIdx = startRow; rowIdx <= sheet.getLastRowNum(); rowIdx++) {
+            Row row = sheet.getRow(rowIdx);
+
+            // 鍏抽敭鏀硅繘1锛氱┖琛屽鐞�
+            if (isEssentiallyEmpty(row)) {
+                consecutiveEmptyRows++;
+                if (consecutiveEmptyRows >= MAX_EMPTY_ROWS) {
+                    return rowIdx - consecutiveEmptyRows;
+                }
+                continue;
+            } else {
+                consecutiveEmptyRows = 0;
+            }
+
+            // 鍏抽敭鏀硅繘2锛氱粨鏉熸爣璁版娴�
+            String rowText = getRowStringValues(row).stream().collect(Collectors.joining());
+
+            // 鏍规嵁鎮ㄧ殑Excel缁撴瀯锛岀瀛楄鏈夌壒瀹氭牸寮�
+            if (rowText.contains("缁存姢璐d换浜虹瀛�")) {
+                return rowIdx - 1;
+            }
+
+            // 妫�娴嬩笅涓�涓尯鍩熺殑寮�濮嬶紙濡傚懆淇濆吇椤圭洰锛�
+            if (StringUtils.isNotBlank(nextSectionKeyword) &&
+                    rowText.contains(nextSectionKeyword)) {
+                return rowIdx - 1;
+            }
+        }
+        return sheet.getLastRowNum();
+    }
+
+    /**
+     * 鍒ゆ柇鏉′欢锛氬墠涓ゅ垪涓虹┖鍗宠涓虹┖琛�
+     */
+    private boolean isEssentiallyEmpty(Row row) {
+        if (row == null) return true;
+
+        // 妫�鏌ュ簭鍙峰垪
+        Cell indexCell = row.getCell(0);
+        if (indexCell != null && indexCell.getCellType() != CellType.BLANK) {
+            return false;
+        }
+
+        // 妫�鏌ラ」鐩悕绉板垪
+        Cell nameCell = row.getCell(1);
+        if (nameCell != null && nameCell.getCellType() != CellType.BLANK) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+            * 鑾峰彇鍏紡鍗曞厓鏍煎��
+     */
+    private String getFormulaCellValue(Cell cell) {
         try {
-            FormulaEvaluator evaluator = cell.getSheet().getWorkbook().getCreationHelper().createFormulaEvaluator();
+            Workbook workbook = cell.getSheet().getWorkbook();
+            FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
             CellValue cellValue = evaluator.evaluate(cell);
-
-            if (cellValue == null) return "";
-
+            if (cellValue == null) {
+                return "";
+            }
             switch (cellValue.getCellType()) {
                 case STRING:
                     return cellValue.getStringValue();
@@ -945,9 +1001,67 @@
                     return "";
             }
         } catch (Exception e) {
+            log.warn("瑙f瀽鍏紡鍗曞厓鏍煎け璐�");
             return "";
         }
     }
+
+
+    private int findDataEnd(Sheet sheet, int startRow) {
+        int consecutiveEmptyRows = 0;
+        final int MAX_EMPTY_ROWS = 2;
+        boolean foundData = false;
+
+        for (int rowIdx = startRow; rowIdx <= sheet.getLastRowNum(); rowIdx++) {
+            Row row = sheet.getRow(rowIdx);
+
+            // 鍏抽敭浼樺寲1锛氬厛妫�鏌ユ槸鍚︿负绌鸿
+            if (isEmptyRow(row)) {
+                consecutiveEmptyRows++;
+                if (consecutiveEmptyRows >= MAX_EMPTY_ROWS) {
+                    return foundData ? rowIdx - consecutiveEmptyRows : startRow;
+                }
+                continue;
+            } else {
+                consecutiveEmptyRows = 0;
+            }
+
+            // 鍏抽敭浼樺寲2锛氫弗鏍奸檺瀹氱粨鏉熸爣璁扮殑璇嗗埆鏉′欢
+            if (isStrongEndMarker(row)) {
+                return foundData ? rowIdx - 1 : startRow;
+            }
+
+            // 鍏抽敭浼樺寲3锛氭爣璁板凡鎵惧埌鏈夋晥鏁版嵁
+            foundData = true;
+        }
+        return sheet.getLastRowNum();
+    }
+
+    // 澧炲己鐗堢粨鏉熸爣璁拌瘑鍒�
+    private boolean isStrongEndMarker(Row row) {
+        String rowText = String.join("", getRowStringValues(row)).toLowerCase();
+
+        return
+                // 绮剧‘鍖归厤绛惧瓧鐗瑰緛锛堝嚭鐜板湪琛岄锛�
+                (rowText.startsWith("缁存姢璐d换浜虹瀛�") ||
+                        rowText.startsWith("鎵ц浜虹瀛�")) ||
+                        // 绮剧‘鍖归厤鏂版澘鍧楁爣棰�
+                        rowText.matches("^\\s*鍛ㄤ繚鍏婚」鐩甛\s*$") ||
+                        rowText.contains("骞村害淇濆吇椤圭洰");
+    }
+
+    // 绌鸿妫�娴嬩紭鍖栵紙鍏佽閮ㄥ垎鍒椾负绌猴級
+    private boolean isEmptyRow(Row row) {
+        if (row == null) return true;
+        // 鍙鏌ュ墠3鍒楋紙搴忓彿鍒�+椤圭洰鍚�+瑕佹眰锛�
+        for (int cellIdx = 0; cellIdx < Math.min(3, row.getLastCellNum()); cellIdx++) {
+            Cell cell = row.getCell(cellIdx);
+            if (cell != null && cell.getCellType() != CellType.BLANK) {
+                return false;
+            }
+        }
+        return true;
+    }
     /*瀵煎叆鐐规鏂囦欢Excel--------------------------缁撴潫*/
 
     /*瀵煎叆浜屼繚涓変繚鏂囦欢Excel--------------------------寮�濮�*/
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
index d19d873..1827589 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -3,12 +3,12 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.flowable.engine.TaskService;
@@ -33,6 +33,10 @@
 import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
 import org.jeecg.modules.flowable.service.IFlowDefinitionService;
 import org.jeecg.modules.flowable.service.IFlowTaskService;
+import org.jeecg.modules.system.entity.BaseFactory;
+import org.jeecg.modules.system.entity.BaseFactoryUser;
+import org.jeecg.modules.system.service.IBaseFactoryService;
+import org.jeecg.modules.system.service.IBaseFactoryUserService;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecg.modules.system.vo.UserSelector;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -66,7 +70,10 @@
     private TaskService taskService;
     @Autowired
     private IFlowTaskService flowTaskService;
-
+    @Autowired
+    private IBaseFactoryUserService baseFactoryUserService;
+    @Autowired
+    private IBaseFactoryService baseFactoryService;
     @Autowired
     private ISysUserService sysUserService;
     @Autowired
@@ -84,13 +91,21 @@
         if (sysUser == null) {
             return page;
         }
-        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
+        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
-            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
             queryWrapper.in("e.equipment_code", equipArr);
         } else {
-            //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
-            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶�
+            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
+                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
+            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
+                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
+                Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
+                queryWrapper.in("e.factory_org_code", factoryCode);
+            } else {
+                return page;
+            }
         }
         //鏌ヨ鏉′欢杩囨护
         if (query != null) {
@@ -370,17 +385,6 @@
                 //璁剧疆entity
                 entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_CONFIRM.name());
                 entity.setActualEndTime(new Date());
-                //澶勭悊闄勪欢
-                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
-                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
-                    ObjectMapper mapper = new ObjectMapper();
-                    try {
-                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
-                        entity.setImageFiles(referenceFile);
-                    } catch (JsonProcessingException e) {
-                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-                    }
-                }
                 //澶勭悊璇︽儏
                 if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
                     secondMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
@@ -403,10 +407,7 @@
                 request.setComment(request.getConfirmComment());
                 //璁剧疆entity
                 entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name());
-                entity.setConfirmUser(user.getUsername());
-                entity.setConfirmComment(request.getConfirmComment());
                 entity.setConfirmTime(new Date());
-                entity.setConfirmDealType(request.getConfirmDealType());
                 if (CommonConstant.HAS_CANCLE.equals(request.getConfirmDealType())) {
                     //椹冲洖
                     userApprovalList = new ArrayList<>();
@@ -427,9 +428,6 @@
                 request.setComment(request.getLeaderConfirmComment());
                 //璁剧疆entity
                 entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name());
-                entity.setConfirmLeader(user.getUsername());
-                entity.setLeaderConfirmComment(request.getLeaderConfirmComment());
-                entity.setLeaderConfirmTime(new Date());
                 //鏇存柊璁惧淇濆吇鐘舵��
                 eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
                 break;
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java
new file mode 100644
index 0000000..11c5a5e
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java
@@ -0,0 +1,18 @@
+package org.jeecg.modules.eam.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceChange;
+import org.jeecg.modules.eam.mapper.EamThirdMaintenanceChangeMapper;
+import org.jeecg.modules.eam.service.IEamThirdMaintenanceChangeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 涓変繚鍙樻洿
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+@Service
+public class EamThirdMaintenanceChangeServiceImpl extends ServiceImpl<EamThirdMaintenanceChangeMapper, EamThirdMaintenanceChange> implements IEamThirdMaintenanceChangeService {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java
new file mode 100644
index 0000000..7dcc366
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java
@@ -0,0 +1,18 @@
+package org.jeecg.modules.eam.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace;
+import org.jeecg.modules.eam.mapper.EamThirdMaintenanceFurnaceMapper;
+import org.jeecg.modules.eam.service.IEamThirdMaintenanceFurnaceService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 鐪熺┖鐑鐞嗙倝涓変繚
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+@Service
+public class EamThirdMaintenanceFurnaceServiceImpl extends ServiceImpl<EamThirdMaintenanceFurnaceMapper, EamThirdMaintenanceFurnace> implements IEamThirdMaintenanceFurnaceService {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
index 219caca..fdff9fd 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -3,8 +3,10 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -38,6 +40,10 @@
 import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
 import org.jeecg.modules.flowable.service.IFlowDefinitionService;
 import org.jeecg.modules.flowable.service.IFlowTaskService;
+import org.jeecg.modules.system.entity.BaseFactory;
+import org.jeecg.modules.system.entity.BaseFactoryUser;
+import org.jeecg.modules.system.service.IBaseFactoryService;
+import org.jeecg.modules.system.service.IBaseFactoryUserService;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecg.modules.system.vo.UserSelector;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -82,6 +88,11 @@
     @Autowired
     private IEamPrecisionCheckDetailService precisionCheckDetailService;
 
+    @Resource
+    private IBaseFactoryUserService baseFactoryUserService;
+    @Resource
+    private IBaseFactoryService baseFactoryService;
+
     @Override
     public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) {
         QueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new QueryWrapper<>();
@@ -95,8 +106,16 @@
             List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
             queryWrapper.in("e.equipment_code", equipArr);
         } else {
-            //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
-            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶�
+            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
+                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
+            if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
+                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
+                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
+                queryWrapper.in("e.factory_org_code", factoryCode);
+            }else {
+                return page;
+            }
         }
         //鏌ヨ鏉′欢杩囨护
         if (query != null) {
@@ -330,138 +349,138 @@
         if (entity == null) {
             throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
         }
-        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        if (user == null || StrUtil.isBlank(user.getId())) {
-            throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒");
-        }
-        request.setAssignee(user.getUsername());
-        // 鑾峰彇娴佺▼涓氬姟璁板綍
-        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId());
-        if (flowMyBusiness == null) {
-            throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�");
-        }
-
-        boolean userAuthorized = isUserAuthorized(flowMyBusiness, user);
-        if (!userAuthorized) {
-            throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�");
-        }
-        // 璁ら浠诲姟
-        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
-            throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒");
-        }
-
-        EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
-        if (equipment == null) {
-            throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
-        }
-
-        ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus());
-        if (status == null) {
-            return null;
-        }
-        //娴佺▼鍙橀噺
-        Map<String, Object> values = new HashMap<>();
-        List<String> userApprovalList;
-        List<UserSelector> userSelectors;
-        switch (status) {
-            case UNDER_MAINTENANCE:
-                boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId());
-                //鎵ц瀹屾垚
-                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006);
-                if (CollectionUtil.isEmpty(userSelectors)) {
-                    throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
-                }
-                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
-                values.put("dataId", entity.getId());
-                values.put("organization", "涓変繚鎵ц缁撴潫");
-                values.put("comment", "涓変繚鎵ц缁撴潫");
-                if (parallelCompletion) {
-                    values.put("NextAssignee", userApprovalList);
-                }
-                request.setComment("涓変繚鎵ц缁撴潫");
-                //璁剧疆entity
-                if (parallelCompletion) {
-                    entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_CONFIRM.name());
-                    entity.setActualEndTime(new Date());
-                }
-                if ("maintenance_execution".equals(flowMyBusiness.getTaskNameId())) {
-                    //鎵ц淇濆吇
-                    //澶勭悊闄勪欢
-                    if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
-                        List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
-                        ObjectMapper mapper = new ObjectMapper();
-                        try {
-                            String referenceFile = mapper.writeValueAsString(fileUploadResultList);
-                            entity.setImageFiles(referenceFile);
-                        } catch (JsonProcessingException e) {
-                            log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-                        }
-                    }
-                    //澶勭悊璇︽儏
-                    if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
-                        thirdMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
-                    }
-                } else if ("precision_check".equals(flowMyBusiness.getTaskNameId())) {
-                    entity.setPrecisionChecker(user.getUsername());
-                    entity.setPrecisionCheckTime(new Date());
-                    //澶勭悊绮惧害妫�楠�
-                    if (CollectionUtil.isNotEmpty(request.getPrecisionDetailList())) {
-                        precisionCheckDetailService.updateBatchById(request.getPrecisionDetailList());
-                    }
-                }
-                if (parallelCompletion) {
-                    //鏇存柊璁惧淇濆吇鐘舵��
-                    eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.THIRD_MAINTENANCE_WAIT_CONFIRM.name());
-                }
-                break;
-            case WAIT_CONFIRM:
-                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003);
-                if (CollectionUtil.isEmpty(userSelectors)) {
-                    throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
-                }
-                //鐝粍闀跨‘璁�
-                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
-                values.put("dataId", entity.getId());
-                values.put("organization", request.getConfirmComment());
-                values.put("comment", request.getConfirmComment());
-                values.put("NextAssignee", userApprovalList);
-                values.put("confirmation", request.getConfirmDealType());
-                request.setComment(request.getConfirmComment());
-                //璁剧疆entity
-                entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name());
-                entity.setConfirmUser(user.getUsername());
-                entity.setConfirmComment(request.getConfirmComment());
-                entity.setConfirmTime(new Date());
-                //澶勭悊鎶ヤ慨
-                List<EamThirdMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList());
-                if (CollectionUtil.isNotEmpty(collect)) {
-                    eamReportRepairService.reportRepairFromThirdMaintenance(equipment.getId(), entity.getOperator(), collect);
-                }
-                break;
-            case WAIT_LEADER_CONFIRM:
-                values.put("dataId", entity.getId());
-                values.put("organization", request.getLeaderConfirmComment());
-                values.put("comment", request.getLeaderConfirmComment());
-                request.setComment(request.getLeaderConfirmComment());
-                //璁剧疆entity
-                entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name());
-                entity.setConfirmLeader(user.getUsername());
-                entity.setLeaderConfirmComment(request.getLeaderConfirmComment());
-                entity.setLeaderConfirmTime(new Date());
-                //鏇存柊璁惧淇濆吇鐘舵��
-                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
-                break;
-        }
-        request.setValues(values);
-
-        // 瀹屾垚娴佺▼浠诲姟
-        Result result = flowTaskService.complete(request);
-        if (!result.isSuccess()) {
-            throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
-        }
-        //淇濆瓨宸ュ崟
-        eamThirdMaintenanceOrderMapper.updateById(entity);
+//        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
+//        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+//        if (user == null || StrUtil.isBlank(user.getId())) {
+//            throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒");
+//        }
+//        request.setAssignee(user.getUsername());
+//        // 鑾峰彇娴佺▼涓氬姟璁板綍
+//        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId());
+//        if (flowMyBusiness == null) {
+//            throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�");
+//        }
+//
+//        boolean userAuthorized = isUserAuthorized(flowMyBusiness, user);
+//        if (!userAuthorized) {
+//            throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�");
+//        }
+//        // 璁ら浠诲姟
+//        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
+//            throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒");
+//        }
+//
+//        EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
+//        if (equipment == null) {
+//            throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
+//        }
+//
+//        ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus());
+//        if (status == null) {
+//            return null;
+//        }
+//        //娴佺▼鍙橀噺
+//        Map<String, Object> values = new HashMap<>();
+//        List<String> userApprovalList;
+//        List<UserSelector> userSelectors;
+//        switch (status) {
+//            case UNDER_MAINTENANCE:
+//                boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId());
+//                //鎵ц瀹屾垚
+//                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006);
+//                if (CollectionUtil.isEmpty(userSelectors)) {
+//                    throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+//                }
+//                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+//                values.put("dataId", entity.getId());
+//                values.put("organization", "涓変繚鎵ц缁撴潫");
+//                values.put("comment", "涓変繚鎵ц缁撴潫");
+//                if (parallelCompletion) {
+//                    values.put("NextAssignee", userApprovalList);
+//                }
+//                request.setComment("涓変繚鎵ц缁撴潫");
+//                //璁剧疆entity
+//                if (parallelCompletion) {
+//                    entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_CONFIRM.name());
+//                    entity.setActualEndTime(new Date());
+//                }
+//                if ("maintenance_execution".equals(flowMyBusiness.getTaskNameId())) {
+//                    //鎵ц淇濆吇
+//                    //澶勭悊闄勪欢
+//                    if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+//                        List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+//                        ObjectMapper mapper = new ObjectMapper();
+//                        try {
+//                            String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+//                            entity.setImageFiles(referenceFile);
+//                        } catch (JsonProcessingException e) {
+//                            log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+//                        }
+//                    }
+//                    //澶勭悊璇︽儏
+//                    if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+//                        thirdMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
+//                    }
+//                } else if ("precision_check".equals(flowMyBusiness.getTaskNameId())) {
+//                    entity.setPrecisionChecker(user.getUsername());
+//                    entity.setPrecisionCheckTime(new Date());
+//                    //澶勭悊绮惧害妫�楠�
+//                    if (CollectionUtil.isNotEmpty(request.getPrecisionDetailList())) {
+//                        precisionCheckDetailService.updateBatchById(request.getPrecisionDetailList());
+//                    }
+//                }
+//                if (parallelCompletion) {
+//                    //鏇存柊璁惧淇濆吇鐘舵��
+//                    eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.THIRD_MAINTENANCE_WAIT_CONFIRM.name());
+//                }
+//                break;
+//            case WAIT_CONFIRM:
+//                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003);
+//                if (CollectionUtil.isEmpty(userSelectors)) {
+//                    throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+//                }
+//                //鐝粍闀跨‘璁�
+//                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+//                values.put("dataId", entity.getId());
+//                values.put("organization", request.getConfirmComment());
+//                values.put("comment", request.getConfirmComment());
+//                values.put("NextAssignee", userApprovalList);
+//                values.put("confirmation", request.getConfirmDealType());
+//                request.setComment(request.getConfirmComment());
+//                //璁剧疆entity
+//                entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name());
+//                entity.setConfirmUser(user.getUsername());
+//                entity.setConfirmComment(request.getConfirmComment());
+//                entity.setConfirmTime(new Date());
+//                //澶勭悊鎶ヤ慨
+//                List<EamThirdMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList());
+//                if (CollectionUtil.isNotEmpty(collect)) {
+//                    eamReportRepairService.reportRepairFromThirdMaintenance(equipment.getId(), entity.getOperator(), collect);
+//                }
+//                break;
+//            case WAIT_LEADER_CONFIRM:
+//                values.put("dataId", entity.getId());
+//                values.put("organization", request.getLeaderConfirmComment());
+//                values.put("comment", request.getLeaderConfirmComment());
+//                request.setComment(request.getLeaderConfirmComment());
+//                //璁剧疆entity
+//                entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name());
+//                entity.setConfirmLeader(user.getUsername());
+//                entity.setLeaderConfirmComment(request.getLeaderConfirmComment());
+//                entity.setLeaderConfirmTime(new Date());
+//                //鏇存柊璁惧淇濆吇鐘舵��
+//                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
+//                break;
+//        }
+//        request.setValues(values);
+//
+//        // 瀹屾垚娴佺▼浠诲姟
+//        Result result = flowTaskService.complete(request);
+//        if (!result.isSuccess()) {
+//            throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
+//        }
+//        //淇濆瓨宸ュ崟
+//        eamThirdMaintenanceOrderMapper.updateById(entity);
         return entity;
     }
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceSpareServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceSpareServiceImpl.java
new file mode 100644
index 0000000..b4e9110
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceSpareServiceImpl.java
@@ -0,0 +1,18 @@
+package org.jeecg.modules.eam.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceSpare;
+import org.jeecg.modules.eam.mapper.EamThirdMaintenanceSpareMapper;
+import org.jeecg.modules.eam.service.IEamThirdMaintenanceSpareService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 涓変繚澶囦欢鏄庣粏
+ * @Author: jeecg-boot
+ * @Date:   2025-07-11
+ * @Version: V1.0
+ */
+@Service
+public class EamThirdMaintenanceSpareServiceImpl extends ServiceImpl<EamThirdMaintenanceSpareMapper, EamThirdMaintenanceSpare> implements IEamThirdMaintenanceSpareService {
+
+}
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/util/WorkShopOrgCodeProRule.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/rule/WorkShopOrgCodeProRule.java
similarity index 98%
rename from lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/util/WorkShopOrgCodeProRule.java
rename to lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/rule/WorkShopOrgCodeProRule.java
index f78635a..4a6ed59 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/util/WorkShopOrgCodeProRule.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/rule/WorkShopOrgCodeProRule.java
@@ -1,4 +1,4 @@
-package org.jeecg.modules.system.util;
+package org.jeecg.modules.system.rule;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
index 3406dd7..0062273 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
@@ -122,87 +122,47 @@
         String[] levels = path.split("/");
         int depth = levels.length;
 
-        // 鏀寔澶氱鏍煎紡锛氫腑蹇�/宸ュ尯銆佷腑蹇�/宸ユ銆佷腑蹇�/宸ュ尯/宸ユ
+        // 鏀寔鏍煎紡锛氫腑蹇�/宸ュ尯銆佷腑蹇�/宸ユ銆佷腑蹇�/宸ュ尯/宸ユ
         if (depth < 2 || depth > 3) {
             return null;
         }
 
-        // 浠庡簳灞傚紑濮嬫煡璇細鏈�鍚庝竴绾у彲鑳芥槸宸ュ尯鎴栧伐娈�
-        String lastName = levels[depth - 1];
-        BaseFactory lastLevel = searchForLastLevel(lastName);
-        if (lastLevel == null) return null;
+        // 浠庨《灞傚紑濮嬫煡璇� - 绗�1绾э細涓績鑺傜偣
+        BaseFactory center = findFactory(levels[0], 1, null);
+        if (center == null) return null;
 
-        return validatePath(levels, lastLevel);
-    }
-
-    private BaseFactory validatePath(String[] levels, BaseFactory lastLevel) {
-        if (levels.length == 2) {
-            // 涓績/宸ュ尯 鎴� 涓績/宸ユ
-            BaseFactory center = findParentCenter(lastLevel);
-            if (center != null &&
-                    center.getFactoryName().equals(levels[0]) &&
-                    ("1").equals(center.getFactoryCategory())) {
-                return lastLevel;
+        // 绗�2绾ф煡璇細宸ュ尯鎴栧伐娈�
+        BaseFactory secondLevel;
+        if (depth == 2) {
+            // 鍏煎鏂规锛氫紭鍏堟煡宸ユ鍐嶆煡宸ュ尯
+            secondLevel = findFactory(levels[1], 3, center.getId());
+            if (secondLevel == null) {
+                secondLevel = findFactory(levels[1], 2, center.getId());
             }
+            return secondLevel; // 鍙兘涓簄ull
         } else {
-            // 涓績/宸ュ尯/宸ユ
-            if (!("3").equals(lastLevel.getFactoryCategory())) return null;
+            // 绗�2绾у繀椤绘槸宸ュ尯
+            BaseFactory workArea = findFactory(levels[1], 2, center.getId());
+            if (workArea == null) return null;
 
-            BaseFactory workArea = getById(lastLevel.getParentId());
-            if (workArea == null ||
-                    !("2").equals(workArea.getFactoryCategory())) return null;
-
-            BaseFactory center = getById(workArea.getParentId());
-            if (center == null ||
-                    !("1").equals(center.getFactoryCategory())) return null;
-
-            if (workArea.getFactoryName().equals(levels[1]) &&
-                    center.getFactoryName().equals(levels[0])) {
-                return lastLevel;
-            }
+            // 绗�3绾э細宸ユ
+            return findFactory(levels[2], 3, workArea.getId());
         }
-        return null;
     }
 
-    private BaseFactory searchForLastLevel(String name) {
-        // 鍏堝皾璇曟煡璇㈠伐娈碉紙绫诲埆3锛�
-        BaseFactory workshop = findFactory(name, 3, null);
-        if (workshop != null) return workshop;
-
-        // 濡傛灉娌℃湁鎵惧埌宸ユ锛屽皾璇曟煡璇㈠伐鍖猴紙绫诲埆2锛�
-        return findFactory(name, 2, null);
-    }
-
-    private BaseFactory findParentCenter(BaseFactory entity) {
-        if (("1").equals(entity.getFactoryCategory())) {
-            return entity; // 鏈韩灏辨槸涓績
-        }
-
-        BaseFactory parent = getById(entity.getParentId());
-        if (parent == null) return null;
-
-        if (("1").equals(parent.getFactoryCategory())) {
-            return parent; // 鐩存帴鐖剁骇鏄腑蹇�
-        }
-
-        // 濡傛灉鐖剁骇涓嶆槸涓績锛屽皾璇曟壘鐖剁骇鐨勭埗绾�
-        return getById(parent.getParentId());
-    }
-
+    // 淇濇寔涓嶅彉
     private BaseFactory searchByCodeOrName(String keyword) {
-        // 浣跨敤鍒嗛〉鏂瑰紡鍏煎SQL Server
         LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
         query.and(q -> q.eq(BaseFactory::getFactoryName, keyword)
                 .or()
                 .like(BaseFactory::getFactoryCode, keyword));
 
-        // 浣跨敤鍒嗛〉鏌ヨ鑾峰彇绗竴鏉¤褰�
         Page<BaseFactory> page = new Page<>(1, 1);
         Page<BaseFactory> resultPage = baseMapper.selectPage(page, query);
-
         return resultPage.getRecords().isEmpty() ? null : resultPage.getRecords().get(0);
     }
 
+    // 淇濇寔涓嶅彉
     private BaseFactory findFactory(String name, Integer category, String parentId) {
         LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
         query.eq(BaseFactory::getFactoryName, name);
@@ -210,17 +170,11 @@
         if (category != null) query.eq(BaseFactory::getFactoryCategory, category);
         if (parentId != null) query.eq(BaseFactory::getParentId, parentId);
 
-        // 浣跨敤鍒嗛〉鏂瑰紡鍏煎SQL Server
         Page<BaseFactory> page = new Page<>(1, 1);
         Page<BaseFactory> resultPage = baseMapper.selectPage(page, query);
-
         return resultPage.getRecords().isEmpty() ? null : resultPage.getRecords().get(0);
     }
 
-    private BaseFactory getById(String id) {
-        if (StringUtils.isBlank(id)) return null;
-        return baseMapper.selectById(id);
-    }
 
     /**
      * saveProductionData 瀵瑰簲 add 淇濆瓨鐢ㄦ埛鍦ㄩ〉闈㈡坊鍔犵殑鏂扮殑璁惧杞﹂棿绠$悊瀵硅薄鏁版嵁
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
index cb14a54..8d4621f 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -796,7 +796,7 @@
             if (CollectionUtil.isNotEmpty(factoryIds)) {
                 String factory = String.join(",", factoryIds);
                 String inClause = "(" + factory + ")";
-                queryWrapper.exists("select 1 from eam_base_factory_user t where t.user_id=sys_user.id and t.factory_id in {0}", inClause);
+                queryWrapper.exists("select 1 from eam_base_factory_user t where t.user_id=sys_user.id and t.factory_id in "+inClause);
             } else {
                 return Collections.emptyList();
             }

--
Gitblit v1.9.3