From fdf4cdbf9723d9d05938fe56d2014769dd7ece4c Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 10 5月 2025 12:17:19 +0800
Subject: [PATCH] 修复 模糊查询bug

---
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs                                          |  288 +-
 Weben_CMS专用代码生成器/Code/Utility/ListHelper.cs                                                                                      |    2 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/MapperProfiles/WorkPlanAutoMapperProfile.cs                          |    3 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMS.Plugin.PipeLineLems.csproj                                                   |    6 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/MyFullAuditedAggregateRootForRecord.cs                        |   94 +
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250510023811_Update1.Designer.cs                              |  385 +++++
 Weben_CMS专用代码生成器/Code/GenerateCode_WeiBen_CMS.csproj                                                                             |    3 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/MyFullAuditedAggregateRoot.cs                                 |  136 +
 Weben_CMS专用代码生成器/Code/Generate/Web/Controllers/EntityModeDrawer_Generate.cs                                                      |    6 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanExportModel.cs                       |  288 +--
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/EntityTypeBuilderExtensions.cs                                |  114 +
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMSPluginEntry.cs                                                                |    2 
 Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs                                                                                 |   80 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/WorkPlan/WorkPlan.cs                                                      |  275 +--
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanDto.cs                               |  311 +--
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs                              |  306 +--
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanCreateOrUpdateDtoBase.cs             |  242 +-
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs                                     |  783 ++++-----
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/GetWorkPlanInput.cs                          |  570 +++----
 CommonDLL/CmsQueryExtensions.dll                                                                                                 |    0 
 Weben_CMS专用代码生成器/Code/Utility/CommonHelper.cs                                                                                    |   13 
 /dev/null                                                                                                                        |  142 -
 Weben_CMS专用代码生成器/Code/MainForm.cs                                                                                                |   12 
 Weben_CMS专用代码生成器/queryExtensions/CmsQueryExtensions/Extension/DynamicSearchParameters/PredicateExtensions/PredicateExtensions.cs |  102 +
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WorkPlan.cs             |   93 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/EntityTypeBuilderExtensionsForRecord.cs                       |   96 +
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250510023811_Update1.cs                                       |  178 ++
 Weben_CMS专用代码生成器/Code/File/GenerateCodeConfigParamFiles/祥子的作业计划表配置文本(模糊查询自动版).txt                                                |   14 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Resources/Templates/WorkPlan导出模板.xlsx                                            |    0 
 Weben_CMS专用代码生成器/Code/MainForm.Designer.cs                                                                                       |   17 
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreWorkPlanRepository.cs                     |    2 
 31 files changed, 2,641 insertions(+), 1,922 deletions(-)

diff --git a/CommonDLL/CmsQueryExtensions.dll b/CommonDLL/CmsQueryExtensions.dll
index f0ee850..813fc1b 100644
--- a/CommonDLL/CmsQueryExtensions.dll
+++ b/CommonDLL/CmsQueryExtensions.dll
Binary files differ
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/GetWorkPlanInput.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/GetWorkPlanInput.cs
index 1209f34..e97ec45 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/GetWorkPlanInput.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/GetWorkPlanInput.cs
@@ -54,14 +54,134 @@
         public SearchFilterModeEnum TaskCode_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// 鍘熸枡缂栧彿
+        /// 鍘熸枡鏍囪瘑
         /// </summary>
-        public string OrgMaterialCode { get; set; }
+        public string DataIdentifier { get; set; }
 
         /// <summary>
-        /// 鍘熸枡缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 鍘熸枡鏍囪瘑-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public SearchFilterModeEnum OrgMaterialCode_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+        public SearchFilterModeEnum DataIdentifier_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍘熸枡鍨嬪彿
+        /// </summary>
+        public string MaterialMode { get; set; }
+
+        /// <summary>
+        /// 鍘熸枡鍨嬪彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialMode_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 闀垮害(mm)
+        /// </summary>
+        public decimal?  Length { get; set; }
+
+        /// <summary>
+        /// 闀垮害(mm)-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Length_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鎵撶爜鍐呭
+        /// </summary>
+        public string MarkingContent { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜鍐呭-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MarkingContent_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎵撶爜浣嶇疆
+        /// </summary>
+        public decimal?  MarkingPosition { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜浣嶇疆-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MarkingPosition_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鍒囧壊浣嶇疆
+        /// </summary>
+        public decimal?  CuttingPosition { get; set; }
+
+        /// <summary>
+        /// 鍒囧壊浣嶇疆-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum CuttingPosition_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 绠℃鏁伴噺
+        /// </summary>
+        public int?  Quantity { get; set; }
+
+        /// <summary>
+        /// 绠℃鏁伴噺-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Quantity_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 娉曞叞鍘氬害(mm)
+        /// </summary>
+        public decimal?  FlangeThickness { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍘氬害(mm)-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum FlangeThickness_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 娉曞叞鐩村緞(mm)
+        /// </summary>
+        public decimal?  FlangeInnerDiameter { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鐩村緞(mm)-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum FlangeInnerDiameter_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 娉曞叞鍏О鍘嬪姏
+        /// </summary>
+        public string WeldingHeatInput { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍏О鍘嬪姏-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum WeldingHeatInput_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 娉曞叞鍐茬爜鍐呭
+        /// </summary>
+        public string PipeAllowableStress { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍐茬爜鍐呭-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum PipeAllowableStress_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 濂楃闀垮害(mm)
+        /// </summary>
+        public decimal?  PipeDiameter { get; set; }
+
+        /// <summary>
+        /// 濂楃闀垮害(mm)-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum PipeDiameter_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 濂楃鐩村緞(mm)
+        /// </summary>
+        public decimal?  PipeWallThickness { get; set; }
+
+        /// <summary>
+        /// 濂楃鐩村緞(mm)-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum PipeWallThickness_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
 
         /// <summary>
         /// 宸ュ巶浠g爜
@@ -144,22 +264,12 @@
         public SearchFilterModeEnum PreSerialNumber_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// 鍘熸枡鏍囪瘑
-        /// </summary>
-        public string DataIdentifier { get; set; }
-
-        /// <summary>
-        /// 鍘熸枡鏍囪瘑-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum DataIdentifier_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 绠¤鏍肩爜
+        /// 绠℃缂栫爜
         /// </summary>
         public string PipeSpecCode { get; set; }
 
         /// <summary>
-        /// 绠¤鏍肩爜-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 绠℃缂栫爜-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
         public SearchFilterModeEnum PipeSpecCode_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
@@ -174,24 +284,24 @@
         public SearchFilterModeEnum PipeSectionName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// 澶栧緞
+        /// 澶栧緞(mm)
         /// </summary>
-        public string OuterDiameter { get; set; }
+        public decimal?  OuterDiameter { get; set; }
 
         /// <summary>
-        /// 澶栧緞-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 澶栧緞(mm)-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public SearchFilterModeEnum OuterDiameter_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+        public SearchFilterModeEnum OuterDiameter_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
 
         /// <summary>
-        /// 鍧″彛
+        /// 澹佸帤(mm)
         /// </summary>
-        public string Bevel { get; set; }
+        public decimal?  Thickness { get; set; }
 
         /// <summary>
-        /// 鍧″彛-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 澹佸帤(mm)-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public SearchFilterModeEnum Bevel_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+        public SearchFilterModeEnum Thickness_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
 
         /// <summary>
         /// 鏉愯川
@@ -204,252 +314,22 @@
         public SearchFilterModeEnum Material_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// 闀垮害
-        /// </summary>
-        public string Length { get; set; }
-
-        /// <summary>
-        /// 闀垮害-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum Length_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鎵撳瓟浣�
-        /// </summary>
-        public string DrillingPosition { get; set; }
-
-        /// <summary>
-        /// 鎵撳瓟浣�-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum DrillingPosition_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鐩歌疮
-        /// </summary>
-        public string Intersecting { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum Intersecting_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鎺ュ彛瑕佹眰
-        /// </summary>
-        public string InterfaceRequirement { get; set; }
-
-        /// <summary>
-        /// 鎺ュ彛瑕佹眰-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum InterfaceRequirement_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鏄惁鏈変富绛�
+        /// 鏄惁涓绘敮绠�
         /// </summary>
         public bool?  HasMainSignature { get; set; }
 
         /// <summary>
-        /// 鏄惁鏈変富绛�-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 鏄惁涓绘敮绠�-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
         public SearchFilterModeEnum HasMainSignature_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
 
         /// <summary>
-        /// 鍖呮嫭鏁伴噺
-        /// </summary>
-        public int?  Quantity { get; set; }
-
-        /// <summary>
-        /// 鍖呮嫭鏁伴噺-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum Quantity_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
-
-        /// <summary>
-        /// 鎵撶爜鍐呭
-        /// </summary>
-        public string MarkingContent { get; set; }
-
-        /// <summary>
-        /// 鎵撶爜鍐呭-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum MarkingContent_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鍒囧壊鏂囦欢
-        /// </summary>
-        public string CuttingFile { get; set; }
-
-        /// <summary>
-        /// 鍒囧壊鏂囦欢-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum CuttingFile_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鏀寰�
-        /// </summary>
-        public string BranchOuterDiameter { get; set; }
-
-        /// <summary>
-        /// 鏀寰�-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum BranchOuterDiameter_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鏀澹佸帤
-        /// </summary>
-        public string BranchWallThickness { get; set; }
-
-        /// <summary>
-        /// 鏀澹佸帤-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum BranchWallThickness_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鏀鏉愯川
-        /// </summary>
-        public string BranchMaterial { get; set; }
-
-        /// <summary>
-        /// 鏀鏉愯川-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum BranchMaterial_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鏀绔彛鏇茬巼鍗婂緞
-        /// </summary>
-        public string BranchPortRadius { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛鏇茬巼鍗婂緞-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum BranchPortRadius_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鏀绔彛瑙掑害
-        /// </summary>
-        public string BranchPortAngle { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑙掑害-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum BranchPortAngle_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鏀绔彛瑕佹眰
-        /// </summary>
-        public string BranchPortRequirement { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑕佹眰-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum BranchPortRequirement_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍨�
-        /// </summary>
-        public string IntersectingLineType { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍨�-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum IntersectingLineType_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍒�
-        /// </summary>
-        public string IntersectingLineCategory { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍒�-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum IntersectingLineCategory_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鎴愬搧鍥惧箙
-        /// </summary>
-        public string FinishedProductScale { get; set; }
-
-        /// <summary>
-        /// 鎴愬搧鍥惧箙-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum FinishedProductScale_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 娉曞叞鍘氬害
-        /// </summary>
-        public string FlangeThickness { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍘氬害-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum FlangeThickness_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 娉曞叞鍐呭緞
-        /// </summary>
-        public string FlangeInnerDiameter { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍐呭緞-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum FlangeInnerDiameter_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 鐒婃帴鐑緭鍏�
-        /// </summary>
-        public string WeldingHeatInput { get; set; }
-
-        /// <summary>
-        /// 鐒婃帴鐑緭鍏�-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum WeldingHeatInput_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 绠¢亾鍏佽搴斿姏
-        /// </summary>
-        public string PipeAllowableStress { get; set; }
-
-        /// <summary>
-        /// 绠¢亾鍏佽搴斿姏-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum PipeAllowableStress_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 绠″緞
-        /// </summary>
-        public string PipeDiameter { get; set; }
-
-        /// <summary>
-        /// 绠″緞-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum PipeDiameter_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 绠¢亾澹佸帤
-        /// </summary>
-        public string PipeWallThickness { get; set; }
-
-        /// <summary>
-        /// 绠¢亾澹佸帤-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum PipeWallThickness_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// VR鏁版嵁
-        /// </summary>
-        public string VRData { get; set; }
-
-        /// <summary>
-        /// VR鏁版嵁-鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum VRData_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 宸ヨ壓璺嚎缂栧彿
+        /// 宸ヨ壓娴佸悜缂栧彿
         /// </summary>
         public string ProcessRouteNumber { get; set; }
 
         /// <summary>
-        /// 宸ヨ壓璺嚎缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 宸ヨ壓娴佸悜缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
         public SearchFilterModeEnum ProcessRouteNumber_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
@@ -470,44 +350,128 @@
 
 
         /// <summary>
-        /// 鏃堕棿淇℃伅
+        /// 鐝粍淇℃伅
         /// </summary>
-        public string TimeInfo { get; set; }
+        public string TeamInfo { get; set; }
 
         /// <summary>
-        /// 鏃堕棿淇℃伅-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 鐝粍淇℃伅-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public SearchFilterModeEnum TimeInfo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+        public SearchFilterModeEnum TeamInfo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// 
+        /// 鏃堕棿鎴�
         /// </summary>
-        public string RedundantField1 { get; set; }
+        public string Timestamp { get; set; }
 
         /// <summary>
-        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 鏃堕棿鎴�-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public SearchFilterModeEnum RedundantField1_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+        public SearchFilterModeEnum Timestamp_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// 
+        /// 鍒涘缓鏃堕棿
         /// </summary>
-        public string RedundantField2 { get; set; }
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> CreationTime { get; set; }
+
 
         /// <summary>
-        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 鍒涘缓浜篒D
         /// </summary>
-        public SearchFilterModeEnum RedundantField2_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+        public string CreatorId { get; set; }
 
         /// <summary>
-        /// 
+        /// 鍒涘缓浜篒D-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public string RedundantField3 { get; set; }
+        public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 淇敼鏃堕棿
         /// </summary>
-        public SearchFilterModeEnum RedundantField3_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> LastModificationTime { get; set; }
+
+
+        /// <summary>
+        /// 淇敼浜篒D
+        /// </summary>
+        public string LastModifierId { get; set; }
+
+        /// <summary>
+        /// 淇敼浜篒D-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鏄惁鍒犻櫎
+        /// </summary>
+        public bool?  IsDeleted { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍒犻櫎-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鍒犻櫎浜篒D
+        /// </summary>
+        public string DeleterId { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎浜篒D-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍒犻櫎鏃堕棿
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> DeletionTime { get; set; }
+
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string CreatorName { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum CreatorName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public string LastModifierName { get; set; }
+
+        /// <summary>
+        /// 淇敼浜�-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum LastModifierName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎿嶄綔澶囨敞
+        /// </summary>
+        public string OperationRemark { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum OperationRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍒犻櫎澶囨敞
+        /// </summary>
+        public string DeleteRemark { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum DeleteRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
         /// 鎺掑簭
@@ -540,68 +504,34 @@
         public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁1
         /// </summary>
-        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
-        [HighSearchRangeAttribute]
-        public List<string> CreationTime { get; set; }
-
+        public string ExtraField1 { get; set; }
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁1-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public string CreatorId { get; set; }
+        public SearchFilterModeEnum ExtraField1_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 鎵╁睍瀛楁2
         /// </summary>
-        public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+        public string ExtraField2 { get; set; }
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁2-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
-        [HighSearchRangeAttribute]
-        public List<string> LastModificationTime { get; set; }
-
+        public SearchFilterModeEnum ExtraField2_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁3
         /// </summary>
-        public string LastModifierId { get; set; }
+        public string ExtraField3 { get; set; }
 
         /// <summary>
-        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// 鎵╁睍瀛楁3-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public bool?  IsDeleted { get; set; }
-
-        /// <summary>
-        /// -鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public string DeleterId { get; set; }
-
-        /// <summary>
-        /// -鏌ヨ鍏崇郴杩愮畻绗� 
-        /// </summary>
-        public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
-        [HighSearchRangeAttribute]
-        public List<string> DeletionTime { get; set; }
-
+        public SearchFilterModeEnum ExtraField3_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
  
 } 
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanCreateOrUpdateDtoBase.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanCreateOrUpdateDtoBase.cs
index 29d0c69..a120975 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanCreateOrUpdateDtoBase.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanCreateOrUpdateDtoBase.cs
@@ -15,9 +15,69 @@
         public string TaskCode { get; set; }
 
         /// <summary>
-        /// 鍘熸枡缂栧彿
+        /// 鍘熸枡鏍囪瘑
         /// </summary>
-        public string OrgMaterialCode { get; set; }
+        public string? DataIdentifier { get; set; }
+
+        /// <summary>
+        /// 鍘熸枡鍨嬪彿
+        /// </summary>
+        public string? MaterialMode { get; set; }
+
+        /// <summary>
+        /// 闀垮害(mm)
+        /// </summary>
+        public decimal Length { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜鍐呭
+        /// </summary>
+        public string? MarkingContent { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜浣嶇疆
+        /// </summary>
+        public decimal MarkingPosition { get; set; }
+
+        /// <summary>
+        /// 鍒囧壊浣嶇疆
+        /// </summary>
+        public decimal CuttingPosition { get; set; }
+
+        /// <summary>
+        /// 绠℃鏁伴噺
+        /// </summary>
+        public int Quantity { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍘氬害(mm)
+        /// </summary>
+        public decimal FlangeThickness { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鐩村緞(mm)
+        /// </summary>
+        public decimal FlangeInnerDiameter { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍏О鍘嬪姏
+        /// </summary>
+        public string? WeldingHeatInput { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍐茬爜鍐呭
+        /// </summary>
+        public string? PipeAllowableStress { get; set; }
+
+        /// <summary>
+        /// 濂楃闀垮害(mm)
+        /// </summary>
+        public decimal PipeDiameter { get; set; }
+
+        /// <summary>
+        /// 濂楃鐩村緞(mm)
+        /// </summary>
+        public decimal PipeWallThickness { get; set; }
 
         /// <summary>
         /// 宸ュ巶浠g爜
@@ -60,12 +120,7 @@
         public string? PreSerialNumber { get; set; }
 
         /// <summary>
-        /// 鍘熸枡鏍囪瘑
-        /// </summary>
-        public string? DataIdentifier { get; set; }
-
-        /// <summary>
-        /// 绠¤鏍肩爜
+        /// 绠℃缂栫爜
         /// </summary>
         public string? PipeSpecCode { get; set; }
 
@@ -75,14 +130,14 @@
         public string? PipeSectionName { get; set; }
 
         /// <summary>
-        /// 澶栧緞
+        /// 澶栧緞(mm)
         /// </summary>
-        public string? OuterDiameter { get; set; }
+        public decimal OuterDiameter { get; set; }
 
         /// <summary>
-        /// 鍧″彛
+        /// 澹佸帤(mm)
         /// </summary>
-        public string? Bevel { get; set; }
+        public decimal Thickness { get; set; }
 
         /// <summary>
         /// 鏉愯川
@@ -90,127 +145,12 @@
         public string? Material { get; set; }
 
         /// <summary>
-        /// 闀垮害
-        /// </summary>
-        public string? Length { get; set; }
-
-        /// <summary>
-        /// 鎵撳瓟浣�
-        /// </summary>
-        public string? DrillingPosition { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮
-        /// </summary>
-        public string? Intersecting { get; set; }
-
-        /// <summary>
-        /// 鎺ュ彛瑕佹眰
-        /// </summary>
-        public string? InterfaceRequirement { get; set; }
-
-        /// <summary>
-        /// 鏄惁鏈変富绛�
+        /// 鏄惁涓绘敮绠�
         /// </summary>
         public bool HasMainSignature { get; set; }
 
         /// <summary>
-        /// 鍖呮嫭鏁伴噺
-        /// </summary>
-        public int Quantity { get; set; }
-
-        /// <summary>
-        /// 鎵撶爜鍐呭
-        /// </summary>
-        public string? MarkingContent { get; set; }
-
-        /// <summary>
-        /// 鍒囧壊鏂囦欢
-        /// </summary>
-        public string? CuttingFile { get; set; }
-
-        /// <summary>
-        /// 鏀寰�
-        /// </summary>
-        public string? BranchOuterDiameter { get; set; }
-
-        /// <summary>
-        /// 鏀澹佸帤
-        /// </summary>
-        public string? BranchWallThickness { get; set; }
-
-        /// <summary>
-        /// 鏀鏉愯川
-        /// </summary>
-        public string? BranchMaterial { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛鏇茬巼鍗婂緞
-        /// </summary>
-        public string? BranchPortRadius { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑙掑害
-        /// </summary>
-        public string? BranchPortAngle { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑕佹眰
-        /// </summary>
-        public string? BranchPortRequirement { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍨�
-        /// </summary>
-        public string? IntersectingLineType { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍒�
-        /// </summary>
-        public string? IntersectingLineCategory { get; set; }
-
-        /// <summary>
-        /// 鎴愬搧鍥惧箙
-        /// </summary>
-        public string? FinishedProductScale { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍘氬害
-        /// </summary>
-        public string? FlangeThickness { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍐呭緞
-        /// </summary>
-        public string? FlangeInnerDiameter { get; set; }
-
-        /// <summary>
-        /// 鐒婃帴鐑緭鍏�
-        /// </summary>
-        public string? WeldingHeatInput { get; set; }
-
-        /// <summary>
-        /// 绠¢亾鍏佽搴斿姏
-        /// </summary>
-        public string? PipeAllowableStress { get; set; }
-
-        /// <summary>
-        /// 绠″緞
-        /// </summary>
-        public string? PipeDiameter { get; set; }
-
-        /// <summary>
-        /// 绠¢亾澹佸帤
-        /// </summary>
-        public string? PipeWallThickness { get; set; }
-
-        /// <summary>
-        /// VR鏁版嵁
-        /// </summary>
-        public string? VRData { get; set; }
-
-        /// <summary>
-        /// 宸ヨ壓璺嚎缂栧彿
+        /// 宸ヨ壓娴佸悜缂栧彿
         /// </summary>
         public string? ProcessRouteNumber { get; set; }
 
@@ -225,24 +165,39 @@
         public DateTime? PlannedEndTime { get; set; }
 
         /// <summary>
-        /// 鏃堕棿淇℃伅
+        /// 鐝粍淇℃伅
         /// </summary>
-        public string? TimeInfo { get; set; }
+        public string? TeamInfo { get; set; }
 
         /// <summary>
-        /// 
+        /// 鏃堕棿鎴�
         /// </summary>
-        public string? RedundantField1 { get; set; }
+        public string? Timestamp { get; set; }
 
         /// <summary>
-        /// 
+        /// 鍒涘缓浜篒D
         /// </summary>
-        public string? RedundantField2 { get; set; }
+        public string? CreatorId { get; set; }
 
         /// <summary>
-        /// 
+        /// 淇敼浜篒D
         /// </summary>
-        public string? RedundantField3 { get; set; }
+        public string? LastModifierId { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎鏃堕棿
+        /// </summary>
+        public DateTime? DeletionTime { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔澶囨敞
+        /// </summary>
+        public string? OperationRemark { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎澶囨敞
+        /// </summary>
+        public string? DeleteRemark { get; set; }
 
         /// <summary>
         /// 鎺掑簭
@@ -260,14 +215,19 @@
         public bool? IsDisabled { get; set; }
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁1
         /// </summary>
-        public string? CreatorId { get; set; }
+        public string? ExtraField1 { get; set; }
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁2
         /// </summary>
-        public string? LastModifierId { get; set; }
+        public string? ExtraField2 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁3
+        /// </summary>
+        public string? ExtraField3 { get; set; }
 
  
  
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanDto.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanDto.cs
index 6a2355d..ad1517d 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanDto.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanDto.cs
@@ -18,9 +18,69 @@
         public string TaskCode { get; set; }
 
         /// <summary>
-        /// 鍘熸枡缂栧彿
+        /// 鍘熸枡鏍囪瘑
         /// </summary>
-        public string OrgMaterialCode { get; set; }
+        public string? DataIdentifier { get; set; }
+
+        /// <summary>
+        /// 鍘熸枡鍨嬪彿
+        /// </summary>
+        public string? MaterialMode { get; set; }
+
+        /// <summary>
+        /// 闀垮害(mm)
+        /// </summary>
+        public decimal Length { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜鍐呭
+        /// </summary>
+        public string? MarkingContent { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜浣嶇疆
+        /// </summary>
+        public decimal MarkingPosition { get; set; }
+
+        /// <summary>
+        /// 鍒囧壊浣嶇疆
+        /// </summary>
+        public decimal CuttingPosition { get; set; }
+
+        /// <summary>
+        /// 绠℃鏁伴噺
+        /// </summary>
+        public int Quantity { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍘氬害(mm)
+        /// </summary>
+        public decimal FlangeThickness { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鐩村緞(mm)
+        /// </summary>
+        public decimal FlangeInnerDiameter { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍏О鍘嬪姏
+        /// </summary>
+        public string? WeldingHeatInput { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍐茬爜鍐呭
+        /// </summary>
+        public string? PipeAllowableStress { get; set; }
+
+        /// <summary>
+        /// 濂楃闀垮害(mm)
+        /// </summary>
+        public decimal PipeDiameter { get; set; }
+
+        /// <summary>
+        /// 濂楃鐩村緞(mm)
+        /// </summary>
+        public decimal PipeWallThickness { get; set; }
 
         /// <summary>
         /// 宸ュ巶浠g爜
@@ -63,12 +123,7 @@
         public string? PreSerialNumber { get; set; }
 
         /// <summary>
-        /// 鍘熸枡鏍囪瘑
-        /// </summary>
-        public string? DataIdentifier { get; set; }
-
-        /// <summary>
-        /// 绠¤鏍肩爜
+        /// 绠℃缂栫爜
         /// </summary>
         public string? PipeSpecCode { get; set; }
 
@@ -78,14 +133,14 @@
         public string? PipeSectionName { get; set; }
 
         /// <summary>
-        /// 澶栧緞
+        /// 澶栧緞(mm)
         /// </summary>
-        public string? OuterDiameter { get; set; }
+        public decimal OuterDiameter { get; set; }
 
         /// <summary>
-        /// 鍧″彛
+        /// 澹佸帤(mm)
         /// </summary>
-        public string? Bevel { get; set; }
+        public decimal Thickness { get; set; }
 
         /// <summary>
         /// 鏉愯川
@@ -93,127 +148,12 @@
         public string? Material { get; set; }
 
         /// <summary>
-        /// 闀垮害
-        /// </summary>
-        public string? Length { get; set; }
-
-        /// <summary>
-        /// 鎵撳瓟浣�
-        /// </summary>
-        public string? DrillingPosition { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮
-        /// </summary>
-        public string? Intersecting { get; set; }
-
-        /// <summary>
-        /// 鎺ュ彛瑕佹眰
-        /// </summary>
-        public string? InterfaceRequirement { get; set; }
-
-        /// <summary>
-        /// 鏄惁鏈変富绛�
+        /// 鏄惁涓绘敮绠�
         /// </summary>
         public bool HasMainSignature { get; set; }
 
         /// <summary>
-        /// 鍖呮嫭鏁伴噺
-        /// </summary>
-        public int Quantity { get; set; }
-
-        /// <summary>
-        /// 鎵撶爜鍐呭
-        /// </summary>
-        public string? MarkingContent { get; set; }
-
-        /// <summary>
-        /// 鍒囧壊鏂囦欢
-        /// </summary>
-        public string? CuttingFile { get; set; }
-
-        /// <summary>
-        /// 鏀寰�
-        /// </summary>
-        public string? BranchOuterDiameter { get; set; }
-
-        /// <summary>
-        /// 鏀澹佸帤
-        /// </summary>
-        public string? BranchWallThickness { get; set; }
-
-        /// <summary>
-        /// 鏀鏉愯川
-        /// </summary>
-        public string? BranchMaterial { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛鏇茬巼鍗婂緞
-        /// </summary>
-        public string? BranchPortRadius { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑙掑害
-        /// </summary>
-        public string? BranchPortAngle { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑕佹眰
-        /// </summary>
-        public string? BranchPortRequirement { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍨�
-        /// </summary>
-        public string? IntersectingLineType { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍒�
-        /// </summary>
-        public string? IntersectingLineCategory { get; set; }
-
-        /// <summary>
-        /// 鎴愬搧鍥惧箙
-        /// </summary>
-        public string? FinishedProductScale { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍘氬害
-        /// </summary>
-        public string? FlangeThickness { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍐呭緞
-        /// </summary>
-        public string? FlangeInnerDiameter { get; set; }
-
-        /// <summary>
-        /// 鐒婃帴鐑緭鍏�
-        /// </summary>
-        public string? WeldingHeatInput { get; set; }
-
-        /// <summary>
-        /// 绠¢亾鍏佽搴斿姏
-        /// </summary>
-        public string? PipeAllowableStress { get; set; }
-
-        /// <summary>
-        /// 绠″緞
-        /// </summary>
-        public string? PipeDiameter { get; set; }
-
-        /// <summary>
-        /// 绠¢亾澹佸帤
-        /// </summary>
-        public string? PipeWallThickness { get; set; }
-
-        /// <summary>
-        /// VR鏁版嵁
-        /// </summary>
-        public string? VRData { get; set; }
-
-        /// <summary>
-        /// 宸ヨ壓璺嚎缂栧彿
+        /// 宸ヨ壓娴佸悜缂栧彿
         /// </summary>
         public string? ProcessRouteNumber { get; set; }
 
@@ -228,24 +168,79 @@
         public DateTime? PlannedEndTime { get; set; }
 
         /// <summary>
-        /// 鏃堕棿淇℃伅
+        /// 鐝粍淇℃伅
         /// </summary>
-        public string? TimeInfo { get; set; }
+        public string? TeamInfo { get; set; }
 
         /// <summary>
-        /// 
+        /// 鏃堕棿鎴�
         /// </summary>
-        public string? RedundantField1 { get; set; }
+        public string? Timestamp { get; set; }
 
         /// <summary>
-        /// 
+        /// 鎵╁睍灞炴��
         /// </summary>
-        public string? RedundantField2 { get; set; }
+        public ExtraPropertyDictionary? ExtraProperties { get; set; }
 
         /// <summary>
-        /// 
+        /// 骞跺彂鎴�
         /// </summary>
-        public string? RedundantField3 { get; set; }
+        public string? ConcurrencyStamp { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreationTime { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜篒D
+        /// </summary>
+        public string? CreatorId { get; set; }
+
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public DateTime? LastModificationTime { get; set; }
+
+        /// <summary>
+        /// 淇敼浜篒D
+        /// </summary>
+        public string? LastModifierId { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍒犻櫎
+        /// </summary>
+        public bool IsDeleted { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎浜篒D
+        /// </summary>
+        public string? DeleterId { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎鏃堕棿
+        /// </summary>
+        public DateTime? DeletionTime { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string? CreatorName { get; set; }
+
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public string? LastModifierName { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔澶囨敞
+        /// </summary>
+        public string? OperationRemark { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎澶囨敞
+        /// </summary>
+        public string? DeleteRemark { get; set; }
 
         /// <summary>
         /// 鎺掑簭
@@ -263,49 +258,19 @@
         public bool? IsDisabled { get; set; }
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁1
         /// </summary>
-        public ExtraPropertyDictionary? ExtraProperties { get; set; }
+        public string? ExtraField1 { get; set; }
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁2
         /// </summary>
-        public string? ConcurrencyStamp { get; set; }
+        public string? ExtraField2 { get; set; }
 
         /// <summary>
-        /// 
+        /// 鎵╁睍瀛楁3
         /// </summary>
-        public DateTime CreationTime { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public string? CreatorId { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public DateTime? LastModificationTime { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public string? LastModifierId { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public bool IsDeleted { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public string? DeleterId { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public DateTime? DeletionTime { get; set; }
+        public string? ExtraField3 { get; set; }
 
  
  
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanExportModel.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanExportModel.cs
index 8232fa8..56e8498 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanExportModel.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/WorkPlanExportModel.cs
@@ -17,10 +17,82 @@
         public string TaskCode { get; set; }
 
         /// <summary>
-        /// 鍘熸枡缂栧彿
+        /// 鍘熸枡鏍囪瘑
         /// </summary>
-        [ExcelColumn(Name = "鍘熸枡缂栧彿", Width = 25)]
-        public string OrgMaterialCode { get; set; }
+        [ExcelColumn(Name = "鍘熸枡鏍囪瘑", Width = 25)]
+        public string DataIdentifier { get; set; }
+
+        /// <summary>
+        /// 鍘熸枡鍨嬪彿
+        /// </summary>
+        [ExcelColumn(Name = "鍘熸枡鍨嬪彿", Width = 25)]
+        public string MaterialMode { get; set; }
+
+        /// <summary>
+        /// 闀垮害(mm)
+        /// </summary>
+        [ExcelColumn(Name = "闀垮害(mm)", Width = 25)]
+        public decimal Length { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜鍐呭
+        /// </summary>
+        [ExcelColumn(Name = "鎵撶爜鍐呭", Width = 25)]
+        public string MarkingContent { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜浣嶇疆
+        /// </summary>
+        [ExcelColumn(Name = "鎵撶爜浣嶇疆", Width = 25)]
+        public decimal MarkingPosition { get; set; }
+
+        /// <summary>
+        /// 鍒囧壊浣嶇疆
+        /// </summary>
+        [ExcelColumn(Name = "鍒囧壊浣嶇疆", Width = 25)]
+        public decimal CuttingPosition { get; set; }
+
+        /// <summary>
+        /// 绠℃鏁伴噺
+        /// </summary>
+        [ExcelColumn(Name = "绠℃鏁伴噺", Width = 25)]
+        public int Quantity { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍘氬害(mm)
+        /// </summary>
+        [ExcelColumn(Name = "娉曞叞鍘氬害(mm)", Width = 25)]
+        public decimal FlangeThickness { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鐩村緞(mm)
+        /// </summary>
+        [ExcelColumn(Name = "娉曞叞鐩村緞(mm)", Width = 25)]
+        public decimal FlangeInnerDiameter { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍏О鍘嬪姏
+        /// </summary>
+        [ExcelColumn(Name = "娉曞叞鍏О鍘嬪姏", Width = 25)]
+        public string WeldingHeatInput { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍐茬爜鍐呭
+        /// </summary>
+        [ExcelColumn(Name = "娉曞叞鍐茬爜鍐呭", Width = 25)]
+        public string PipeAllowableStress { get; set; }
+
+        /// <summary>
+        /// 濂楃闀垮害(mm)
+        /// </summary>
+        [ExcelColumn(Name = "濂楃闀垮害(mm)", Width = 25)]
+        public decimal PipeDiameter { get; set; }
+
+        /// <summary>
+        /// 濂楃鐩村緞(mm)
+        /// </summary>
+        [ExcelColumn(Name = "濂楃鐩村緞(mm)", Width = 25)]
+        public decimal PipeWallThickness { get; set; }
 
         /// <summary>
         /// 宸ュ巶浠g爜
@@ -71,15 +143,9 @@
         public string PreSerialNumber { get; set; }
 
         /// <summary>
-        /// 鍘熸枡鏍囪瘑
+        /// 绠℃缂栫爜
         /// </summary>
-        [ExcelColumn(Name = "鍘熸枡鏍囪瘑", Width = 25)]
-        public string DataIdentifier { get; set; }
-
-        /// <summary>
-        /// 绠¤鏍肩爜
-        /// </summary>
-        [ExcelColumn(Name = "绠¤鏍肩爜", Width = 25)]
+        [ExcelColumn(Name = "绠℃缂栫爜", Width = 25)]
         public string PipeSpecCode { get; set; }
 
         /// <summary>
@@ -89,16 +155,16 @@
         public string PipeSectionName { get; set; }
 
         /// <summary>
-        /// 澶栧緞
+        /// 澶栧緞(mm)
         /// </summary>
-        [ExcelColumn(Name = "澶栧緞", Width = 25)]
-        public string OuterDiameter { get; set; }
+        [ExcelColumn(Name = "澶栧緞(mm)", Width = 25)]
+        public decimal OuterDiameter { get; set; }
 
         /// <summary>
-        /// 鍧″彛
+        /// 澹佸帤(mm)
         /// </summary>
-        [ExcelColumn(Name = "鍧″彛", Width = 25)]
-        public string Bevel { get; set; }
+        [ExcelColumn(Name = "澹佸帤(mm)", Width = 25)]
+        public decimal Thickness { get; set; }
 
         /// <summary>
         /// 鏉愯川
@@ -107,153 +173,15 @@
         public string Material { get; set; }
 
         /// <summary>
-        /// 闀垮害
+        /// 鏄惁涓绘敮绠�
         /// </summary>
-        [ExcelColumn(Name = "闀垮害", Width = 25)]
-        public string Length { get; set; }
-
-        /// <summary>
-        /// 鎵撳瓟浣�
-        /// </summary>
-        [ExcelColumn(Name = "鎵撳瓟浣�", Width = 25)]
-        public string DrillingPosition { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮
-        /// </summary>
-        [ExcelColumn(Name = "鐩歌疮", Width = 25)]
-        public string Intersecting { get; set; }
-
-        /// <summary>
-        /// 鎺ュ彛瑕佹眰
-        /// </summary>
-        [ExcelColumn(Name = "鎺ュ彛瑕佹眰", Width = 25)]
-        public string InterfaceRequirement { get; set; }
-
-        /// <summary>
-        /// 鏄惁鏈変富绛�
-        /// </summary>
-        [ExcelColumn(Name = "鏄惁鏈変富绛�", Width = 25)]
+        [ExcelColumn(Name = "鏄惁涓绘敮绠�", Width = 25)]
         public bool HasMainSignature { get; set; }
 
         /// <summary>
-        /// 鍖呮嫭鏁伴噺
+        /// 宸ヨ壓娴佸悜缂栧彿
         /// </summary>
-        [ExcelColumn(Name = "鍖呮嫭鏁伴噺", Width = 25)]
-        public int Quantity { get; set; }
-
-        /// <summary>
-        /// 鎵撶爜鍐呭
-        /// </summary>
-        [ExcelColumn(Name = "鎵撶爜鍐呭", Width = 25)]
-        public string MarkingContent { get; set; }
-
-        /// <summary>
-        /// 鍒囧壊鏂囦欢
-        /// </summary>
-        [ExcelColumn(Name = "鍒囧壊鏂囦欢", Width = 25)]
-        public string CuttingFile { get; set; }
-
-        /// <summary>
-        /// 鏀寰�
-        /// </summary>
-        [ExcelColumn(Name = "鏀寰�", Width = 25)]
-        public string BranchOuterDiameter { get; set; }
-
-        /// <summary>
-        /// 鏀澹佸帤
-        /// </summary>
-        [ExcelColumn(Name = "鏀澹佸帤", Width = 25)]
-        public string BranchWallThickness { get; set; }
-
-        /// <summary>
-        /// 鏀鏉愯川
-        /// </summary>
-        [ExcelColumn(Name = "鏀鏉愯川", Width = 25)]
-        public string BranchMaterial { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛鏇茬巼鍗婂緞
-        /// </summary>
-        [ExcelColumn(Name = "鏀绔彛鏇茬巼鍗婂緞", Width = 25)]
-        public string BranchPortRadius { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑙掑害
-        /// </summary>
-        [ExcelColumn(Name = "鏀绔彛瑙掑害", Width = 25)]
-        public string BranchPortAngle { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑕佹眰
-        /// </summary>
-        [ExcelColumn(Name = "鏀绔彛瑕佹眰", Width = 25)]
-        public string BranchPortRequirement { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍨�
-        /// </summary>
-        [ExcelColumn(Name = "鐩歌疮绾跨被鍨�", Width = 25)]
-        public string IntersectingLineType { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍒�
-        /// </summary>
-        [ExcelColumn(Name = "鐩歌疮绾跨被鍒�", Width = 25)]
-        public string IntersectingLineCategory { get; set; }
-
-        /// <summary>
-        /// 鎴愬搧鍥惧箙
-        /// </summary>
-        [ExcelColumn(Name = "鎴愬搧鍥惧箙", Width = 25)]
-        public string FinishedProductScale { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍘氬害
-        /// </summary>
-        [ExcelColumn(Name = "娉曞叞鍘氬害", Width = 25)]
-        public string FlangeThickness { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍐呭緞
-        /// </summary>
-        [ExcelColumn(Name = "娉曞叞鍐呭緞", Width = 25)]
-        public string FlangeInnerDiameter { get; set; }
-
-        /// <summary>
-        /// 鐒婃帴鐑緭鍏�
-        /// </summary>
-        [ExcelColumn(Name = "鐒婃帴鐑緭鍏�", Width = 25)]
-        public string WeldingHeatInput { get; set; }
-
-        /// <summary>
-        /// 绠¢亾鍏佽搴斿姏
-        /// </summary>
-        [ExcelColumn(Name = "绠¢亾鍏佽搴斿姏", Width = 25)]
-        public string PipeAllowableStress { get; set; }
-
-        /// <summary>
-        /// 绠″緞
-        /// </summary>
-        [ExcelColumn(Name = "绠″緞", Width = 25)]
-        public string PipeDiameter { get; set; }
-
-        /// <summary>
-        /// 绠¢亾澹佸帤
-        /// </summary>
-        [ExcelColumn(Name = "绠¢亾澹佸帤", Width = 25)]
-        public string PipeWallThickness { get; set; }
-
-        /// <summary>
-        /// VR鏁版嵁
-        /// </summary>
-        [ExcelColumn(Name = "VR鏁版嵁", Width = 25)]
-        public string VRData { get; set; }
-
-        /// <summary>
-        /// 宸ヨ壓璺嚎缂栧彿
-        /// </summary>
-        [ExcelColumn(Name = "宸ヨ壓璺嚎缂栧彿", Width = 25)]
+        [ExcelColumn(Name = "宸ヨ壓娴佸悜缂栧彿", Width = 25)]
         public string ProcessRouteNumber { get; set; }
 
         /// <summary>
@@ -269,46 +197,46 @@
         public DateTime PlannedEndTime { get; set; }
 
         /// <summary>
-        /// 鏃堕棿淇℃伅
+        /// 鐝粍淇℃伅
         /// </summary>
-        [ExcelColumn(Name = "鏃堕棿淇℃伅", Width = 25)]
-        public string TimeInfo { get; set; }
+        [ExcelColumn(Name = "鐝粍淇℃伅", Width = 25)]
+        public string TeamInfo { get; set; }
 
         /// <summary>
-        /// 
+        /// 鏃堕棿鎴�
         /// </summary>
-        [ExcelColumn(Name = "", Width = 25)]
-        public string RedundantField1 { get; set; }
+        [ExcelColumn(Name = "鏃堕棿鎴�", Width = 25)]
+        public string Timestamp { get; set; }
 
         /// <summary>
-        /// 
+        /// 鍒涘缓鏃堕棿
         /// </summary>
-        [ExcelColumn(Name = "", Width = 25)]
-        public string RedundantField2 { get; set; }
+        [ExcelColumn(Name = "鍒涘缓鏃堕棿", Width = 25)]
+        public DateTime CreationTime { get; set; }
 
         /// <summary>
-        /// 
+        /// 淇敼鏃堕棿
         /// </summary>
-        [ExcelColumn(Name = "", Width = 25)]
-        public string RedundantField3 { get; set; }
+        [ExcelColumn(Name = "淇敼鏃堕棿", Width = 25)]
+        public DateTime LastModificationTime { get; set; }
 
         /// <summary>
-        /// 鎺掑簭
+        /// 鍒涘缓浜�
         /// </summary>
-        [ExcelColumn(Name = "鎺掑簭", Width = 25)]
-        public int Sort { get; set; }
+        [ExcelColumn(Name = "鍒涘缓浜�", Width = 25)]
+        public string CreatorName { get; set; }
+
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        [ExcelColumn(Name = "淇敼浜�", Width = 25)]
+        public string LastModifierName { get; set; }
 
         /// <summary>
         /// 澶囨敞
         /// </summary>
         [ExcelColumn(Name = "澶囨敞", Width = 25)]
         public string Remark { get; set; }
-
-        /// <summary>
-        /// 鏄惁绂佺敤
-        /// </summary>
-        [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)]
-        public bool? IsDisabled { get; set; }
 
  
  
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs
index 5c02bf7..ab32c0c 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs
@@ -1,164 +1,164 @@
-using CMS.Plugin.FormulaManagement.Abstractions;
-using CMS.Plugin.OrderManagement.Abstractions;
-using CMS.Plugin.OrderManagement.Abstractions.Enums;
-using CMS.Plugin.OrderManagement.Abstractions.Models;
-using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
-using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
-using CMS.Plugin.PipeLineLems.Domain.WorkPlan;
-using CMS.Plugin.ProductManagement.Abstractions;
-using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
+//using CMS.Plugin.FormulaManagement.Abstractions;
+//using CMS.Plugin.OrderManagement.Abstractions;
+//using CMS.Plugin.OrderManagement.Abstractions.Enums;
+//using CMS.Plugin.OrderManagement.Abstractions.Models;
+//using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
+//using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
+//using CMS.Plugin.PipeLineLems.Domain.WorkPlan;
+//using CMS.Plugin.ProductManagement.Abstractions;
+//using Microsoft.Extensions.DependencyInjection;
+//using Volo.Abp;
 
-namespace CMS.Plugin.PipeLineLems.Application.Implements;
+//namespace CMS.Plugin.PipeLineLems.Application.Implements;
 
-public class MesAppService : CMSPluginAppService, IMesAppService
-{
-    private readonly IServiceProvider _serviceProvider;
-    private readonly IWorkPlanAppService _workPlanAppService;
+//public class MesAppService : CMSPluginAppService, IMesAppService
+//{
+//    private readonly IServiceProvider _serviceProvider;
+//    private readonly IWorkPlanAppService _workPlanAppService;
 
-    //private readonly IEventBus _eventBus;
+//    //private readonly IEventBus _eventBus;
 
-    public MesAppService(IServiceProvider serviceProvider
-        , IWorkPlanAppService workPlanAppService
-        //, IEventBus eventBus
-        )
-    {
-        _serviceProvider = serviceProvider;
-        // _eventBus = eventBus;
-        _workPlanAppService = workPlanAppService;
-    }
+//    public MesAppService(IServiceProvider serviceProvider
+//        , IWorkPlanAppService workPlanAppService
+//        //, IEventBus eventBus
+//        )
+//    {
+//        _serviceProvider = serviceProvider;
+//        // _eventBus = eventBus;
+//        _workPlanAppService = workPlanAppService;
+//    }
 
-    public async Task<MesOrderResponse> CreateAsync(List<WorkPlanInput> input)
-    {
-        if (input == null)
-        {
-            throw new UserFriendlyException("杈撳叆鍙傛暟涓嶈兘涓虹┖");
-        }
+//    public async Task<MesOrderResponse> CreateAsync(List<WorkPlanInput> input)
+//    {
+//        if (input == null)
+//        {
+//            throw new UserFriendlyException("杈撳叆鍙傛暟涓嶈兘涓虹┖");
+//        }
 
-        if (input.Count == 0)
-        {
-            throw new UserFriendlyException("杈撳叆鍙傛暟Data涓嶈兘涓虹┖");
-        }
+//        if (input.Count == 0)
+//        {
+//            throw new UserFriendlyException("杈撳叆鍙傛暟Data涓嶈兘涓虹┖");
+//        }
 
-        var orderManager = _serviceProvider.GetRequiredService<IOrderManager>();
-        var productProvider = _serviceProvider.GetRequiredService<IProductProvider>();
-        var formulaProvider = _serviceProvider.GetRequiredService<IFormulaProvider>();
-        List<OrderModel> orderModels = new List<OrderModel>();
-        //鎸夌収浠诲姟缂栧彿鍒嗙粍
-        var groupTask = input.GroupBy(x => x.TaskCode);
-        foreach (var gTask in groupTask)
-        {
-            var taskCode = gTask.Key;
-            var order = await orderManager.GetByCodeAsync(taskCode);
-            if (order != null)
-            {
-                throw new UserFriendlyException($"浠诲姟缂栧彿[{taskCode}]宸插瓨鍦�");
-            }
+//        var orderManager = _serviceProvider.GetRequiredService<IOrderManager>();
+//        var productProvider = _serviceProvider.GetRequiredService<IProductProvider>();
+//        var formulaProvider = _serviceProvider.GetRequiredService<IFormulaProvider>();
+//        List<OrderModel> orderModels = new List<OrderModel>();
+//        //鎸夌収浠诲姟缂栧彿鍒嗙粍
+//        var groupTask = input.GroupBy(x => x.TaskCode);
+//        foreach (var gTask in groupTask)
+//        {
+//            var taskCode = gTask.Key;
+//            var order = await orderManager.GetByCodeAsync(taskCode);
+//            if (order != null)
+//            {
+//                throw new UserFriendlyException($"浠诲姟缂栧彿[{taskCode}]宸插瓨鍦�");
+//            }
 
 
-            //var product = await productProvider.FindByNameAsync(orderItem.PipeSectionName);
-            //if (product == null)
-            //{
-            //    throw new UserFriendlyException($"浜у搧鍚嶇О[{orderItem.PipeSectionName}]涓嶅瓨鍦�");
-            //}
+//            //var product = await productProvider.FindByNameAsync(orderItem.PipeSectionName);
+//            //if (product == null)
+//            //{
+//            //    throw new UserFriendlyException($"浜у搧鍚嶇О[{orderItem.PipeSectionName}]涓嶅瓨鍦�");
+//            //}
 
-            //var formula = await formulaProvider.GetFormulaAsync(product.Id);
-            //if (formula == null)
-            //{
-            //    throw new UserFriendlyException($"浜у搧鍨嬪彿[{orderItem.MaterialCode}]鏃犲叧鑱旈厤鏂�");
-            //}
-            //棣栧厛瑕佸垱寤� 鎵撶爜鍒囧壊鐨勫伐鍗� 
-            var productForCut = await productProvider.FindByNameAsync("鍒囧壊鍘熸枡绠�");
-            if (productForCut == null)
-            {
-                throw new UserFriendlyException($"浜у搧鍚嶇О[鍒囧壊鍘熸枡绠涓嶅瓨鍦�");
-            }
-            var formulaForCut = await formulaProvider.GetFormulaAsync(productForCut.Id);
-            if (formulaForCut == null)
-            {
-                throw new UserFriendlyException($"浜у搧鍚嶇О[鍒囧壊鍘熸枡绠鏃犲叧鑱旈厤鏂�");
-            }
-            //鍒嗙粍鏁版嵁
-            var group = gTask.ToList().GroupBy(x => x.DataIdentifier);
-            foreach (var item in group)
-            {
-                OrderModel orderModelForCut = new OrderModel()
-                {
-                    Id = Guid.NewGuid(),
-                    Code = "Cut_" + taskCode,
-                    Source = "APS鎺ㄩ��",
-                    PlanStartTime = gTask.ToList().First().PlannedStartTime,
-                    PlanFinishTime = gTask.ToList().First().PlannedEndTime,
-                    PlanQty = (ulong)item.ToList().Count,
-                    Status = OrderStatus.NotActive,
-                    Product = new AssociationProductModel() { Id = productForCut.Id, Name = productForCut.Name, Model = productForCut.Model, ShortNumber = productForCut.ShortNumber },
-                    Formula = new AssociationFormulaModel() { Id = formulaForCut.Id, Code = formulaForCut.Code, Name = formulaForCut.Name }
-                };
-                orderModelForCut.ExtraProperties["OuterDiameter"] = gTask.ToList().First().OuterDiameter;//澶栧緞
-                orderModelForCut.ExtraProperties["Material"] = gTask.ToList().First().Material;//鏉愯川
-                orderModelForCut.ExtraProperties["Length"] = gTask.ToList().First().Length;//闀垮害
+//            //var formula = await formulaProvider.GetFormulaAsync(product.Id);
+//            //if (formula == null)
+//            //{
+//            //    throw new UserFriendlyException($"浜у搧鍨嬪彿[{orderItem.MaterialCode}]鏃犲叧鑱旈厤鏂�");
+//            //}
+//            //棣栧厛瑕佸垱寤� 鎵撶爜鍒囧壊鐨勫伐鍗� 
+//            var productForCut = await productProvider.FindByNameAsync("鍒囧壊鍘熸枡绠�");
+//            if (productForCut == null)
+//            {
+//                throw new UserFriendlyException($"浜у搧鍚嶇О[鍒囧壊鍘熸枡绠涓嶅瓨鍦�");
+//            }
+//            var formulaForCut = await formulaProvider.GetFormulaAsync(productForCut.Id);
+//            if (formulaForCut == null)
+//            {
+//                throw new UserFriendlyException($"浜у搧鍚嶇О[鍒囧壊鍘熸枡绠鏃犲叧鑱旈厤鏂�");
+//            }
+//            //鍒嗙粍鏁版嵁
+//            var group = gTask.ToList().GroupBy(x => x.DataIdentifier);
+//            foreach (var item in group)
+//            {
+//                OrderModel orderModelForCut = new OrderModel()
+//                {
+//                    Id = Guid.NewGuid(),
+//                    Code = "Cut_" + taskCode,
+//                    Source = "APS鎺ㄩ��",
+//                    PlanStartTime = gTask.ToList().First().PlannedStartTime,
+//                    PlanFinishTime = gTask.ToList().First().PlannedEndTime,
+//                    PlanQty = (ulong)item.ToList().Count,
+//                    Status = OrderStatus.NotActive,
+//                    Product = new AssociationProductModel() { Id = productForCut.Id, Name = productForCut.Name, Model = productForCut.Model, ShortNumber = productForCut.ShortNumber },
+//                    Formula = new AssociationFormulaModel() { Id = formulaForCut.Id, Code = formulaForCut.Code, Name = formulaForCut.Name }
+//                };
+//                orderModelForCut.ExtraProperties["OuterDiameter"] = gTask.ToList().First().OuterDiameter;//澶栧緞
+//                orderModelForCut.ExtraProperties["Material"] = gTask.ToList().First().Material;//鏉愯川
+//                orderModelForCut.ExtraProperties["Length"] = gTask.ToList().First().Length;//闀垮害
 
-                var orderForCut = await orderManager.GetByCodeAsync(orderModelForCut.Code);
-                if (orderForCut != null)
-                {
-                    //throw new UserFriendlyException($"宸ュ崟[{orderModelForCut.Code}]宸插瓨鍦�");
-                    //涓嶅啀鎶涘紓甯革紝鐩存帴璺宠繃
-                    break;
-                }
+//                var orderForCut = await orderManager.GetByCodeAsync(orderModelForCut.Code);
+//                if (orderForCut != null)
+//                {
+//                    //throw new UserFriendlyException($"宸ュ崟[{orderModelForCut.Code}]宸插瓨鍦�");
+//                    //涓嶅啀鎶涘紓甯革紝鐩存帴璺宠繃
+//                    break;
+//                }
 
-                var orderModelResultForCut = await orderManager.CreateAsync(orderModelForCut);
-                if (orderModelResultForCut == null)
-                {
-                    throw new UserFriendlyException($"宸ュ崟[{orderModelForCut.Code}]鍒涘缓澶辫触");
-                }
-                orderModels.Add(orderModelResultForCut);
+//                var orderModelResultForCut = await orderManager.CreateAsync(orderModelForCut);
+//                if (orderModelResultForCut == null)
+//                {
+//                    throw new UserFriendlyException($"宸ュ崟[{orderModelForCut.Code}]鍒涘缓澶辫触");
+//                }
+//                orderModels.Add(orderModelResultForCut);
 
 
-                //OrderModel orderModel = new OrderModel();
-                //orderModel.Id = Guid.NewGuid();
-                //orderModel.Code = orderItem.TaskCode;
-                //orderModel.Source = "APS鎺ㄩ��";
-                //orderModel.Product = new AssociationProductModel() { Id = product.Id, Name = product.Name, Model = product.Model, ShortNumber = product.ShortNumber };
-                ////orderModel.Formula = new AssociationFormulaModel() { Id = formula.Id, Code = formula.Code, Name = formula.Name };
-                //orderModel.PlanStartTime = orderItem.PlannedStartTime;
-                //orderModel.PlanFinishTime = orderItem.PlannedEndTime;
-                //orderModel.PlanQty = (ulong?)orderItem.OrderQty;
-                //orderModel.Status = OrderStatus.NotActive;
-                //orderModel.ExtraProperties["Source"] = "ddd";
-                //var source = orderModel.ExtraProperties["Source"];
-                //var orderModelResult = await orderManager.CreateAsync(orderModel);
-                //if (orderModelResult == null)
-                //{
-                //    throw new UserFriendlyException($"宸ュ崟[{orderItem.TaskCode}]鍒涘缓澶辫触");
-                //}
-                //orderModels.Add(orderModelResult);
-            }
+//                //OrderModel orderModel = new OrderModel();
+//                //orderModel.Id = Guid.NewGuid();
+//                //orderModel.Code = orderItem.TaskCode;
+//                //orderModel.Source = "APS鎺ㄩ��";
+//                //orderModel.Product = new AssociationProductModel() { Id = product.Id, Name = product.Name, Model = product.Model, ShortNumber = product.ShortNumber };
+//                ////orderModel.Formula = new AssociationFormulaModel() { Id = formula.Id, Code = formula.Code, Name = formula.Name };
+//                //orderModel.PlanStartTime = orderItem.PlannedStartTime;
+//                //orderModel.PlanFinishTime = orderItem.PlannedEndTime;
+//                //orderModel.PlanQty = (ulong?)orderItem.OrderQty;
+//                //orderModel.Status = OrderStatus.NotActive;
+//                //orderModel.ExtraProperties["Source"] = "ddd";
+//                //var source = orderModel.ExtraProperties["Source"];
+//                //var orderModelResult = await orderManager.CreateAsync(orderModel);
+//                //if (orderModelResult == null)
+//                //{
+//                //    throw new UserFriendlyException($"宸ュ崟[{orderItem.TaskCode}]鍒涘缓澶辫触");
+//                //}
+//                //orderModels.Add(orderModelResult);
+//            }
 
-        }
+//        }
 
 
-        //淇濆瓨鍒拌〃涓�
-        foreach (var item in input)
-        {
-            var insertObj = ObjectMapper.Map<WorkPlanInput, WorkPlanCreateDto>(item);
-            insertObj.OrgMaterialCode = "1111";
-            insertObj.Sort = 1;
-            await _workPlanAppService.CreateAsync(insertObj);
-        }
+//        //淇濆瓨鍒拌〃涓�
+//        foreach (var item in input)
+//        {
+//            var insertObj = ObjectMapper.Map<WorkPlanInput, WorkPlanCreateDto>(item);
+//            insertObj.OrgMaterialCode = "1111";
+//            insertObj.Sort = 1;
+//            await _workPlanAppService.CreateAsync(insertObj);
+//        }
 
 
-        // 鍙戝竷浜嬩欢
-        //await _eventBus.PublishAsync(new EntityChangedEto("MESCREATE", input, null, EntityChangeType.Add, true));
+//        // 鍙戝竷浜嬩欢
+//        //await _eventBus.PublishAsync(new EntityChangedEto("MESCREATE", input, null, EntityChangeType.Add, true));
 
-        var response = new MesOrderResponse
-        {
-            Code = "000000",
-            Data = orderModels,
-            Fail = false,
-            Mesg = "澶勭悊鎴愬姛",
-            Success = true,
-            Time = DateTime.UtcNow
-        };
-        return response;
-    }
-}
+//        var response = new MesOrderResponse
+//        {
+//            Code = "000000",
+//            Data = orderModels,
+//            Fail = false,
+//            Mesg = "澶勭悊鎴愬姛",
+//            Success = true,
+//            Time = DateTime.UtcNow
+//        };
+//        return response;
+//    }
+//}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
index 686a0d9..a9bb3be 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
@@ -1,127 +1,127 @@
-using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
-using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
-using CMS.Plugin.PipeLineLems.Domain.Shared;
-using CmsQueryExtensions;
-using CMS.Plugin.PipeLineLems.Domain.WorkPlan;
-using CmsQueryExtensions.Extension;
-using System.Linq.Expressions;
-using Volo.Abp;
-using Volo.Abp.Application.Dtos;
-using Volo.Abp.Data;
-using Volo.Abp.ObjectExtending;
-using Volo.Abp.ObjectMapping;
-
-namespace CMS.Plugin.PipeLineLems.Application.Implements;
-
+using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan; 
+using CMS.Plugin.PipeLineLems.Application.Contracts.Services; 
+using CMS.Plugin.PipeLineLems.Domain.Shared; 
+using CmsQueryExtensions; 
+using CMS.Plugin.PipeLineLems.Domain.WorkPlan; 
+using CmsQueryExtensions.Extension; 
+using System.Linq.Expressions; 
+using Volo.Abp; 
+using Volo.Abp.Application.Dtos; 
+using Volo.Abp.Data; 
+using Volo.Abp.ObjectExtending; 
+using Volo.Abp.ObjectMapping; 
+ 
+namespace CMS.Plugin.PipeLineLems.Application.Implements; 
+ 
 /// <summary> 
 /// 浣滀笟璁″垝琛ㄥ簲鐢ㄦ湇鍔� 
 /// </summary> 
-public class WorkPlanAppService : CMSPluginAppService, IWorkPlanAppService
-{
-    private readonly IWorkPlanRepository workPlanRepository;
-
+public class WorkPlanAppService : CMSPluginAppService, IWorkPlanAppService 
+{ 
+    private readonly IWorkPlanRepository workPlanRepository; 
+ 
     /// <summary> 
     /// Initializes a new instance of the <see cref="WorkPlanAppService"/> class. 
     /// </summary> 
     /// <param name="WorkPlanRepository">The task job repository.</param> 
-    public WorkPlanAppService(IWorkPlanRepository _WorkPlanRepository)
-    {
-        workPlanRepository = _WorkPlanRepository;
-    }
-
+    public WorkPlanAppService(IWorkPlanRepository _WorkPlanRepository) 
+    { 
+        workPlanRepository = _WorkPlanRepository; 
+    } 
+ 
     /// <summary> 
     /// 鑾峰彇鎸囧畾浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="id"></param> 
     /// <returns></returns> 
-    public virtual async Task<WorkPlanDto> GetAsync(Guid id)
-    {
-        return ObjectMapper.Map<WorkPlan, WorkPlanDto>(await workPlanRepository.GetAsync(id));
-    }
-
+    public virtual async Task<WorkPlanDto> GetAsync(Guid id) 
+    { 
+        return ObjectMapper.Map<WorkPlan, WorkPlanDto>(await workPlanRepository.GetAsync(id)); 
+    } 
+ 
     /// <summary> 
     /// 鍒嗛〉鑾峰彇浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="input"></param> 
     /// <returns></returns> 
-    public virtual async Task<PagedResultDto<WorkPlanDto>> GetListAsync(GetWorkPlanInput input)
-    {
-        Check.NotNull(input, nameof(input));
-
-        if (input.Sorting.IsNullOrWhiteSpace())
-        {
-            input.Sorting = nameof(WorkPlan.Sort);
-        }
-
+    public virtual async Task<PagedResultDto<WorkPlanDto>> GetListAsync(GetWorkPlanInput input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        if (input.Sorting.IsNullOrWhiteSpace()) 
+        { 
+            input.Sorting = nameof(WorkPlan.Sort); 
+        } 
+ 
         #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
-
+ 
         //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
-        var whereConditions = DynamicGetQueryParams(input);
-
-        #endregion
-
-        var count = await workPlanRepository.GetCountAsync(whereConditions);
-        var list = await workPlanRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
-
-        return new PagedResultDto<WorkPlanDto>(count, ObjectMapper.Map<List<WorkPlan>, List<WorkPlanDto>>(list));
-    }
-
+        var whereConditions = DynamicGetQueryParams(input); 
+ 
+        #endregion 
+ 
+        var count = await workPlanRepository.GetCountAsync(whereConditions); 
+        var list = await workPlanRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); 
+ 
+        return new PagedResultDto<WorkPlanDto>(count, ObjectMapper.Map<List<WorkPlan>, List<WorkPlanDto>>(list)); 
+    } 
+ 
     /// <summary>  
     /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
     /// </summary>  
     /// <param name="input">杈撳叆鍙傛暟</param>  
     /// <returns></returns>  
-    private FunReturnResultModel<Expression<Func<WorkPlan, bool>>> DynamicGetQueryParams(GetWorkPlanInput input)
-    {
+    private FunReturnResultModel<Expression<Func<WorkPlan, bool>>> DynamicGetQueryParams(GetWorkPlanInput input) 
+    { 
         //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
-        var whereConditions = WhereConditionsExtensions.GetWhereConditions<WorkPlan, GetWorkPlanInput>(input);
-        if (!whereConditions.IsSuccess)
-        {
-            throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg);
-        }
-
+        var whereConditions = WhereConditionsExtensions.GetWhereConditions<WorkPlan, GetWorkPlanInput>(input); 
+        if (!whereConditions.IsSuccess) 
+        { 
+            throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); 
+        } 
+ 
         //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�  
-        Expression<Func<WorkPlan, bool>> extendExpression = a => a.IsDeleted == false;
+        Expression<Func<WorkPlan, bool>> extendExpression = a => a.IsDeleted == false; 
         // 浣跨敤 System.Linq.PredicateBuilder 鐨� And 
-        var pres = (System.Linq.Expressions.Expression<Func<WorkPlan, bool>>)(whereConditions.data);
-        whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression);
-
-        return whereConditions;
-    }
-
+        var pres = (System.Linq.Expressions.Expression<Func<WorkPlan, bool>>)(whereConditions.data); 
+        whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); 
+ 
+        return whereConditions; 
+    } 
+ 
     /// <summary> 
     /// 鏂板缓浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="input"></param> 
     /// <returns></returns> 
     /// <exception cref="UserFriendlyException"></exception> 
-    public virtual async Task<WorkPlanDto> CreateAsync(WorkPlanCreateDto input)
-    {
-        await CheckCreateOrUpdateDtoAsync(input);
-
-        var exist = await workPlanRepository.NameExistAsync(input.TaskCode);
-        if (exist)
-        {
-            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskCode]);
-        }
-
-        var maxSort = await workPlanRepository.GetMaxSortAsync();
-        var sort = input.Sort ?? maxSort;
-
-        var insertObj = ObjectMapper.Map<WorkPlanCreateDto, WorkPlan>(input);
-        insertObj.Sort = sort;
-        input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None);
-
-        await workPlanRepository.InsertAsync(insertObj);
-
+    public virtual async Task<WorkPlanDto> CreateAsync(WorkPlanCreateDto input) 
+    { 
+        await CheckCreateOrUpdateDtoAsync(input); 
+ 
+        var exist = await workPlanRepository.NameExistAsync(input.TaskCode); 
+        if (exist) 
+        { 
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskCode]); 
+        } 
+ 
+        var maxSort = await workPlanRepository.GetMaxSortAsync(); 
+        var sort = input.Sort ?? maxSort; 
+ 
+        var insertObj = ObjectMapper.Map<WorkPlanCreateDto, WorkPlan>(input); 
+        insertObj.Sort = sort; 
+        input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); 
+ 
+        await workPlanRepository.InsertAsync(insertObj); 
+ 
         //if (input.Sort.HasValue && insertObj.Sort != maxSort) 
         //{ 
         //    await AdjustSortAsync(insertObj.Id, insertObj.Sort); 
         //} 
-
-        return ObjectMapper.Map<WorkPlan, WorkPlanDto>(insertObj);
-    }
-
+ 
+        return ObjectMapper.Map<WorkPlan, WorkPlanDto>(insertObj); 
+    } 
+ 
     /// <summary> 
     /// 鏇存柊浣滀笟璁″垝琛� 
     /// </summary> 
@@ -129,22 +129,34 @@
     /// <param name="input"></param> 
     /// <returns></returns> 
     /// <exception cref="UserFriendlyException"></exception> 
-    public virtual async Task<WorkPlanDto> UpdateAsync(Guid id, WorkPlanUpdateDto input)
-    {
-        await CheckCreateOrUpdateDtoAsync(input);
-
-        var updateObj = await workPlanRepository.GetAsync(id);
-        var exist = await workPlanRepository.NameExistAsync(input.TaskCode, updateObj.Id);
-        if (exist)
-        {
-            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskCode]);
-        }
-
-        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
-        input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
-
-        updateObj.TaskCode = input.TaskCode;
-        updateObj.OrgMaterialCode = input.OrgMaterialCode;
+    public virtual async Task<WorkPlanDto> UpdateAsync(Guid id, WorkPlanUpdateDto input) 
+    { 
+        await CheckCreateOrUpdateDtoAsync(input); 
+ 
+        var updateObj = await workPlanRepository.GetAsync(id); 
+        var exist = await workPlanRepository.NameExistAsync(input.TaskCode, updateObj.Id); 
+        if (exist) 
+        { 
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskCode]); 
+        } 
+ 
+        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); 
+        input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); 
+ 
+                updateObj.TaskCode = input.TaskCode;
+        updateObj.DataIdentifier = input.DataIdentifier;
+        updateObj.MaterialMode = input.MaterialMode;
+        updateObj.Length = input.Length;
+        updateObj.MarkingContent = input.MarkingContent;
+        updateObj.MarkingPosition = input.MarkingPosition;
+        updateObj.CuttingPosition = input.CuttingPosition;
+        updateObj.Quantity = input.Quantity;
+        updateObj.FlangeThickness = input.FlangeThickness;
+        updateObj.FlangeInnerDiameter = input.FlangeInnerDiameter;
+        updateObj.WeldingHeatInput = input.WeldingHeatInput;
+        updateObj.PipeAllowableStress = input.PipeAllowableStress;
+        updateObj.PipeDiameter = input.PipeDiameter;
+        updateObj.PipeWallThickness = input.PipeWallThickness;
         updateObj.FactoryCode = input.FactoryCode;
         updateObj.ProductCode = input.ProductCode;
         updateObj.WorkstationCode = input.WorkstationCode;
@@ -153,59 +165,32 @@
         updateObj.ProcessName = input.ProcessName;
         updateObj.PipeFittingCode = input.PipeFittingCode;
         updateObj.PreSerialNumber = input.PreSerialNumber;
-        updateObj.DataIdentifier = input.DataIdentifier;
         updateObj.PipeSpecCode = input.PipeSpecCode;
         updateObj.PipeSectionName = input.PipeSectionName;
         updateObj.OuterDiameter = input.OuterDiameter;
-        updateObj.Bevel = input.Bevel;
+        updateObj.Thickness = input.Thickness;
         updateObj.Material = input.Material;
-        updateObj.Length = input.Length;
-        updateObj.DrillingPosition = input.DrillingPosition;
-        updateObj.Intersecting = input.Intersecting;
-        updateObj.InterfaceRequirement = input.InterfaceRequirement;
         updateObj.HasMainSignature = input.HasMainSignature;
-        updateObj.Quantity = input.Quantity;
-        updateObj.MarkingContent = input.MarkingContent;
-        updateObj.CuttingFile = input.CuttingFile;
-        updateObj.BranchOuterDiameter = input.BranchOuterDiameter;
-        updateObj.BranchWallThickness = input.BranchWallThickness;
-        updateObj.BranchMaterial = input.BranchMaterial;
-        updateObj.BranchPortRadius = input.BranchPortRadius;
-        updateObj.BranchPortAngle = input.BranchPortAngle;
-        updateObj.BranchPortRequirement = input.BranchPortRequirement;
-        updateObj.IntersectingLineType = input.IntersectingLineType;
-        updateObj.IntersectingLineCategory = input.IntersectingLineCategory;
-        updateObj.FinishedProductScale = input.FinishedProductScale;
-        updateObj.FlangeThickness = input.FlangeThickness;
-        updateObj.FlangeInnerDiameter = input.FlangeInnerDiameter;
-        updateObj.WeldingHeatInput = input.WeldingHeatInput;
-        updateObj.PipeAllowableStress = input.PipeAllowableStress;
-        updateObj.PipeDiameter = input.PipeDiameter;
-        updateObj.PipeWallThickness = input.PipeWallThickness;
-        updateObj.VRData = input.VRData;
         updateObj.ProcessRouteNumber = input.ProcessRouteNumber;
         updateObj.PlannedStartTime = input.PlannedStartTime;
         updateObj.PlannedEndTime = input.PlannedEndTime;
-        updateObj.TimeInfo = input.TimeInfo;
-        updateObj.RedundantField1 = input.RedundantField1;
-        updateObj.RedundantField2 = input.RedundantField2;
-        updateObj.RedundantField3 = input.RedundantField3;
+        updateObj.TeamInfo = input.TeamInfo;
+        updateObj.Timestamp = input.Timestamp;
         updateObj.Remark = input.Remark;
-        updateObj.IsDisabled = input.IsDisabled;
-
-
-        await workPlanRepository.UpdateAsync(updateObj);
-
-        return ObjectMapper.Map<WorkPlan, WorkPlanDto>(updateObj);
-    }
-
+ 
+ 
+        await workPlanRepository.UpdateAsync(updateObj); 
+ 
+        return ObjectMapper.Map<WorkPlan, WorkPlanDto>(updateObj); 
+    } 
+ 
     /// <summary> 
     /// 鍏嬮殕浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="ids"></param> 
     /// <returns></returns> 
-    public async Task<List<WorkPlanDto>> CloneAsync(IEnumerable<Guid> ids)
-    {
+    public async Task<List<WorkPlanDto>> CloneAsync(IEnumerable<Guid> ids) 
+    { 
         //var workPlans = new List<WorkPlan>(); 
         //if (ids != null) 
         //{ 
@@ -225,319 +210,297 @@
         //                    name += WorkPlanConsts.CloneTag; 
         //                    continue; 
         //                } 
-
+ 
         //                notExist = true; 
         //            } 
-
+ 
         //            //WorkPlan = await workPlanRepository.InsertAsync(WorkPlan.Clone(GuidGenerator.Create(), name, sort++)); 
         //            workPlans.Add(WorkPlan); 
         //        } 
         //    } 
         //} 
-
+ 
         //return ObjectMapper.Map<List<WorkPlan>, List<WorkPlanDto>>(workPlans); 
-        return new List<WorkPlanDto>();
-    }
-
+        return new List<WorkPlanDto>(); 
+    } 
+ 
     /// <summary> 
     /// 鍒犻櫎鍗曚釜浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="id"></param> 
     /// <returns></returns> 
-    public virtual Task DeleteAsync(Guid id)
-    {
-        return workPlanRepository.DeleteAsync(id);
-    }
-
+    public virtual Task DeleteAsync(Guid id) 
+    { 
+        return workPlanRepository.DeleteAsync(id); 
+    } 
+ 
     /// <summary> 
     /// 鍒犻櫎澶氫釜浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="ids"></param> 
     /// <returns></returns> 
-    public async Task DeleteManyAsync(IEnumerable<Guid> ids)
-    {
-        foreach (var id in ids)
-        {
-            await DeleteAsync(id);
-        }
-    }
-
+    public async Task DeleteManyAsync(IEnumerable<Guid> ids) 
+    { 
+        foreach (var id in ids) 
+        { 
+            await DeleteAsync(id); 
+        } 
+    } 
+ 
     /// <summary> 
     /// 璋冩暣鎺掑簭浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="id"></param> 
     /// <param name="sort"></param> 
     /// <returns></returns> 
-    public virtual async Task AdjustSortAsync(Guid id, int sort)
-    {
-        var list = await workPlanRepository.GetListAsync(null, nameof(WorkPlan.Sort));
-        if (list != null && list.Any())
-        {
-            var initSort = 1;
-            list.ForEach(x => x.AdjustSort(initSort++));
-            var entity = list.FirstOrDefault(x => x.Id == id);
-            if (entity != null)
-            {
-                if (sort == 1)
-                {
-                    list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
-                }
-                else if (entity.Sort > sort)
-                {
-                    list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
-                    list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1));
-                }
-                else if (entity.Sort < sort)
-                {
-                    list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
-                    list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1));
-                }
-
-                entity.AdjustSort(sort);
-            }
-        }
-
-        await workPlanRepository.UpdateManyAsync(list);
-    }
-
+    public virtual async Task AdjustSortAsync(Guid id, int sort) 
+    { 
+        var list = await workPlanRepository.GetListAsync(null, nameof(WorkPlan.Sort)); 
+        if (list != null && list.Any()) 
+        { 
+            var initSort = 1; 
+            list.ForEach(x => x.AdjustSort(initSort++)); 
+            var entity = list.FirstOrDefault(x => x.Id == id); 
+            if (entity != null) 
+            { 
+                if (sort == 1) 
+                { 
+                    list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                } 
+                else if (entity.Sort > sort) 
+                { 
+                    list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                    list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); 
+                } 
+                else if (entity.Sort < sort) 
+                { 
+                    list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                    list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); 
+                } 
+ 
+                entity.AdjustSort(sort); 
+            } 
+        } 
+ 
+        await workPlanRepository.UpdateManyAsync(list); 
+    } 
+ 
     /// <summary> 
     /// 瀵煎叆浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="input"></param> 
     /// <returns></returns> 
     /// <exception cref="UserFriendlyException"></exception> 
-    public async Task ImportAsync(WorkPlansImportModel input)
-    {
-        Check.NotNull(input, nameof(input));
-
-        var workPlanCreateDtos = new List<(int RowIndex, WorkPlanCreateDto Item)>();
-        var workPlanUpdateDtos = new List<(int RowIndex, Guid Id, WorkPlanUpdateDto Item)>();
-        var importItems = input.WorkPlans;
-
-        if (importItems != null && importItems.Any())
-        {
+    public async Task ImportAsync(WorkPlansImportModel input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        var workPlanCreateDtos = new List<(int RowIndex, WorkPlanCreateDto Item)>(); 
+        var workPlanUpdateDtos = new List<(int RowIndex, Guid Id, WorkPlanUpdateDto Item)>(); 
+        var importItems = input.WorkPlans; 
+ 
+        if (importItems != null && importItems.Any()) 
+        { 
             #region 瀵煎叆鏍¢獙 
-
+ 
             // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
-            var duplicateWorkPlans = importItems.GroupBy(x => x.TaskCode).Where(x => x.Count() > 1).ToList();
-            if (duplicateWorkPlans?.Any() == true)
-            {
-                var duplicateWorkPlanMsgs = duplicateWorkPlans.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅");
-                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWorkPlanMsgs)}锛岀粓姝㈠鍏�";
-                throw new UserFriendlyException(errorMsg);
-            }
-
-            #endregion
-
-            foreach (var impItem in importItems)
-            {
-                if (impItem.TaskCode.IsNullOrWhiteSpace())
-                {
-                    continue;
-                }
-
-                if (impItem.TaskCode.IsNullOrWhiteSpace())
-                {
-                    var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WorkPlan鍚嶇О涓嶈兘涓虹┖";
-                    throw new UserFriendlyException(errorMsg);
-                }
-
-                var oldWorkPlan = await workPlanRepository.FindByNameAsync(impItem.TaskCode);
-                if (oldWorkPlan != null)
-                {
-                    var workPlanUpdateDto = new WorkPlanUpdateDto
-                    {
+            var duplicateWorkPlans = importItems.GroupBy(x => x.TaskCode).Where(x => x.Count() > 1).ToList(); 
+            if (duplicateWorkPlans?.Any() == true) 
+            { 
+                var duplicateWorkPlanMsgs = duplicateWorkPlans.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅"); 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWorkPlanMsgs)}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+ 
+            #endregion 
+ 
+            foreach (var impItem in importItems) 
+            { 
+                if (impItem.TaskCode.IsNullOrWhiteSpace()) 
+                { 
+                    continue; 
+                } 
+ 
+                if (impItem.TaskCode.IsNullOrWhiteSpace()) 
+                { 
+                    var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WorkPlan鍚嶇О涓嶈兘涓虹┖"; 
+                    throw new UserFriendlyException(errorMsg); 
+                } 
+ 
+                var oldWorkPlan = await workPlanRepository.FindByNameAsync(impItem.TaskCode); 
+                if (oldWorkPlan != null) 
+                { 
+                    var workPlanUpdateDto = new WorkPlanUpdateDto 
+                    { 
                         TaskCode = impItem.TaskCode,
-                        OrgMaterialCode = impItem.OrgMaterialCode,
-                        FactoryCode = impItem.FactoryCode,
-                        ProductCode = impItem.ProductCode,
-                        WorkstationCode = impItem.WorkstationCode,
-                        EquipmentCode = impItem.EquipmentCode,
-                        WorkpieceName = impItem.WorkpieceName,
-                        ProcessName = impItem.ProcessName,
-                        PipeFittingCode = impItem.PipeFittingCode,
-                        PreSerialNumber = impItem.PreSerialNumber,
-                        DataIdentifier = impItem.DataIdentifier,
-                        PipeSpecCode = impItem.PipeSpecCode,
-                        PipeSectionName = impItem.PipeSectionName,
-                        OuterDiameter = impItem.OuterDiameter,
-                        Bevel = impItem.Bevel,
-                        Material = impItem.Material,
-                        Length = impItem.Length,
-                        DrillingPosition = impItem.DrillingPosition,
-                        Intersecting = impItem.Intersecting,
-                        InterfaceRequirement = impItem.InterfaceRequirement,
-                        HasMainSignature = impItem.HasMainSignature,
-                        Quantity = impItem.Quantity,
-                        MarkingContent = impItem.MarkingContent,
-                        CuttingFile = impItem.CuttingFile,
-                        BranchOuterDiameter = impItem.BranchOuterDiameter,
-                        BranchWallThickness = impItem.BranchWallThickness,
-                        BranchMaterial = impItem.BranchMaterial,
-                        BranchPortRadius = impItem.BranchPortRadius,
-                        BranchPortAngle = impItem.BranchPortAngle,
-                        BranchPortRequirement = impItem.BranchPortRequirement,
-                        IntersectingLineType = impItem.IntersectingLineType,
-                        IntersectingLineCategory = impItem.IntersectingLineCategory,
-                        FinishedProductScale = impItem.FinishedProductScale,
-                        FlangeThickness = impItem.FlangeThickness,
-                        FlangeInnerDiameter = impItem.FlangeInnerDiameter,
-                        WeldingHeatInput = impItem.WeldingHeatInput,
-                        PipeAllowableStress = impItem.PipeAllowableStress,
-                        PipeDiameter = impItem.PipeDiameter,
-                        PipeWallThickness = impItem.PipeWallThickness,
-                        VRData = impItem.VRData,
-                        ProcessRouteNumber = impItem.ProcessRouteNumber,
-                        PlannedStartTime = impItem.PlannedStartTime,
-                        PlannedEndTime = impItem.PlannedEndTime,
-                        TimeInfo = impItem.TimeInfo,
-                        RedundantField1 = impItem.RedundantField1,
-                        RedundantField2 = impItem.RedundantField2,
-                        RedundantField3 = impItem.RedundantField3,
-                        Remark = impItem.Remark,
-                        IsDisabled = impItem.IsDisabled,
-
-                    };
-
-                    workPlanUpdateDtos.Add((impItem.RowIndex, oldWorkPlan.Id, workPlanUpdateDto));
-                }
-                else
-                {
-                    var workPlanCreateDto = new WorkPlanCreateDto
-                    {
+DataIdentifier = impItem.DataIdentifier,
+MaterialMode = impItem.MaterialMode,
+Length = impItem.Length,
+MarkingContent = impItem.MarkingContent,
+MarkingPosition = impItem.MarkingPosition,
+CuttingPosition = impItem.CuttingPosition,
+Quantity = impItem.Quantity,
+FlangeThickness = impItem.FlangeThickness,
+FlangeInnerDiameter = impItem.FlangeInnerDiameter,
+WeldingHeatInput = impItem.WeldingHeatInput,
+PipeAllowableStress = impItem.PipeAllowableStress,
+PipeDiameter = impItem.PipeDiameter,
+PipeWallThickness = impItem.PipeWallThickness,
+FactoryCode = impItem.FactoryCode,
+ProductCode = impItem.ProductCode,
+WorkstationCode = impItem.WorkstationCode,
+EquipmentCode = impItem.EquipmentCode,
+WorkpieceName = impItem.WorkpieceName,
+ProcessName = impItem.ProcessName,
+PipeFittingCode = impItem.PipeFittingCode,
+PreSerialNumber = impItem.PreSerialNumber,
+PipeSpecCode = impItem.PipeSpecCode,
+PipeSectionName = impItem.PipeSectionName,
+OuterDiameter = impItem.OuterDiameter,
+Thickness = impItem.Thickness,
+Material = impItem.Material,
+HasMainSignature = impItem.HasMainSignature,
+ProcessRouteNumber = impItem.ProcessRouteNumber,
+PlannedStartTime = impItem.PlannedStartTime,
+PlannedEndTime = impItem.PlannedEndTime,
+TeamInfo = impItem.TeamInfo,
+Timestamp = impItem.Timestamp,
+Remark = impItem.Remark,
+ 
+                    }; 
+ 
+                    workPlanUpdateDtos.Add((impItem.RowIndex, oldWorkPlan.Id, workPlanUpdateDto)); 
+                } 
+                else 
+                { 
+                    var workPlanCreateDto = new WorkPlanCreateDto 
+                    { 
                         TaskCode = impItem.TaskCode,
-                        OrgMaterialCode = impItem.OrgMaterialCode,
-                        FactoryCode = impItem.FactoryCode,
-                        ProductCode = impItem.ProductCode,
-                        WorkstationCode = impItem.WorkstationCode,
-                        EquipmentCode = impItem.EquipmentCode,
-                        WorkpieceName = impItem.WorkpieceName,
-                        ProcessName = impItem.ProcessName,
-                        PipeFittingCode = impItem.PipeFittingCode,
-                        PreSerialNumber = impItem.PreSerialNumber,
-                        DataIdentifier = impItem.DataIdentifier,
-                        PipeSpecCode = impItem.PipeSpecCode,
-                        PipeSectionName = impItem.PipeSectionName,
-                        OuterDiameter = impItem.OuterDiameter,
-                        Bevel = impItem.Bevel,
-                        Material = impItem.Material,
-                        Length = impItem.Length,
-                        DrillingPosition = impItem.DrillingPosition,
-                        Intersecting = impItem.Intersecting,
-                        InterfaceRequirement = impItem.InterfaceRequirement,
-                        HasMainSignature = impItem.HasMainSignature,
-                        Quantity = impItem.Quantity,
-                        MarkingContent = impItem.MarkingContent,
-                        CuttingFile = impItem.CuttingFile,
-                        BranchOuterDiameter = impItem.BranchOuterDiameter,
-                        BranchWallThickness = impItem.BranchWallThickness,
-                        BranchMaterial = impItem.BranchMaterial,
-                        BranchPortRadius = impItem.BranchPortRadius,
-                        BranchPortAngle = impItem.BranchPortAngle,
-                        BranchPortRequirement = impItem.BranchPortRequirement,
-                        IntersectingLineType = impItem.IntersectingLineType,
-                        IntersectingLineCategory = impItem.IntersectingLineCategory,
-                        FinishedProductScale = impItem.FinishedProductScale,
-                        FlangeThickness = impItem.FlangeThickness,
-                        FlangeInnerDiameter = impItem.FlangeInnerDiameter,
-                        WeldingHeatInput = impItem.WeldingHeatInput,
-                        PipeAllowableStress = impItem.PipeAllowableStress,
-                        PipeDiameter = impItem.PipeDiameter,
-                        PipeWallThickness = impItem.PipeWallThickness,
-                        VRData = impItem.VRData,
-                        ProcessRouteNumber = impItem.ProcessRouteNumber,
-                        PlannedStartTime = impItem.PlannedStartTime,
-                        PlannedEndTime = impItem.PlannedEndTime,
-                        TimeInfo = impItem.TimeInfo,
-                        RedundantField1 = impItem.RedundantField1,
-                        RedundantField2 = impItem.RedundantField2,
-                        RedundantField3 = impItem.RedundantField3,
-                        Remark = impItem.Remark,
-                        IsDisabled = impItem.IsDisabled,
-
-                    };
-
-                    workPlanCreateDtos.Add((impItem.RowIndex, workPlanCreateDto));
-                }
-            }
-        }
-
+DataIdentifier = impItem.DataIdentifier,
+MaterialMode = impItem.MaterialMode,
+Length = impItem.Length,
+MarkingContent = impItem.MarkingContent,
+MarkingPosition = impItem.MarkingPosition,
+CuttingPosition = impItem.CuttingPosition,
+Quantity = impItem.Quantity,
+FlangeThickness = impItem.FlangeThickness,
+FlangeInnerDiameter = impItem.FlangeInnerDiameter,
+WeldingHeatInput = impItem.WeldingHeatInput,
+PipeAllowableStress = impItem.PipeAllowableStress,
+PipeDiameter = impItem.PipeDiameter,
+PipeWallThickness = impItem.PipeWallThickness,
+FactoryCode = impItem.FactoryCode,
+ProductCode = impItem.ProductCode,
+WorkstationCode = impItem.WorkstationCode,
+EquipmentCode = impItem.EquipmentCode,
+WorkpieceName = impItem.WorkpieceName,
+ProcessName = impItem.ProcessName,
+PipeFittingCode = impItem.PipeFittingCode,
+PreSerialNumber = impItem.PreSerialNumber,
+PipeSpecCode = impItem.PipeSpecCode,
+PipeSectionName = impItem.PipeSectionName,
+OuterDiameter = impItem.OuterDiameter,
+Thickness = impItem.Thickness,
+Material = impItem.Material,
+HasMainSignature = impItem.HasMainSignature,
+ProcessRouteNumber = impItem.ProcessRouteNumber,
+PlannedStartTime = impItem.PlannedStartTime,
+PlannedEndTime = impItem.PlannedEndTime,
+TeamInfo = impItem.TeamInfo,
+Timestamp = impItem.Timestamp,
+Remark = impItem.Remark,
+ 
+                    }; 
+ 
+                    workPlanCreateDtos.Add((impItem.RowIndex, workPlanCreateDto)); 
+                } 
+            } 
+        } 
+ 
         // 鏂板 
-        foreach (var workPlanDto in workPlanCreateDtos)
-        {
-            try
-            {
-                await CreateAsync(workPlanDto.Item);
-            }
-            catch (Exception e)
-            {
-                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊workPlanDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
-                throw new UserFriendlyException(errorMsg);
-            }
-        }
-
+        foreach (var workPlanDto in workPlanCreateDtos) 
+        { 
+            try 
+            { 
+                await CreateAsync(workPlanDto.Item); 
+            } 
+            catch (Exception e) 
+            { 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊workPlanDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+        } 
+ 
         // 鏇存柊 
-        foreach (var workPlanDto in workPlanUpdateDtos)
-        {
-            try
-            {
-                await UpdateAsync(workPlanDto.Id, workPlanDto.Item);
-            }
-            catch (Exception e)
-            {
-                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊workPlanDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
-                throw new UserFriendlyException(errorMsg);
-            }
-        }
-    }
-
+        foreach (var workPlanDto in workPlanUpdateDtos) 
+        { 
+            try 
+            { 
+                await UpdateAsync(workPlanDto.Id, workPlanDto.Item); 
+            } 
+            catch (Exception e) 
+            { 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊workPlanDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+        } 
+    } 
+ 
     /// <summary> 
     /// 瀵煎嚭浣滀笟璁″垝琛� 
     /// </summary> 
     /// <param name="input"></param> 
     /// <returns></returns> 
-    public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWorkPlanInput input)
-    {
-        Check.NotNull(input, nameof(input));
-
-        if (input.Sorting.IsNullOrWhiteSpace())
-        {
-            input.Sorting = nameof(WorkPlan.Sort);
-        }
-
+    public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWorkPlanInput input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        if (input.Sorting.IsNullOrWhiteSpace()) 
+        { 
+            input.Sorting = nameof(WorkPlan.Sort); 
+        } 
+ 
         #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
-
+ 
         //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
-        var whereConditions = DynamicGetQueryParams(input);
-
-        #endregion
-
-
-        var list = await workPlanRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true);
-        var result = ObjectMapper.Map<List<WorkPlan>, List<WorkPlanDto>>(list);
-
-        var sheets = new Dictionary<string, object>
-        {
-            ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
-        };
-
-        var fileName = result.Count > 1 ? "浣滀笟璁″垝琛ㄥ垪琛�" : result.Count == 1 ? result[0]?.TaskCode : "WorkPlan妯$増";
-        return (sheets, fileName);
-    }
-
+        var whereConditions = DynamicGetQueryParams(input); 
+ 
+        #endregion 
+ 
+ 
+        var list = await workPlanRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); 
+        var result = ObjectMapper.Map<List<WorkPlan>, List<WorkPlanDto>>(list); 
+ 
+        var sheets = new Dictionary<string, object> 
+        { 
+            ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), 
+        }; 
+ 
+        var fileName = "浣滀笟璁″垝"; 
+        return (sheets, fileName); 
+    } 
+ 
     /// <summary> 
     /// 鏍¢獙浣滀笟璁″垝琛紝褰撴柊寤烘垨鏇存柊鏃� 
     /// </summary> 
     /// <param name="input"></param> 
     /// <returns></returns> 
-    protected Task CheckCreateOrUpdateDtoAsync(WorkPlanCreateOrUpdateDtoBase input)
-    {
-        Check.NotNull(input, nameof(input));
-        Check.NotNullOrWhiteSpace(input.TaskCode, "浠诲姟缂栫爜", 64);
-        Check.NotNullOrWhiteSpace(input.OrgMaterialCode, "鍘熸枡缂栧彿", 64);
-        Check.NotNull(input.HasMainSignature, "鏄惁鏈変富绛�");
-        Check.NotNull(input.Quantity, "鍖呮嫭鏁伴噺");
-
-        return Task.CompletedTask;
-    }
-}
+    protected Task CheckCreateOrUpdateDtoAsync(WorkPlanCreateOrUpdateDtoBase input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+                Check.NotNullOrWhiteSpace(input.TaskCode, "浠诲姟缂栫爜", 256);
+        Check.NotNull(input.Length, "闀垮害(mm)");
+        Check.NotNull(input.MarkingPosition, "鎵撶爜浣嶇疆");
+        Check.NotNull(input.CuttingPosition, "鍒囧壊浣嶇疆");
+        Check.NotNull(input.Quantity, "绠℃鏁伴噺");
+        Check.NotNull(input.FlangeThickness, "娉曞叞鍘氬害(mm)");
+        Check.NotNull(input.FlangeInnerDiameter, "娉曞叞鐩村緞(mm)");
+        Check.NotNull(input.PipeDiameter, "濂楃闀垮害(mm)");
+        Check.NotNull(input.PipeWallThickness, "濂楃鐩村緞(mm)");
+        Check.NotNull(input.OuterDiameter, "澶栧緞(mm)");
+        Check.NotNull(input.Thickness, "澹佸帤(mm)");
+        Check.NotNull(input.HasMainSignature, "鏄惁涓绘敮绠�");
+ 
+        return Task.CompletedTask; 
+    } 
+} 
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/MapperProfiles/WorkPlanAutoMapperProfile.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/MapperProfiles/WorkPlanAutoMapperProfile.cs
index 44f246c..1d1cea0 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/MapperProfiles/WorkPlanAutoMapperProfile.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/MapperProfiles/WorkPlanAutoMapperProfile.cs
@@ -21,7 +21,6 @@
          * into multiple profile classes for a better organization. */ 
         CreateMap<WorkPlan, WorkPlanDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
         CreateMap<WorkPlanCreateDto, WorkPlan>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
-        CreateMap<GetWorkPlanInput, WorkPlan>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
-        CreateMap<WorkPlanInput, WorkPlanCreateDto>(MemberList.None);
+        CreateMap<GetWorkPlanInput, WorkPlan>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
     } 
 } 
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/EntityTypeBuilderExtensions.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/EntityTypeBuilderExtensions.cs
new file mode 100644
index 0000000..60fee7b
--- /dev/null
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/EntityTypeBuilderExtensions.cs
@@ -0,0 +1,114 @@
+锘縰sing Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CMS.Plugin.MyExtension.Domain
+{
+    /// <summary>
+    /// 鐢ㄤ簬鎵╁睍 EntityTypeBuilder 鐨勯潤鎬佺被锛屾彁渚涢拡瀵圭户鎵胯嚜 MyFullAuditedAggregateRoot<Guid> 鐨勫疄浣撶被鍨嬬殑閰嶇疆鎵╁睍鏂规硶
+    /// </summary>
+    public static class EntityTypeBuilderExtensions
+    {
+        /// <summary>
+        /// 閽堝缁ф壙鑷� MyFullAuditedAggregateRoot<Guid> 鐨勫疄浣撶被鍨嬶紝閰嶇疆鍏跺叕鍏卞睘鎬�
+        /// </summary>
+        /// <typeparam name="TEntity">缁ф壙鑷� MyFullAuditedAggregateRoot<Guid> 鐨勫疄浣撶被鍨�</typeparam>
+        /// <param name="b">EntityTypeBuilder<TEntity> 瀹炰緥锛岀敤浜庨厤缃疄浣撶殑灞炴��</param>
+        public static void ConfigureMyCmsEntity<TEntity>(this EntityTypeBuilder<TEntity> b) where TEntity : MyFullAuditedAggregateRoot<Guid>
+        {
+            b.Property(x => x.CreatorId)
+             .HasMaxLength(36)
+             .IsRequired(false)
+             .HasComment("鍒涘缓浜篒D");
+
+            b.Property(x => x.CreatorName)
+                .HasMaxLength(64)
+                .IsRequired(false)
+                .HasComment("鍒涘缓浜�");
+
+            b.Property(x => x.CreationTime)
+                .IsRequired()
+                .HasComment("鍒涘缓鏃堕棿");
+
+            b.Property(x => x.LastModifierName)
+                .HasMaxLength(64)
+                .IsRequired(false)
+                .HasComment("淇敼浜�");
+
+            b.Property(x => x.LastModifierId)
+                .HasMaxLength(36)
+                .IsRequired(false)
+                .HasComment("淇敼浜篒D");
+
+            b.Property(x => x.LastModificationTime)
+                .IsRequired(false)
+                .HasComment("淇敼鏃堕棿");
+
+            b.Property(x => x.IsDeleted)
+                .IsRequired()
+                .HasComment("鏄惁鍒犻櫎");
+
+            b.Property(x => x.DeleterId)
+                .HasMaxLength(36)
+                .IsRequired(false)
+                .HasComment("鍒犻櫎浜篒D");
+
+            b.Property(x => x.DeletionTime)
+                .IsRequired(false)
+                .HasComment("鍒犻櫎鏃堕棿");
+
+            b.Property(x => x.ExtraProperties)
+                .IsRequired(false)
+                .HasComment("鎵╁睍灞炴��");
+
+            b.Property(x => x.ConcurrencyStamp)
+                .IsRequired(false)
+                .HasMaxLength(40)
+                .HasComment("骞跺彂鎴�");
+
+            b.Property(x => x.Sort)
+                .HasDefaultValue(0)
+                .HasComment("鎺掑簭");
+
+            b.Property(x => x.Remark)
+                .HasMaxLength(256)
+                .IsRequired(false)
+                .HasComment("澶囨敞");
+
+            b.Property(x => x.OperationRemark)
+               .HasMaxLength(256)
+               .IsRequired(false)
+               .HasComment("鎿嶄綔澶囨敞");
+
+            b.Property(x => x.DeleteRemark)
+              .HasMaxLength(256)
+              .IsRequired(false)
+              .HasComment("鍒犻櫎澶囨敞");
+
+            b.Property(x => x.IsDisabled)
+                .IsRequired(false)
+                .HasDefaultValue(false)
+                .HasComment("鏄惁绂佺敤");
+
+            b.Property(x => x.ExtraField1)
+              .HasMaxLength(256)
+              .IsRequired(false)
+              .HasComment("鎵╁睍瀛楁1");
+
+            b.Property(x => x.ExtraField2)
+               .HasMaxLength(256)
+               .IsRequired(false)
+               .HasComment("鎵╁睍瀛楁2");
+
+            b.Property(x => x.ExtraField3)
+             .HasMaxLength(256)
+             .IsRequired(false)
+             .HasComment("鎵╁睍瀛楁3");
+
+        }
+    }
+}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/EntityTypeBuilderExtensionsForRecord.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/EntityTypeBuilderExtensionsForRecord.cs
new file mode 100644
index 0000000..a856b77
--- /dev/null
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/EntityTypeBuilderExtensionsForRecord.cs
@@ -0,0 +1,96 @@
+锘縰sing Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CMS.Plugin.MyExtension.Domain
+{
+    /// <summary>
+    /// 鐢ㄤ簬鎵╁睍 EntityTypeBuilder 鐨勯潤鎬佺被锛屾彁渚涢拡瀵圭户鎵胯嚜 MyFullAuditedAggregateRoot<Guid> 鐨勫疄浣撶被鍨嬬殑閰嶇疆鎵╁睍鏂规硶(璁板綍琛ㄤ笓鐢�)
+    /// </summary>
+    public static class EntityTypeBuilderExtensionsForRecord
+    {
+        /// <summary>
+        /// 閽堝缁ф壙鑷� MyFullAuditedAggregateRoot<Guid> 鐨勫疄浣撶被鍨嬶紝閰嶇疆鍏跺叕鍏卞睘鎬�
+        /// </summary>
+        /// <typeparam name="TEntity">缁ф壙鑷� MyFullAuditedAggregateRoot<Guid> 鐨勫疄浣撶被鍨�</typeparam>
+        /// <param name="b">EntityTypeBuilder<TEntity> 瀹炰緥锛岀敤浜庨厤缃疄浣撶殑灞炴��</param>
+        public static void ConfigureMyCmsEntityForRecord<TEntity>(this EntityTypeBuilder<TEntity> b) where TEntity : MyFullAuditedAggregateRootForRecord<Guid>
+        {
+            b.Property(x => x.CreatorId)
+             .HasMaxLength(36)
+             .IsRequired(false)
+             .HasComment("鍒涘缓浜篒D");
+
+            b.Property(x => x.CreatorName)
+                .HasMaxLength(64)
+                .IsRequired(false)
+                .HasComment("鍒涘缓浜�");
+
+            b.Property(x => x.CreationTime)
+                .IsRequired()
+                .HasComment("鍒涘缓鏃堕棿");
+
+
+            b.Property(x => x.LastModifierId)
+                .HasMaxLength(36)
+                .IsRequired(false)
+                .HasComment("淇敼浜篒D");
+
+            b.Property(x => x.LastModificationTime)
+                .IsRequired(false)
+                .HasComment("淇敼鏃堕棿");
+
+            b.Property(x => x.IsDeleted)
+                .IsRequired()
+                .HasComment("鏄惁鍒犻櫎");
+
+            b.Property(x => x.DeleterId)
+                .HasMaxLength(36)
+                .IsRequired(false)
+                .HasComment("鍒犻櫎浜篒D");
+
+            b.Property(x => x.DeletionTime)
+                .IsRequired(false)
+                .HasComment("鍒犻櫎鏃堕棿");
+
+            b.Property(x => x.ExtraProperties)
+                .IsRequired(false)
+                .HasComment("鎵╁睍灞炴��");
+
+            b.Property(x => x.ConcurrencyStamp)
+                .IsRequired(false)
+                .HasMaxLength(40)
+                .HasComment("骞跺彂鎴�");
+
+            b.Property(x => x.Sort)
+                .HasDefaultValue(0)
+                .HasComment("鎺掑簭");
+
+            b.Property(x => x.Remark)
+                .HasMaxLength(256)
+                .IsRequired(false)
+                .HasComment("澶囨敞");
+
+
+            b.Property(x => x.ExtraField1)
+              .HasMaxLength(256)
+              .IsRequired(false)
+              .HasComment("鎵╁睍瀛楁1");
+
+            b.Property(x => x.ExtraField2)
+               .HasMaxLength(256)
+               .IsRequired(false)
+               .HasComment("鎵╁睍瀛楁2");
+
+            b.Property(x => x.ExtraField3)
+             .HasMaxLength(256)
+             .IsRequired(false)
+             .HasComment("鎵╁睍瀛楁3");
+
+        }
+    }
+}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/MyFullAuditedAggregateRoot.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/MyFullAuditedAggregateRoot.cs
new file mode 100644
index 0000000..3808e5a
--- /dev/null
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/MyFullAuditedAggregateRoot.cs
@@ -0,0 +1,136 @@
+锘縰sing System;
+using Volo.Abp.Auditing;
+using Volo.Abp.Domain.Entities.Auditing;
+
+namespace CMS.Plugin.MyExtension.Domain;
+
+
+/// <summary>
+/// 鎴戞墿灞曠殑瀹炰綋绫诲熀绫�
+/// </summary>
+[Serializable]
+public abstract class MyFullAuditedAggregateRoot : FullAuditedAggregateRoot
+{
+    /// <summary>
+    /// 鍒涘缓浜�
+    /// </summary>
+    public virtual string? CreatorName { get; set; }
+
+    /// <summary>
+    /// 淇敼浜�
+    /// </summary>
+    public virtual string? LastModifierName { get; set; }
+
+    /// <summary>
+    /// 鎿嶄綔澶囨敞
+    /// </summary>
+    public virtual string? OperationRemark { get; set; }
+
+    /// <summary>
+    /// 鍒犻櫎澶囨敞
+    /// </summary>
+    public virtual string? DeleteRemark { get; set; }
+
+
+    /// <summary>
+    /// 鎺掑簭
+    /// </summary>
+    public virtual int Sort { get; set; }
+
+    /// <summary>
+    /// 澶囨敞
+    /// </summary>
+    public virtual string? Remark { get; set; }
+
+    /// <summary>
+    /// 鏄惁绂佺敤
+    /// </summary>
+    public virtual bool? IsDisabled { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁1
+    /// </summary>
+    public virtual string? ExtraField1 { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁2
+    /// </summary>
+    public virtual string? ExtraField2 { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁3
+    /// </summary>
+    public virtual string? ExtraField3 { get; set; }
+
+
+}
+
+/// <summary>
+/// 鎴戞墿灞曠殑瀹炰綋绫诲熀绫�
+/// </summary>
+/// <typeparam name="TKey"></typeparam>
+[Serializable]
+public abstract class MyFullAuditedAggregateRoot<TKey> : FullAuditedAggregateRoot<TKey>
+{
+    /// <summary>
+    /// 鍒涘缓浜�
+    /// </summary>
+    public virtual string? CreatorName { get; set; }
+
+    /// <summary>
+    /// 淇敼浜�
+    /// </summary>
+    public virtual string? LastModifierName { get; set; }
+
+    /// <summary>
+    /// 鎿嶄綔澶囨敞
+    /// </summary>
+    public virtual string? OperationRemark { get; set; }
+
+    /// <summary>
+    /// 鍒犻櫎澶囨敞
+    /// </summary>
+    public virtual string? DeleteRemark { get; set; }
+
+    /// <summary>
+    /// 鎺掑簭
+    /// </summary>
+    public virtual int Sort { get; set; }
+
+    /// <summary>
+    /// 澶囨敞
+    /// </summary>
+    public virtual string? Remark { get; set; }
+
+    /// <summary>
+    /// 鏄惁绂佺敤
+    /// </summary>
+    public virtual bool? IsDisabled { get; set; }
+
+
+    /// <summary>
+    /// 鎵╁睍瀛楁1
+    /// </summary>
+    public virtual string? ExtraField1 { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁2
+    /// </summary>
+    public virtual string? ExtraField2 { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁3
+    /// </summary>
+    public virtual string? ExtraField3 { get; set; }
+
+    protected MyFullAuditedAggregateRoot()
+    {
+
+    }
+
+    protected MyFullAuditedAggregateRoot(TKey id)
+    : base(id)
+    {
+
+    }
+}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/MyFullAuditedAggregateRootForRecord.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/MyFullAuditedAggregateRootForRecord.cs
new file mode 100644
index 0000000..b12e924
--- /dev/null
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/MyExtension/MyFullAuditedAggregateRootForRecord.cs
@@ -0,0 +1,94 @@
+锘縰sing System;
+using Volo.Abp.Auditing;
+using Volo.Abp.Domain.Entities.Auditing;
+
+namespace CMS.Plugin.MyExtension.Domain;
+
+
+/// <summary>
+/// 鎴戞墿灞曠殑瀹炰綋绫诲熀绫�(璁板綍琛ㄤ笓鐢�)
+/// </summary>
+[Serializable]
+public abstract class MyFullAuditedAggregateRootForRecord : FullAuditedAggregateRoot
+{
+    /// <summary>
+    /// 鍒涘缓浜�
+    /// </summary>
+    public virtual string? CreatorName { get; set; }
+
+    /// <summary>
+    /// 鎺掑簭
+    /// </summary>
+    public virtual int Sort { get; set; }
+
+    /// <summary>
+    /// 澶囨敞
+    /// </summary>
+    public virtual string? Remark { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁1
+    /// </summary>
+    public virtual string? ExtraField1 { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁2
+    /// </summary>
+    public virtual string? ExtraField2 { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁3
+    /// </summary>
+    public virtual string? ExtraField3 { get; set; }
+
+
+}
+
+/// <summary>
+/// 鎴戞墿灞曠殑瀹炰綋绫诲熀绫�(璁板綍琛ㄤ笓鐢�)
+/// </summary>
+/// <typeparam name="TKey"></typeparam>
+[Serializable]
+public abstract class MyFullAuditedAggregateRootForRecord<TKey> : FullAuditedAggregateRoot<TKey>
+{
+    /// <summary>
+    /// 鍒涘缓浜�
+    /// </summary>
+    public virtual string? CreatorName { get; set; }
+
+    /// <summary>
+    /// 鎺掑簭
+    /// </summary>
+    public virtual int Sort { get; set; }
+
+    /// <summary>
+    /// 澶囨敞
+    /// </summary>
+    public virtual string? Remark { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁1
+    /// </summary>
+    public virtual string? ExtraField1 { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁2
+    /// </summary>
+    public virtual string? ExtraField2 { get; set; }
+
+    /// <summary>
+    /// 鎵╁睍瀛楁3
+    /// </summary>
+    public virtual string? ExtraField3 { get; set; }
+
+    protected MyFullAuditedAggregateRootForRecord()
+    {
+
+    }
+
+    protected MyFullAuditedAggregateRootForRecord(TKey id)
+    : base(id)
+    {
+
+    }
+}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/WorkPlan/WorkPlan.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/WorkPlan/WorkPlan.cs
index 40c8562..3d22889 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/WorkPlan/WorkPlan.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/WorkPlan/WorkPlan.cs
@@ -1,3 +1,4 @@
+using CMS.Plugin.MyExtension.Domain;
 using Microsoft.EntityFrameworkCore;
 using System.ComponentModel.DataAnnotations.Schema;
 using Volo.Abp.Domain.Entities.Auditing;
@@ -7,18 +8,105 @@
     /// <summary>
     /// 浣滀笟璁″垝琛�
     /// </summary>
-    public class WorkPlan : FullAuditedAggregateRoot<Guid>
+    public class WorkPlan : MyFullAuditedAggregateRoot<Guid>
     {
         /// <summary>
         /// 浠诲姟缂栫爜
         /// </summary>
         public string TaskCode { get; set; }
 
-        /// <summary>
-        /// 鍘熸枡缂栧彿
-        /// </summary>
-        public string OrgMaterialCode { get; set; }
+        #region 鍘熸枡绠′俊鎭�
 
+        ///// <summary>
+        ///// 鍘熸枡缂栧彿
+        ///// </summary>
+        //public string OrgMaterialCode { get; set; }
+
+        /// <summary>
+        /// 鍘熸枡鏍囪瘑
+        /// </summary>
+        public string DataIdentifier { get; set; }
+
+        /// <summary>
+        /// 鍘熸枡鍨嬪彿
+        /// </summary>
+        public string MaterialMode { get; set; }
+
+
+        #endregion
+
+
+        #region 鎵撶爜
+
+        /// <summary>
+        /// 闀垮害(mm)
+        /// </summary>
+        public decimal Length { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜鍐呭
+        /// </summary>
+        public string MarkingContent { get; set; }
+
+        /// <summary>
+        /// 鎵撶爜浣嶇疆
+        /// </summary>
+        public decimal MarkingPosition { get; set; }
+
+        #endregion
+
+        #region 鍒囧壊
+
+        ///// <summary>
+        ///// 鍒囧壊鏂囦欢
+        ///// </summary>
+        //public string CuttingFile { get; set; }
+
+        /// <summary>
+        /// 鍒囧壊浣嶇疆
+        /// </summary>
+        public decimal CuttingPosition { get; set; }
+
+        /// <summary>
+        /// 绠℃鏁伴噺
+        /// </summary>
+        public int Quantity { get; set; }
+
+        #endregion
+
+        #region 瑁呴厤銆佺剨鎺�
+
+        /// <summary>
+        /// 娉曞叞鍘氬害(mm)
+        /// </summary>
+        public decimal FlangeThickness { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鐩村緞(mm)
+        /// </summary>
+        public decimal FlangeInnerDiameter { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍏О鍘嬪姏
+        /// </summary>
+        public string WeldingHeatInput { get; set; }
+
+        /// <summary>
+        /// 娉曞叞鍐茬爜鍐呭
+        /// </summary>
+        public string PipeAllowableStress { get; set; }
+
+        /// <summary>
+        /// 濂楃闀垮害(mm)
+        /// </summary>
+        public decimal PipeDiameter { get; set; }
+
+        /// <summary>
+        /// 濂楃鐩村緞(mm)
+        /// </summary>
+        public decimal PipeWallThickness { get; set; }
+
+        #endregion
 
         /// <summary>
         /// 宸ュ巶浠g爜
@@ -60,13 +148,10 @@
         /// </summary>
         public string PreSerialNumber { get; set; }
 
-        /// <summary>
-        /// 鍘熸枡鏍囪瘑
-        /// </summary>
-        public string DataIdentifier { get; set; }
+
 
         /// <summary>
-        /// 绠¤鏍肩爜
+        /// 绠℃缂栫爜
         /// </summary>
         public string PipeSpecCode { get; set; }
 
@@ -76,142 +161,38 @@
         public string PipeSectionName { get; set; }
 
         /// <summary>
-        /// 澶栧緞
+        /// 澶栧緞(mm)
         /// </summary>
-        public string OuterDiameter { get; set; }
+        public decimal OuterDiameter { get; set; }
 
         /// <summary>
-        /// 鍧″彛
+        /// 澹佸帤(mm)
         /// </summary>
-        public string Bevel { get; set; }
+        public decimal Thickness { get; set; }
 
         /// <summary>
         /// 鏉愯川
         /// </summary>
         public string Material { get; set; }
 
-        /// <summary>
-        /// 闀垮害
-        /// </summary>
-        public string Length { get; set; }
 
         /// <summary>
-        /// 鎵撳瓟浣�
-        /// </summary>
-        public string DrillingPosition { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮
-        /// </summary>
-        public string Intersecting { get; set; }
-
-        /// <summary>
-        /// 鎺ュ彛瑕佹眰
-        /// </summary>
-        public string InterfaceRequirement { get; set; }
-
-        /// <summary>
-        /// 鏄惁鏈変富绛�
+        /// 鏄惁涓绘敮绠�
         /// </summary>
         public bool HasMainSignature { get; set; }
 
-        /// <summary>
-        /// 鍖呮嫭鏁伴噺
-        /// </summary>
-        public int Quantity { get; set; }
+
+
+        ///// <summary>
+        ///// 鎴愬搧绠′欢鍥�
+        ///// </summary>
+        //public string FinishedProductScale { get; set; }
+
+
+
 
         /// <summary>
-        /// 鎵撶爜鍐呭
-        /// </summary>
-        public string MarkingContent { get; set; }
-
-        /// <summary>
-        /// 鍒囧壊鏂囦欢
-        /// </summary>
-        public string CuttingFile { get; set; }
-
-        /// <summary>
-        /// 鏀寰�
-        /// </summary>
-        public string BranchOuterDiameter { get; set; }
-
-        /// <summary>
-        /// 鏀澹佸帤
-        /// </summary>
-        public string BranchWallThickness { get; set; }
-
-        /// <summary>
-        /// 鏀鏉愯川
-        /// </summary>
-        public string BranchMaterial { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛鏇茬巼鍗婂緞
-        /// </summary>
-        public string BranchPortRadius { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑙掑害
-        /// </summary>
-        public string BranchPortAngle { get; set; }
-
-        /// <summary>
-        /// 鏀绔彛瑕佹眰
-        /// </summary>
-        public string BranchPortRequirement { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍨�
-        /// </summary>
-        public string IntersectingLineType { get; set; }
-
-        /// <summary>
-        /// 鐩歌疮绾跨被鍒�
-        /// </summary>
-        public string IntersectingLineCategory { get; set; }
-
-        /// <summary>
-        /// 鎴愬搧鍥惧箙
-        /// </summary>
-        public string FinishedProductScale { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍘氬害
-        /// </summary>
-        public string FlangeThickness { get; set; }
-
-        /// <summary>
-        /// 娉曞叞鍐呭緞
-        /// </summary>
-        public string FlangeInnerDiameter { get; set; }
-
-        /// <summary>
-        /// 鐒婃帴鐑緭鍏�
-        /// </summary>
-        public string WeldingHeatInput { get; set; }
-
-        /// <summary>
-        /// 绠¢亾鍏佽搴斿姏
-        /// </summary>
-        public string PipeAllowableStress { get; set; }
-
-        /// <summary>
-        /// 绠″緞
-        /// </summary>
-        public string PipeDiameter { get; set; }
-
-        /// <summary>
-        /// 绠¢亾澹佸帤
-        /// </summary>
-        public string PipeWallThickness { get; set; }
-
-        /// <summary>
-        /// VR鏁版嵁
-        /// </summary>
-        public string VRData { get; set; }
-
-        /// <summary>
-        /// 宸ヨ壓璺嚎缂栧彿
+        /// 宸ヨ壓娴佸悜缂栧彿
         /// </summary>
         public string ProcessRouteNumber { get; set; }
 
@@ -226,42 +207,14 @@
         public DateTime? PlannedEndTime { get; set; }
 
         /// <summary>
-        /// 鏃堕棿淇℃伅
+        /// 鐝粍淇℃伅
         /// </summary>
-        public string TimeInfo { get; set; }
-
+        public string TeamInfo { get; set; }
 
         /// <summary>
-        /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��
+        /// 鏃堕棿鎴�
         /// </summary>
-        public string RedundantField1 { get; set; }
-
-        /// <summary>
-        /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��
-        /// </summary>
-        public string RedundantField2 { get; set; }
-
-        /// <summary>
-        /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��
-        /// </summary>
-        public string RedundantField3 { get; set; }
-
-
-
-        /// <summary>
-        /// 鎺掑簭
-        /// </summary>
-        public virtual int Sort { get; set; }
-
-        /// <summary>
-        /// 澶囨敞
-        /// </summary>
-        public virtual string Remark { get; set; }
-
-        /// <summary>
-        /// 鏄惁绂佺敤
-        /// </summary>
-        public virtual bool? IsDisabled { get; set; }
+        public string Timestamp { get; set; }
 
         /// <summary>
         /// Adjusts the sort.
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WorkPlan.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WorkPlan.cs
index 36d28bf..e9d55d9 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WorkPlan.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WorkPlan.cs
@@ -1,4 +1,6 @@
+using CMS.Plugin.MyExtension.Domain;
 using CMS.Plugin.PipeLineLems.Domain;
+using CMS.Plugin.PipeLineLems.Domain.Shared.MyTestEntityNames;
 using CMS.Plugin.PipeLineLems.Domain.WorkPlan;
 using Microsoft.EntityFrameworkCore;
 using Volo.Abp;
@@ -9,7 +11,7 @@
 /// <summary>
 /// EfCore鎵╁睍
 /// </summary>
-public  static partial class CMSPluginEfCoreExtensions
+public static partial class CMSPluginEfCoreExtensions
 {
     /// <summary>
     /// Includes the details.
@@ -42,58 +44,51 @@
 
             b.ConfigureByConvention();
 
-            //Properties
-            b.Property(x => x.TaskCode).HasMaxLength(64).IsRequired().HasComment("浠诲姟缂栫爜");
-            b.Property(x => x.OrgMaterialCode).HasMaxLength(64).IsRequired().HasComment("鍘熸枡缂栧彿");
-            b.Property(x => x.Sort).HasComment("鎺掑簭");
-            b.Property(x => x.IsDisabled).IsRequired(false).HasComment("鏄惁绂佺敤");
-            b.Property(x => x.Remark).HasMaxLength(256).IsRequired(false).HasComment("澶囨敞");
+            // Configure properties
+            b.Property(x => x.TaskCode).HasMaxLength(256).IsRequired().HasComment("浠诲姟缂栫爜");
+            b.Property(x => x.DataIdentifier).HasMaxLength(256).HasComment("鍘熸枡鏍囪瘑");
+            b.Property(x => x.MaterialMode).HasMaxLength(256).HasComment("鍘熸枡鍨嬪彿");
+            b.Property(x => x.Length).HasColumnType("decimal(18,2)").HasComment("闀垮害(mm)");
+            b.Property(x => x.MarkingContent).HasMaxLength(1024).HasComment("鎵撶爜鍐呭");
 
-            b.Property(x => x.OrgMaterialCode).HasMaxLength(64).HasComment("鍘熸枡缂栧彿");
-            b.Property(x => x.FactoryCode).HasMaxLength(64).HasComment("宸ュ巶浠g爜");
-            b.Property(x => x.ProductCode).HasMaxLength(64).HasComment("浜у搧浠g爜");
-            b.Property(x => x.WorkstationCode).HasMaxLength(64).HasComment("宸ヤ綅浠g爜");
-            b.Property(x => x.EquipmentCode).HasMaxLength(64).HasComment("璁惧浠g爜");
-            b.Property(x => x.WorkpieceName).HasMaxLength(64).HasComment("宸ヤ欢鍚嶇О");
-            b.Property(x => x.ProcessName).HasMaxLength(64).HasComment("宸ュ簭鍚嶇О");
-            b.Property(x => x.PipeFittingCode).HasMaxLength(64).HasComment("绠′欢缂栫爜");
-            b.Property(x => x.PreSerialNumber).HasMaxLength(64).HasComment("椤哄簭鍙�");
-            b.Property(x => x.DataIdentifier).HasMaxLength(64).HasComment("鍘熸枡鏍囪瘑");
-            b.Property(x => x.PipeSpecCode).HasMaxLength(64).HasComment("绠¤鏍肩爜");
-            b.Property(x => x.PipeSectionName).HasMaxLength(64).HasComment("绠℃鍚嶇О");
-            b.Property(x => x.OuterDiameter).HasMaxLength(64).HasComment("澶栧緞");
-            b.Property(x => x.Bevel).HasMaxLength(64).HasComment("鍧″彛");
-            b.Property(x => x.Material).HasMaxLength(64).HasComment("鏉愯川");
-            b.Property(x => x.Length).HasMaxLength(64).HasComment("闀垮害");
-            b.Property(x => x.DrillingPosition).HasMaxLength(64).HasComment("鎵撳瓟浣�");
-            b.Property(x => x.Intersecting).HasMaxLength(64).HasComment("鐩歌疮");
-            b.Property(x => x.InterfaceRequirement).HasMaxLength(64).HasComment("鎺ュ彛瑕佹眰");
-            b.Property(x => x.HasMainSignature).HasComment("鏄惁鏈変富绛�");
-            b.Property(x => x.Quantity).HasComment("鍖呮嫭鏁伴噺");
-            b.Property(x => x.MarkingContent).HasMaxLength(64).HasComment("鎵撶爜鍐呭");
-            b.Property(x => x.CuttingFile).HasMaxLength(64).HasComment("鍒囧壊鏂囦欢");
-            b.Property(x => x.BranchOuterDiameter).HasMaxLength(64).HasComment("鏀寰�");
-            b.Property(x => x.BranchWallThickness).HasMaxLength(64).HasComment("鏀澹佸帤");
-            b.Property(x => x.BranchMaterial).HasMaxLength(64).HasComment("鏀鏉愯川");
-            b.Property(x => x.BranchPortRadius).HasMaxLength(64).HasComment("鏀绔彛鏇茬巼鍗婂緞");
-            b.Property(x => x.BranchPortAngle).HasMaxLength(64).HasComment("鏀绔彛瑙掑害");
-            b.Property(x => x.BranchPortRequirement).HasMaxLength(64).HasComment("鏀绔彛瑕佹眰");
-            b.Property(x => x.IntersectingLineType).HasMaxLength(64).HasComment("鐩歌疮绾跨被鍨�");
-            b.Property(x => x.IntersectingLineCategory).HasMaxLength(64).HasComment("鐩歌疮绾跨被鍒�");
-            b.Property(x => x.FinishedProductScale).HasMaxLength(64).HasComment("鎴愬搧鍥惧箙");
-            b.Property(x => x.FlangeThickness).HasMaxLength(64).HasComment("娉曞叞鍘氬害");
-            b.Property(x => x.FlangeInnerDiameter).HasMaxLength(64).HasComment("娉曞叞鍐呭緞");
-            b.Property(x => x.WeldingHeatInput).HasMaxLength(64).HasComment("鐒婃帴鐑緭鍏�");
-            b.Property(x => x.PipeAllowableStress).HasMaxLength(64).HasComment("绠¢亾鍏佽搴斿姏");
-            b.Property(x => x.PipeDiameter).HasMaxLength(64).HasComment("绠″緞");
-            b.Property(x => x.PipeWallThickness).HasMaxLength(64).HasComment("绠¢亾澹佸帤");
-            b.Property(x => x.VRData).HasMaxLength(64).HasComment("VR鏁版嵁");
-            b.Property(x => x.ProcessRouteNumber).HasMaxLength(64).HasComment("宸ヨ壓璺嚎缂栧彿");
+            b.Property(x => x.Quantity).HasComment("绠℃鏁伴噺");
+            b.Property(x => x.FlangeThickness).HasColumnType("decimal(18,2)").HasComment("娉曞叞鍘氬害(mm)");
+            b.Property(x => x.FlangeInnerDiameter).HasColumnType("decimal(18,2)").HasComment("娉曞叞鐩村緞(mm)");
+            b.Property(x => x.WeldingHeatInput).HasMaxLength(256).HasComment("娉曞叞鍏О鍘嬪姏");
+            b.Property(x => x.PipeAllowableStress).HasMaxLength(256).HasComment("娉曞叞鍐茬爜鍐呭");
+            b.Property(x => x.PipeDiameter).HasColumnType("decimal(18,2)").HasComment("濂楃闀垮害(mm)");
+            b.Property(x => x.PipeWallThickness).HasColumnType("decimal(18,2)").HasComment("濂楃鐩村緞(mm)");
+            b.Property(x => x.FactoryCode).HasMaxLength(256).HasComment("宸ュ巶浠g爜");
+            b.Property(x => x.ProductCode).HasMaxLength(256).HasComment("浜у搧浠g爜");
+            b.Property(x => x.WorkstationCode).HasMaxLength(256).HasComment("宸ヤ綅浠g爜");
+            b.Property(x => x.EquipmentCode).HasMaxLength(256).HasComment("璁惧浠g爜");
+            b.Property(x => x.WorkpieceName).HasMaxLength(256).HasComment("宸ヤ欢鍚嶇О");
+            b.Property(x => x.ProcessName).HasMaxLength(256).HasComment("宸ュ簭鍚嶇О");
+            b.Property(x => x.PipeFittingCode).HasMaxLength(256).HasComment("绠′欢缂栫爜");
+            b.Property(x => x.PreSerialNumber).HasMaxLength(256).HasComment("椤哄簭鍙�");
+            b.Property(x => x.PipeSpecCode).HasMaxLength(256).HasComment("绠℃缂栫爜");
+            b.Property(x => x.PipeSectionName).HasMaxLength(256).HasComment("绠℃鍚嶇О");
+            b.Property(x => x.OuterDiameter).HasColumnType("decimal(18,2)").HasComment("澶栧緞(mm)");
+            b.Property(x => x.Thickness).HasColumnType("decimal(18,2)").HasComment("澹佸帤(mm)");
+            b.Property(x => x.Material).HasMaxLength(256).HasComment("鏉愯川");
+            b.Property(x => x.HasMainSignature).HasComment("鏄惁涓绘敮绠�");
+
+            b.Property(x => x.MarkingPosition).HasColumnType("decimal(18,2)").HasComment("鎵撶爜浣嶇疆");
+            b.Property(x => x.CuttingPosition).HasColumnType("decimal(18,2)").HasComment("鍒囧壊浣嶇疆");
+
+            b.Property(x => x.ProcessRouteNumber).HasMaxLength(256).HasComment("宸ヨ壓娴佸悜缂栧彿");
             b.Property(x => x.PlannedStartTime).HasComment("璁″垝寮�濮嬫椂闂�");
             b.Property(x => x.PlannedEndTime).HasComment("璁″垝瀹屾垚鏃堕棿");
-            b.Property(x => x.TimeInfo).HasMaxLength(64).HasComment("鏃堕棿淇℃伅");
+            b.Property(x => x.TeamInfo).HasMaxLength(256).HasComment("鐝粍淇℃伅");
+            b.Property(x => x.Timestamp).HasMaxLength(256).HasComment("鏃堕棿鎴�");
 
-            b.HasIndex(u => u.TaskCode);
+            b.ConfigureMyCmsEntity();
+
+            // Configure indexes
+            b.HasIndex(u => u.TaskCode).IsUnique();
+            b.HasIndex(u => u.DataIdentifier);
+            b.HasIndex(u => u.PlannedStartTime);
+            b.HasIndex(u => u.PlannedEndTime);
 
             b.ApplyObjectExtensionMappings();
         });
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreWorkPlanRepository.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreWorkPlanRepository.cs
index a87d305..cf8294f 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreWorkPlanRepository.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreWorkPlanRepository.cs
@@ -35,7 +35,7 @@
         return await (await GetDbSetAsync()) 
             .IncludeDetails() 
             .Where(x => !x.IsDeleted) 
-            .OrderBy(t => t.Sort) 
+            .OrderByDescending(x=>x.CreationTime)  
             .FirstOrDefaultAsync(t => t.TaskCode == name, GetCancellationToken(cancellationToken)); 
     } 
  
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250427055701_InitialCreate.Designer.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250427055701_InitialCreate.Designer.cs
deleted file mode 100644
index e48ca2d..0000000
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250427055701_InitialCreate.Designer.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-锘�// <auto-generated />
-using System;
-using CMS.Plugin.PipeLineLems.MySQL;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Volo.Abp.EntityFrameworkCore;
-
-#nullable disable
-
-namespace CMS.Plugin.PipeLineLems.MySQL.Migrations
-{
-    [DbContext(typeof(CMSPluginDbContext))]
-    [Migration("20250427055701_InitialCreate")]
-    partial class InitialCreate
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
-                .HasAnnotation("ProductVersion", "6.0.16")
-                .HasAnnotation("Relational:MaxIdentifierLength", 64);
-
-            modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.MyTestEntityNames.MyTestEntityName", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("char(36)");
-
-                    b.Property<string>("Code")
-                        .IsRequired()
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("缂栫爜");
-
-                    b.Property<string>("ConcurrencyStamp")
-                        .IsConcurrencyToken()
-                        .HasMaxLength(40)
-                        .HasColumnType("varchar(40)")
-                        .HasColumnName("ConcurrencyStamp");
-
-                    b.Property<DateTime>("CreationTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("CreationTime");
-
-                    b.Property<Guid?>("CreatorId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("CreatorId");
-
-                    b.Property<Guid?>("DeleterId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("DeleterId");
-
-                    b.Property<DateTime?>("DeletionTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("DeletionTime");
-
-                    b.Property<string>("ExtraProperties")
-                        .HasColumnType("longtext")
-                        .HasColumnName("ExtraProperties");
-
-                    b.Property<bool>("IsDeleted")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("tinyint(1)")
-                        .HasDefaultValue(false)
-                        .HasColumnName("IsDeleted");
-
-                    b.Property<bool?>("IsDisabled")
-                        .HasColumnType("tinyint(1)")
-                        .HasComment("鏄惁绂佺敤");
-
-                    b.Property<DateTime?>("LastModificationTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("LastModificationTime");
-
-                    b.Property<Guid?>("LastModifierId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("LastModifierId");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鍚嶇О");
-
-                    b.Property<string>("Remark")
-                        .HasMaxLength(256)
-                        .HasColumnType("varchar(256)")
-                        .HasComment("澶囨敞");
-
-                    b.Property<int>("Sort")
-                        .HasColumnType("int")
-                        .HasComment("鎺掑簭");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Name");
-
-                    b.ToTable("scms_mytestentitynames", (string)null);
-
-                    b.HasComment("MyTestEntityName");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250427055701_InitialCreate.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250427055701_InitialCreate.cs
deleted file mode 100644
index 5778e99..0000000
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250427055701_InitialCreate.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-锘縰sing System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace CMS.Plugin.PipeLineLems.MySQL.Migrations
-{
-    public partial class InitialCreate : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AlterDatabase()
-                .Annotation("MySql:CharSet", "utf8mb4");
-
-            migrationBuilder.CreateTable(
-                name: "scms_mytestentitynames",
-                columns: table => new
-                {
-                    Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
-                    Code = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "缂栫爜")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鍚嶇О")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    Sort = table.Column<int>(type: "int", nullable: false, comment: "鎺掑簭"),
-                    Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "澶囨敞")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "鏄惁绂佺敤"),
-                    ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
-                    CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
-                    LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
-                    LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
-                    IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
-                    DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
-                    DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_scms_mytestentitynames", x => x.Id);
-                },
-                comment: "MyTestEntityName")
-                .Annotation("MySql:CharSet", "utf8mb4");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_scms_mytestentitynames_Name",
-                table: "scms_mytestentitynames",
-                column: "Name");
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "scms_mytestentitynames");
-        }
-    }
-}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250507025649_Update1.Designer.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250507025649_Update1.Designer.cs
deleted file mode 100644
index dccb74c..0000000
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250507025649_Update1.Designer.cs
+++ /dev/null
@@ -1,403 +0,0 @@
-锘�// <auto-generated />
-using System;
-using CMS.Plugin.PipeLineLems.MySQL;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Volo.Abp.EntityFrameworkCore;
-
-#nullable disable
-
-namespace CMS.Plugin.PipeLineLems.MySQL.Migrations
-{
-    [DbContext(typeof(CMSPluginDbContext))]
-    [Migration("20250507025649_Update1")]
-    partial class Update1
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
-                .HasAnnotation("ProductVersion", "6.0.16")
-                .HasAnnotation("Relational:MaxIdentifierLength", 64);
-
-            modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.MyTestEntityNames.MyTestEntityName", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("char(36)");
-
-                    b.Property<string>("Code")
-                        .IsRequired()
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("缂栫爜");
-
-                    b.Property<string>("ConcurrencyStamp")
-                        .IsConcurrencyToken()
-                        .HasMaxLength(40)
-                        .HasColumnType("varchar(40)")
-                        .HasColumnName("ConcurrencyStamp");
-
-                    b.Property<DateTime>("CreationTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("CreationTime");
-
-                    b.Property<Guid?>("CreatorId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("CreatorId");
-
-                    b.Property<Guid?>("DeleterId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("DeleterId");
-
-                    b.Property<DateTime?>("DeletionTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("DeletionTime");
-
-                    b.Property<string>("ExtraProperties")
-                        .HasColumnType("longtext")
-                        .HasColumnName("ExtraProperties");
-
-                    b.Property<bool>("IsDeleted")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("tinyint(1)")
-                        .HasDefaultValue(false)
-                        .HasColumnName("IsDeleted");
-
-                    b.Property<bool?>("IsDisabled")
-                        .HasColumnType("tinyint(1)")
-                        .HasComment("鏄惁绂佺敤");
-
-                    b.Property<DateTime?>("LastModificationTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("LastModificationTime");
-
-                    b.Property<Guid?>("LastModifierId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("LastModifierId");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鍚嶇О");
-
-                    b.Property<string>("Remark")
-                        .HasMaxLength(256)
-                        .HasColumnType("varchar(256)")
-                        .HasComment("澶囨敞");
-
-                    b.Property<int>("Sort")
-                        .HasColumnType("int")
-                        .HasComment("鎺掑簭");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Name");
-
-                    b.ToTable("scms_mytestentitynames", (string)null);
-
-                    b.HasComment("MyTestEntityName");
-                });
-
-            modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.WmsAreas.WorkPlan", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("char(36)");
-
-                    b.Property<string>("Bevel")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鍧″彛");
-
-                    b.Property<string>("BranchMaterial")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀鏉愯川");
-
-                    b.Property<string>("BranchOuterDiameter")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀寰�");
-
-                    b.Property<string>("BranchPortAngle")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀绔彛瑙掑害");
-
-                    b.Property<string>("BranchPortRadius")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀绔彛鏇茬巼鍗婂緞");
-
-                    b.Property<string>("BranchPortRequirement")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀绔彛瑕佹眰");
-
-                    b.Property<string>("BranchWallThickness")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀澹佸帤");
-
-                    b.Property<string>("ConcurrencyStamp")
-                        .IsConcurrencyToken()
-                        .HasMaxLength(40)
-                        .HasColumnType("varchar(40)")
-                        .HasColumnName("ConcurrencyStamp");
-
-                    b.Property<DateTime>("CreationTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("CreationTime");
-
-                    b.Property<Guid?>("CreatorId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("CreatorId");
-
-                    b.Property<string>("CuttingFile")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鍒囧壊鏂囦欢");
-
-                    b.Property<string>("DataIdentifier")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鍘熸枡鏍囪瘑");
-
-                    b.Property<Guid?>("DeleterId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("DeleterId");
-
-                    b.Property<DateTime?>("DeletionTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("DeletionTime");
-
-                    b.Property<string>("DrillingPosition")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鎵撳瓟浣�");
-
-                    b.Property<string>("EquipmentCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("璁惧浠g爜");
-
-                    b.Property<string>("ExtraProperties")
-                        .HasColumnType("longtext")
-                        .HasColumnName("ExtraProperties");
-
-                    b.Property<string>("FactoryCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("宸ュ巶浠g爜");
-
-                    b.Property<string>("FinishedProductScale")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鎴愬搧鍥惧箙");
-
-                    b.Property<string>("FlangeInnerDiameter")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("娉曞叞鍐呭緞");
-
-                    b.Property<string>("FlangeThickness")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("娉曞叞鍘氬害");
-
-                    b.Property<bool>("HasMainSignature")
-                        .HasColumnType("tinyint(1)")
-                        .HasComment("鏄惁鏈変富绛�");
-
-                    b.Property<string>("InterfaceRequirement")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鎺ュ彛瑕佹眰");
-
-                    b.Property<string>("Intersecting")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鐩歌疮");
-
-                    b.Property<string>("IntersectingLineCategory")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鐩歌疮绾跨被鍒�");
-
-                    b.Property<string>("IntersectingLineType")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鐩歌疮绾跨被鍨�");
-
-                    b.Property<bool>("IsDeleted")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("tinyint(1)")
-                        .HasDefaultValue(false)
-                        .HasColumnName("IsDeleted");
-
-                    b.Property<bool?>("IsDisabled")
-                        .HasColumnType("tinyint(1)")
-                        .HasComment("鏄惁绂佺敤");
-
-                    b.Property<DateTime?>("LastModificationTime")
-                        .HasColumnType("datetime(6)")
-                        .HasColumnName("LastModificationTime");
-
-                    b.Property<Guid?>("LastModifierId")
-                        .HasColumnType("char(36)")
-                        .HasColumnName("LastModifierId");
-
-                    b.Property<string>("Length")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("闀垮害");
-
-                    b.Property<string>("MarkingContent")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鎵撶爜鍐呭");
-
-                    b.Property<string>("Material")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏉愯川");
-
-                    b.Property<string>("OrgMaterialCode")
-                        .IsRequired()
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鍘熸枡缂栧彿");
-
-                    b.Property<string>("OuterDiameter")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("澶栧緞");
-
-                    b.Property<string>("PipeAllowableStress")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠¢亾鍏佽搴斿姏");
-
-                    b.Property<string>("PipeDiameter")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠″緞");
-
-                    b.Property<string>("PipeFittingCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠′欢缂栫爜");
-
-                    b.Property<string>("PipeSectionName")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠℃鍚嶇О");
-
-                    b.Property<string>("PipeSpecCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠¤鏍肩爜");
-
-                    b.Property<string>("PipeWallThickness")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠¢亾澹佸帤");
-
-                    b.Property<DateTime?>("PlannedEndTime")
-                        .HasColumnType("datetime(6)")
-                        .HasComment("璁″垝瀹屾垚鏃堕棿");
-
-                    b.Property<DateTime?>("PlannedStartTime")
-                        .HasColumnType("datetime(6)")
-                        .HasComment("璁″垝寮�濮嬫椂闂�");
-
-                    b.Property<string>("PreSerialNumber")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("椤哄簭鍙�");
-
-                    b.Property<string>("ProcessName")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("宸ュ簭鍚嶇О");
-
-                    b.Property<string>("ProcessRouteNumber")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("宸ヨ壓璺嚎缂栧彿");
-
-                    b.Property<string>("ProductCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("浜у搧浠g爜");
-
-                    b.Property<int>("Quantity")
-                        .HasColumnType("int")
-                        .HasComment("鍖呮嫭鏁伴噺");
-
-                    b.Property<string>("RedundantField1")
-                        .HasColumnType("longtext");
-
-                    b.Property<string>("RedundantField2")
-                        .HasColumnType("longtext");
-
-                    b.Property<string>("RedundantField3")
-                        .HasColumnType("longtext");
-
-                    b.Property<string>("Remark")
-                        .HasMaxLength(256)
-                        .HasColumnType("varchar(256)")
-                        .HasComment("澶囨敞");
-
-                    b.Property<int>("Sort")
-                        .HasColumnType("int")
-                        .HasComment("鎺掑簭");
-
-                    b.Property<string>("TaskCode")
-                        .IsRequired()
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("浠诲姟缂栫爜");
-
-                    b.Property<string>("TimeInfo")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏃堕棿淇℃伅");
-
-                    b.Property<string>("VRData")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("VR鏁版嵁");
-
-                    b.Property<string>("WeldingHeatInput")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鐒婃帴鐑緭鍏�");
-
-                    b.Property<string>("WorkpieceName")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("宸ヤ欢鍚嶇О");
-
-                    b.Property<string>("WorkstationCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("宸ヤ綅浠g爜");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TaskCode");
-
-                    b.ToTable("scms_workplans", (string)null);
-
-                    b.HasComment("WorkPlan");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250507025649_Update1.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250507025649_Update1.cs
deleted file mode 100644
index 0dad499..0000000
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250507025649_Update1.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-锘縰sing System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace CMS.Plugin.PipeLineLems.MySQL.Migrations
-{
-    public partial class Update1 : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.CreateTable(
-                name: "scms_workplans",
-                columns: table => new
-                {
-                    Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
-                    TaskCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "浠诲姟缂栫爜")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    OrgMaterialCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鍘熸枡缂栧彿")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    FactoryCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "宸ュ巶浠g爜")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    ProductCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "浜у搧浠g爜")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    WorkstationCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "宸ヤ綅浠g爜")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    EquipmentCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "璁惧浠g爜")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    WorkpieceName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "宸ヤ欢鍚嶇О")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    ProcessName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "宸ュ簭鍚嶇О")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    PipeFittingCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "绠′欢缂栫爜")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    PreSerialNumber = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "椤哄簭鍙�")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    DataIdentifier = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鍘熸枡鏍囪瘑")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    PipeSpecCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "绠¤鏍肩爜")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    PipeSectionName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "绠℃鍚嶇О")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    OuterDiameter = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "澶栧緞")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    Bevel = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鍧″彛")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    Material = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鏉愯川")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    Length = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "闀垮害")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    DrillingPosition = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鎵撳瓟浣�")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    Intersecting = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鐩歌疮")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    InterfaceRequirement = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鎺ュ彛瑕佹眰")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    HasMainSignature = table.Column<bool>(type: "tinyint(1)", nullable: false, comment: "鏄惁鏈変富绛�"),
-                    Quantity = table.Column<int>(type: "int", nullable: false, comment: "鍖呮嫭鏁伴噺"),
-                    MarkingContent = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鎵撶爜鍐呭")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    CuttingFile = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鍒囧壊鏂囦欢")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    BranchOuterDiameter = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鏀寰�")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    BranchWallThickness = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鏀澹佸帤")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    BranchMaterial = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鏀鏉愯川")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    BranchPortRadius = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鏀绔彛鏇茬巼鍗婂緞")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    BranchPortAngle = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鏀绔彛瑙掑害")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    BranchPortRequirement = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鏀绔彛瑕佹眰")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    IntersectingLineType = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鐩歌疮绾跨被鍨�")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    IntersectingLineCategory = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鐩歌疮绾跨被鍒�")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    FinishedProductScale = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鎴愬搧鍥惧箙")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    FlangeThickness = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "娉曞叞鍘氬害")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    FlangeInnerDiameter = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "娉曞叞鍐呭緞")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    WeldingHeatInput = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鐒婃帴鐑緭鍏�")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    PipeAllowableStress = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "绠¢亾鍏佽搴斿姏")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    PipeDiameter = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "绠″緞")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    PipeWallThickness = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "绠¢亾澹佸帤")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    VRData = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "VR鏁版嵁")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    ProcessRouteNumber = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "宸ヨ壓璺嚎缂栧彿")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    PlannedStartTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "璁″垝寮�濮嬫椂闂�"),
-                    PlannedEndTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "璁″垝瀹屾垚鏃堕棿"),
-                    TimeInfo = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鏃堕棿淇℃伅")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    RedundantField1 = table.Column<string>(type: "longtext", nullable: true)
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    RedundantField2 = table.Column<string>(type: "longtext", nullable: true)
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    RedundantField3 = table.Column<string>(type: "longtext", nullable: true)
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    Sort = table.Column<int>(type: "int", nullable: false, comment: "鎺掑簭"),
-                    Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "澶囨敞")
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "鏄惁绂佺敤"),
-                    ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
-                        .Annotation("MySql:CharSet", "utf8mb4"),
-                    CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
-                    CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
-                    LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
-                    LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
-                    IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
-                    DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
-                    DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_scms_workplans", x => x.Id);
-                },
-                comment: "WorkPlan")
-                .Annotation("MySql:CharSet", "utf8mb4");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_scms_workplans_TaskCode",
-                table: "scms_workplans",
-                column: "TaskCode");
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "scms_workplans");
-        }
-    }
-}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250510023811_Update1.Designer.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250510023811_Update1.Designer.cs
new file mode 100644
index 0000000..9b7b62a
--- /dev/null
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250510023811_Update1.Designer.cs
@@ -0,0 +1,385 @@
+锘�// <auto-generated />
+using System;
+using CMS.Plugin.PipeLineLems.MySQL;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+
+#nullable disable
+
+namespace CMS.Plugin.PipeLineLems.MySQL.Migrations
+{
+    [DbContext(typeof(CMSPluginDbContext))]
+    [Migration("20250510023811_Update1")]
+    partial class Update1
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
+                .HasAnnotation("ProductVersion", "6.0.16")
+                .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+            modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.MyTestEntityNames.MyTestEntityName", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("Code")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("缂栫爜");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("Name")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鍚嶇О");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int")
+                        .HasComment("鎺掑簭");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Name");
+
+                    b.ToTable("scms_mytestentitynames", (string)null);
+
+                    b.HasComment("MyTestEntityName");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.WorkPlan.WorkPlan", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp")
+                        .HasComment("骞跺彂鎴�");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime")
+                        .HasComment("鍒涘缓鏃堕棿");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasMaxLength(36)
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId")
+                        .HasComment("鍒涘缓浜篒D");
+
+                    b.Property<string>("CreatorName")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鍒涘缓浜�");
+
+                    b.Property<decimal>("CuttingPosition")
+                        .HasColumnType("decimal(65,30)");
+
+                    b.Property<string>("DataIdentifier")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍘熸枡鏍囪瘑");
+
+                    b.Property<string>("DeleteRemark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍒犻櫎澶囨敞");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasMaxLength(36)
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId")
+                        .HasComment("鍒犻櫎浜篒D");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime")
+                        .HasComment("鍒犻櫎鏃堕棿");
+
+                    b.Property<string>("EquipmentCode")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("璁惧浠g爜");
+
+                    b.Property<string>("ExtraField1")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁1");
+
+                    b.Property<string>("ExtraField2")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁2");
+
+                    b.Property<string>("ExtraField3")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁3");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties")
+                        .HasComment("鎵╁睍灞炴��");
+
+                    b.Property<string>("FactoryCode")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("宸ュ巶浠g爜");
+
+                    b.Property<decimal>("FlangeInnerDiameter")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("娉曞叞鐩村緞(mm)");
+
+                    b.Property<decimal>("FlangeThickness")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("娉曞叞鍘氬害(mm)");
+
+                    b.Property<bool>("HasMainSignature")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁涓绘敮绠�");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted")
+                        .HasComment("鏄惁鍒犻櫎");
+
+                    b.Property<bool?>("IsDisabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime")
+                        .HasComment("淇敼鏃堕棿");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasMaxLength(36)
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId")
+                        .HasComment("淇敼浜篒D");
+
+                    b.Property<string>("LastModifierName")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("淇敼浜�");
+
+                    b.Property<decimal>("Length")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("闀垮害(mm)");
+
+                    b.Property<string>("MarkingContent")
+                        .HasMaxLength(1024)
+                        .HasColumnType("varchar(1024)")
+                        .HasComment("鎵撶爜鍐呭");
+
+                    b.Property<decimal>("MarkingPosition")
+                        .HasColumnType("decimal(65,30)");
+
+                    b.Property<string>("Material")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鏉愯川");
+
+                    b.Property<string>("MaterialMode")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍘熸枡鍨嬪彿");
+
+                    b.Property<string>("OperationRemark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎿嶄綔澶囨敞");
+
+                    b.Property<decimal>("OuterDiameter")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("澶栧緞(mm)");
+
+                    b.Property<string>("PipeAllowableStress")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("娉曞叞鍐茬爜鍐呭");
+
+                    b.Property<decimal>("PipeDiameter")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("濂楃闀垮害(mm)");
+
+                    b.Property<string>("PipeFittingCode")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("绠′欢缂栫爜");
+
+                    b.Property<string>("PipeSectionName")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("绠℃鍚嶇О");
+
+                    b.Property<string>("PipeSpecCode")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("绠℃缂栫爜");
+
+                    b.Property<decimal>("PipeWallThickness")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("濂楃鐩村緞(mm)");
+
+                    b.Property<DateTime?>("PlannedEndTime")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("璁″垝瀹屾垚鏃堕棿");
+
+                    b.Property<DateTime?>("PlannedStartTime")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("璁″垝寮�濮嬫椂闂�");
+
+                    b.Property<string>("PreSerialNumber")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("椤哄簭鍙�");
+
+                    b.Property<string>("ProcessName")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("宸ュ簭鍚嶇О");
+
+                    b.Property<string>("ProcessRouteNumber")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("宸ヨ壓娴佸悜缂栧彿");
+
+                    b.Property<string>("ProductCode")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("浜у搧浠g爜");
+
+                    b.Property<int>("Quantity")
+                        .HasColumnType("int")
+                        .HasComment("绠℃鏁伴噺");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("鎺掑簭");
+
+                    b.Property<string>("TaskCode")
+                        .IsRequired()
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("浠诲姟缂栫爜");
+
+                    b.Property<string>("TeamInfo")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鐝粍淇℃伅");
+
+                    b.Property<decimal>("Thickness")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("澹佸帤(mm)");
+
+                    b.Property<string>("Timestamp")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鏃堕棿鎴�");
+
+                    b.Property<string>("WeldingHeatInput")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("娉曞叞鍏О鍘嬪姏");
+
+                    b.Property<string>("WorkpieceName")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("宸ヤ欢鍚嶇О");
+
+                    b.Property<string>("WorkstationCode")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("宸ヤ綅浠g爜");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("DataIdentifier");
+
+                    b.HasIndex("PlannedEndTime");
+
+                    b.HasIndex("PlannedStartTime");
+
+                    b.HasIndex("TaskCode")
+                        .IsUnique();
+
+                    b.ToTable("scms_workplans", (string)null);
+
+                    b.HasComment("WorkPlan");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250510023811_Update1.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250510023811_Update1.cs
new file mode 100644
index 0000000..ccff912
--- /dev/null
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/20250510023811_Update1.cs
@@ -0,0 +1,178 @@
+锘縰sing System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace CMS.Plugin.PipeLineLems.MySQL.Migrations
+{
+    public partial class Update1 : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AlterDatabase()
+                .Annotation("MySql:CharSet", "utf8mb4");
+
+            migrationBuilder.CreateTable(
+                name: "scms_mytestentitynames",
+                columns: table => new
+                {
+                    Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
+                    Code = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "缂栫爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    Name = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鍚嶇О")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    Sort = table.Column<int>(type: "int", nullable: false, comment: "鎺掑簭"),
+                    Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "澶囨敞")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "鏄惁绂佺敤"),
+                    ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
+                    CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+                    LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
+                    LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+                    IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
+                    DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+                    DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_scms_mytestentitynames", x => x.Id);
+                },
+                comment: "MyTestEntityName")
+                .Annotation("MySql:CharSet", "utf8mb4");
+
+            migrationBuilder.CreateTable(
+                name: "scms_workplans",
+                columns: table => new
+                {
+                    Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
+                    TaskCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: false, comment: "浠诲姟缂栫爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    DataIdentifier = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍘熸枡鏍囪瘑")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    MaterialMode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍘熸枡鍨嬪彿")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    Length = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "闀垮害(mm)"),
+                    MarkingContent = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: true, comment: "鎵撶爜鍐呭")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    MarkingPosition = table.Column<decimal>(type: "decimal(65,30)", nullable: false),
+                    CuttingPosition = table.Column<decimal>(type: "decimal(65,30)", nullable: false),
+                    Quantity = table.Column<int>(type: "int", nullable: false, comment: "绠℃鏁伴噺"),
+                    FlangeThickness = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "娉曞叞鍘氬害(mm)"),
+                    FlangeInnerDiameter = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "娉曞叞鐩村緞(mm)"),
+                    WeldingHeatInput = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "娉曞叞鍏О鍘嬪姏")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    PipeAllowableStress = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "娉曞叞鍐茬爜鍐呭")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    PipeDiameter = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "濂楃闀垮害(mm)"),
+                    PipeWallThickness = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "濂楃鐩村緞(mm)"),
+                    FactoryCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ュ巶浠g爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ProductCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "浜у搧浠g爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    WorkstationCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ヤ綅浠g爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    EquipmentCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "璁惧浠g爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    WorkpieceName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ヤ欢鍚嶇О")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ProcessName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ュ簭鍚嶇О")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    PipeFittingCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "绠′欢缂栫爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    PreSerialNumber = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "椤哄簭鍙�")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    PipeSpecCode = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "绠℃缂栫爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    PipeSectionName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "绠℃鍚嶇О")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    OuterDiameter = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "澶栧緞(mm)"),
+                    Thickness = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "澹佸帤(mm)"),
+                    Material = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鏉愯川")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    HasMainSignature = table.Column<bool>(type: "tinyint(1)", nullable: false, comment: "鏄惁涓绘敮绠�"),
+                    ProcessRouteNumber = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "宸ヨ壓娴佸悜缂栧彿")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    PlannedStartTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "璁″垝寮�濮嬫椂闂�"),
+                    PlannedEndTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "璁″垝瀹屾垚鏃堕棿"),
+                    TeamInfo = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鐝粍淇℃伅")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    Timestamp = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鏃堕棿鎴�")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ExtraProperties = table.Column<string>(type: "longtext", nullable: true, comment: "鎵╁睍灞炴��")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true, comment: "骞跺彂鎴�")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false, comment: "鍒涘缓鏃堕棿"),
+                    CreatorId = table.Column<Guid>(type: "char(36)", maxLength: 36, nullable: true, comment: "鍒涘缓浜篒D", collation: "ascii_general_ci"),
+                    LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "淇敼鏃堕棿"),
+                    LastModifierId = table.Column<Guid>(type: "char(36)", maxLength: 36, nullable: true, comment: "淇敼浜篒D", collation: "ascii_general_ci"),
+                    IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false, comment: "鏄惁鍒犻櫎"),
+                    DeleterId = table.Column<Guid>(type: "char(36)", maxLength: 36, nullable: true, comment: "鍒犻櫎浜篒D", collation: "ascii_general_ci"),
+                    DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鍒犻櫎鏃堕棿"),
+                    CreatorName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鍒涘缓浜�")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    LastModifierName = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "淇敼浜�")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    OperationRemark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎿嶄綔澶囨敞")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    DeleteRemark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍒犻櫎澶囨敞")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    Sort = table.Column<int>(type: "int", nullable: false, defaultValue: 0, comment: "鎺掑簭"),
+                    Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "澶囨敞")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, defaultValue: false, comment: "鏄惁绂佺敤"),
+                    ExtraField1 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁1")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ExtraField2 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁2")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ExtraField3 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鎵╁睍瀛楁3")
+                        .Annotation("MySql:CharSet", "utf8mb4")
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_scms_workplans", x => x.Id);
+                },
+                comment: "WorkPlan")
+                .Annotation("MySql:CharSet", "utf8mb4");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_mytestentitynames_Name",
+                table: "scms_mytestentitynames",
+                column: "Name");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_workplans_DataIdentifier",
+                table: "scms_workplans",
+                column: "DataIdentifier");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_workplans_PlannedEndTime",
+                table: "scms_workplans",
+                column: "PlannedEndTime");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_workplans_PlannedStartTime",
+                table: "scms_workplans",
+                column: "PlannedStartTime");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_workplans_TaskCode",
+                table: "scms_workplans",
+                column: "TaskCode",
+                unique: true);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "scms_mytestentitynames");
+
+            migrationBuilder.DropTable(
+                name: "scms_workplans");
+        }
+    }
+}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
index f5e4f02..b2668e8 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
@@ -101,210 +101,188 @@
                     b.HasComment("MyTestEntityName");
                 });
 
-            modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.WmsAreas.WorkPlan", b =>
+            modelBuilder.Entity("CMS.Plugin.PipeLineLems.Domain.WorkPlan.WorkPlan", b =>
                 {
                     b.Property<Guid>("Id")
                         .ValueGeneratedOnAdd()
                         .HasColumnType("char(36)");
 
-                    b.Property<string>("Bevel")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鍧″彛");
-
-                    b.Property<string>("BranchMaterial")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀鏉愯川");
-
-                    b.Property<string>("BranchOuterDiameter")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀寰�");
-
-                    b.Property<string>("BranchPortAngle")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀绔彛瑙掑害");
-
-                    b.Property<string>("BranchPortRadius")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀绔彛鏇茬巼鍗婂緞");
-
-                    b.Property<string>("BranchPortRequirement")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀绔彛瑕佹眰");
-
-                    b.Property<string>("BranchWallThickness")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏀澹佸帤");
-
                     b.Property<string>("ConcurrencyStamp")
                         .IsConcurrencyToken()
                         .HasMaxLength(40)
                         .HasColumnType("varchar(40)")
-                        .HasColumnName("ConcurrencyStamp");
+                        .HasColumnName("ConcurrencyStamp")
+                        .HasComment("骞跺彂鎴�");
 
                     b.Property<DateTime>("CreationTime")
                         .HasColumnType("datetime(6)")
-                        .HasColumnName("CreationTime");
+                        .HasColumnName("CreationTime")
+                        .HasComment("鍒涘缓鏃堕棿");
 
                     b.Property<Guid?>("CreatorId")
+                        .HasMaxLength(36)
                         .HasColumnType("char(36)")
-                        .HasColumnName("CreatorId");
+                        .HasColumnName("CreatorId")
+                        .HasComment("鍒涘缓浜篒D");
 
-                    b.Property<string>("CuttingFile")
+                    b.Property<string>("CreatorName")
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
-                        .HasComment("鍒囧壊鏂囦欢");
+                        .HasComment("鍒涘缓浜�");
+
+                    b.Property<decimal>("CuttingPosition")
+                        .HasColumnType("decimal(65,30)");
 
                     b.Property<string>("DataIdentifier")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("鍘熸枡鏍囪瘑");
 
+                    b.Property<string>("DeleteRemark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍒犻櫎澶囨敞");
+
                     b.Property<Guid?>("DeleterId")
+                        .HasMaxLength(36)
                         .HasColumnType("char(36)")
-                        .HasColumnName("DeleterId");
+                        .HasColumnName("DeleterId")
+                        .HasComment("鍒犻櫎浜篒D");
 
                     b.Property<DateTime?>("DeletionTime")
                         .HasColumnType("datetime(6)")
-                        .HasColumnName("DeletionTime");
-
-                    b.Property<string>("DrillingPosition")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鎵撳瓟浣�");
+                        .HasColumnName("DeletionTime")
+                        .HasComment("鍒犻櫎鏃堕棿");
 
                     b.Property<string>("EquipmentCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("璁惧浠g爜");
+
+                    b.Property<string>("ExtraField1")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁1");
+
+                    b.Property<string>("ExtraField2")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁2");
+
+                    b.Property<string>("ExtraField3")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁3");
 
                     b.Property<string>("ExtraProperties")
                         .HasColumnType("longtext")
-                        .HasColumnName("ExtraProperties");
+                        .HasColumnName("ExtraProperties")
+                        .HasComment("鎵╁睍灞炴��");
 
                     b.Property<string>("FactoryCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("宸ュ巶浠g爜");
 
-                    b.Property<string>("FinishedProductScale")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鎴愬搧鍥惧箙");
+                    b.Property<decimal>("FlangeInnerDiameter")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("娉曞叞鐩村緞(mm)");
 
-                    b.Property<string>("FlangeInnerDiameter")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("娉曞叞鍐呭緞");
-
-                    b.Property<string>("FlangeThickness")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("娉曞叞鍘氬害");
+                    b.Property<decimal>("FlangeThickness")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("娉曞叞鍘氬害(mm)");
 
                     b.Property<bool>("HasMainSignature")
                         .HasColumnType("tinyint(1)")
-                        .HasComment("鏄惁鏈変富绛�");
-
-                    b.Property<string>("InterfaceRequirement")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鎺ュ彛瑕佹眰");
-
-                    b.Property<string>("Intersecting")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鐩歌疮");
-
-                    b.Property<string>("IntersectingLineCategory")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鐩歌疮绾跨被鍒�");
-
-                    b.Property<string>("IntersectingLineType")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鐩歌疮绾跨被鍨�");
+                        .HasComment("鏄惁涓绘敮绠�");
 
                     b.Property<bool>("IsDeleted")
                         .ValueGeneratedOnAdd()
                         .HasColumnType("tinyint(1)")
                         .HasDefaultValue(false)
-                        .HasColumnName("IsDeleted");
+                        .HasColumnName("IsDeleted")
+                        .HasComment("鏄惁鍒犻櫎");
 
                     b.Property<bool?>("IsDisabled")
+                        .ValueGeneratedOnAdd()
                         .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
                         .HasComment("鏄惁绂佺敤");
 
                     b.Property<DateTime?>("LastModificationTime")
                         .HasColumnType("datetime(6)")
-                        .HasColumnName("LastModificationTime");
+                        .HasColumnName("LastModificationTime")
+                        .HasComment("淇敼鏃堕棿");
 
                     b.Property<Guid?>("LastModifierId")
+                        .HasMaxLength(36)
                         .HasColumnType("char(36)")
-                        .HasColumnName("LastModifierId");
+                        .HasColumnName("LastModifierId")
+                        .HasComment("淇敼浜篒D");
 
-                    b.Property<string>("Length")
+                    b.Property<string>("LastModifierName")
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
-                        .HasComment("闀垮害");
+                        .HasComment("淇敼浜�");
+
+                    b.Property<decimal>("Length")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("闀垮害(mm)");
 
                     b.Property<string>("MarkingContent")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(1024)
+                        .HasColumnType("varchar(1024)")
                         .HasComment("鎵撶爜鍐呭");
 
+                    b.Property<decimal>("MarkingPosition")
+                        .HasColumnType("decimal(65,30)");
+
                     b.Property<string>("Material")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("鏉愯川");
 
-                    b.Property<string>("OrgMaterialCode")
-                        .IsRequired()
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鍘熸枡缂栧彿");
+                    b.Property<string>("MaterialMode")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍘熸枡鍨嬪彿");
 
-                    b.Property<string>("OuterDiameter")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("澶栧緞");
+                    b.Property<string>("OperationRemark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎿嶄綔澶囨敞");
+
+                    b.Property<decimal>("OuterDiameter")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("澶栧緞(mm)");
 
                     b.Property<string>("PipeAllowableStress")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠¢亾鍏佽搴斿姏");
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("娉曞叞鍐茬爜鍐呭");
 
-                    b.Property<string>("PipeDiameter")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠″緞");
+                    b.Property<decimal>("PipeDiameter")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("濂楃闀垮害(mm)");
 
                     b.Property<string>("PipeFittingCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("绠′欢缂栫爜");
 
                     b.Property<string>("PipeSectionName")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("绠℃鍚嶇О");
 
                     b.Property<string>("PipeSpecCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠¤鏍肩爜");
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("绠℃缂栫爜");
 
-                    b.Property<string>("PipeWallThickness")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("绠¢亾澹佸帤");
+                    b.Property<decimal>("PipeWallThickness")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("濂楃鐩村緞(mm)");
 
                     b.Property<DateTime?>("PlannedEndTime")
                         .HasColumnType("datetime(6)")
@@ -315,37 +293,28 @@
                         .HasComment("璁″垝寮�濮嬫椂闂�");
 
                     b.Property<string>("PreSerialNumber")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("椤哄簭鍙�");
 
                     b.Property<string>("ProcessName")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("宸ュ簭鍚嶇О");
 
                     b.Property<string>("ProcessRouteNumber")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("宸ヨ壓璺嚎缂栧彿");
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("宸ヨ壓娴佸悜缂栧彿");
 
                     b.Property<string>("ProductCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("浜у搧浠g爜");
 
                     b.Property<int>("Quantity")
                         .HasColumnType("int")
-                        .HasComment("鍖呮嫭鏁伴噺");
-
-                    b.Property<string>("RedundantField1")
-                        .HasColumnType("longtext");
-
-                    b.Property<string>("RedundantField2")
-                        .HasColumnType("longtext");
-
-                    b.Property<string>("RedundantField3")
-                        .HasColumnType("longtext");
+                        .HasComment("绠℃鏁伴噺");
 
                     b.Property<string>("Remark")
                         .HasMaxLength(256)
@@ -353,43 +322,56 @@
                         .HasComment("澶囨敞");
 
                     b.Property<int>("Sort")
+                        .ValueGeneratedOnAdd()
                         .HasColumnType("int")
+                        .HasDefaultValue(0)
                         .HasComment("鎺掑簭");
 
                     b.Property<string>("TaskCode")
                         .IsRequired()
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("浠诲姟缂栫爜");
 
-                    b.Property<string>("TimeInfo")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鏃堕棿淇℃伅");
+                    b.Property<string>("TeamInfo")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鐝粍淇℃伅");
 
-                    b.Property<string>("VRData")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("VR鏁版嵁");
+                    b.Property<decimal>("Thickness")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("澹佸帤(mm)");
+
+                    b.Property<string>("Timestamp")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鏃堕棿鎴�");
 
                     b.Property<string>("WeldingHeatInput")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
-                        .HasComment("鐒婃帴鐑緭鍏�");
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("娉曞叞鍏О鍘嬪姏");
 
                     b.Property<string>("WorkpieceName")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("宸ヤ欢鍚嶇О");
 
                     b.Property<string>("WorkstationCode")
-                        .HasMaxLength(64)
-                        .HasColumnType("varchar(64)")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
                         .HasComment("宸ヤ綅浠g爜");
 
                     b.HasKey("Id");
 
-                    b.HasIndex("TaskCode");
+                    b.HasIndex("DataIdentifier");
+
+                    b.HasIndex("PlannedEndTime");
+
+                    b.HasIndex("PlannedStartTime");
+
+                    b.HasIndex("TaskCode")
+                        .IsUnique();
 
                     b.ToTable("scms_workplans", (string)null);
 
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMS.Plugin.PipeLineLems.csproj b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMS.Plugin.PipeLineLems.csproj
index 8534e4f..88da0f4 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMS.Plugin.PipeLineLems.csproj
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMS.Plugin.PipeLineLems.csproj
@@ -64,4 +64,10 @@
       </Resource>
     </ItemGroup>
 
+    <ItemGroup>
+      <None Update="Resources\Templates\WorkPlan瀵煎嚭妯℃澘.xlsx">
+        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+      </None>
+    </ItemGroup>
+
 </Project>
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMSPluginEntry.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMSPluginEntry.cs
index 92fa334..b7c7753 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMSPluginEntry.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMSPluginEntry.cs
@@ -50,7 +50,7 @@
         context.Services.AddScoped<IProjectRuntimeMigrator, CMSPluginRuntimeMigrator>();
         context.Services.AddSingleton<IProjectService, PipeLineLemsProjectService>();
 
-        context.Services.AddScoped<IMesAppService, MesAppService>();
+        //context.Services.AddScoped<IMesAppService, MesAppService>();
 
         context.Services.AddScoped<IEFDataProvider>(p =>
         {
diff --git "a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Resources/Templates/WorkPlan\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Resources/Templates/WorkPlan\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..d268187
--- /dev/null
+++ "b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Resources/Templates/WorkPlan\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\347\245\245\345\255\220\347\232\204\344\275\234\344\270\232\350\256\241\345\210\222\350\241\250\351\205\215\347\275\256\346\226\207\346\234\254\050\346\250\241\347\263\212\346\237\245\350\257\242\350\207\252\345\212\250\347\211\210\051.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\347\245\245\345\255\220\347\232\204\344\275\234\344\270\232\350\256\241\345\210\222\350\241\250\351\205\215\347\275\256\346\226\207\346\234\254\050\346\250\241\347\263\212\346\237\245\350\257\242\350\207\252\345\212\250\347\211\210\051.txt"
new file mode 100644
index 0000000..c4d7364
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\347\245\245\345\255\220\347\232\204\344\275\234\344\270\232\350\256\241\345\210\222\350\241\250\351\205\215\347\275\256\346\226\207\346\234\254\050\346\250\241\347\263\212\346\237\245\350\257\242\350\207\252\345\212\250\347\211\210\051.txt"
@@ -0,0 +1,14 @@
+锘縖琛ㄥ悕]:scms_workplans
+[瀹炰綋绫诲悕]:WorkPlan
+[瀹炰綋绫诲璞″悕]:workPlan
+[椤甸潰鑿滃崟鍚峕:浣滀笟璁″垝
+[椤甸潰鑿滃崟瀵硅薄缂╁啓]:workPlan
+[琛ㄧ殑涓枃娉ㄨВ]:浣滀笟璁″垝琛�
+[閲嶅鎬ф牎楠屽瓧娈礭:TaskCode
+[鍒犻櫎鎻愮ず瀛楁]:TaskCode
+[妯$硦鏌ヨ瀛楁]:
+[妯$硦鏌ヨ瀛楁鍚峕:
+[椤圭洰鍛藉悕绌洪棿]:PipeLineLems
+[鏋氫妇绫诲瀷瀛楁闆嗗悎]:
+[鍓嶇鏍规枃浠跺す鍚嶇О]:pipelinelems_web
+[鎺掑簭]:CreationTime
\ No newline at end of file
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/EntityModeDrawer_Generate.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/EntityModeDrawer_Generate.cs"
index c00ab87..f68f4e1 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/EntityModeDrawer_Generate.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/EntityModeDrawer_Generate.cs"
@@ -23,11 +23,11 @@
             //鏇挎崲鏂板form鍒楄〃灞炴��
             string attrString = "";
             List<ColumnModel> newColumnNameList = ListHelper.RemoveAttrForUpdateMode(param.ColumnNameList);
-            attrString += StructStrHelper.GetVueFormOptionsStrForPageAddFormAttributes_formItems(param.ColumnNameList, param);
+            attrString += StructStrHelper.GetVueFormOptionsStrForPageAddFormAttributes_formItems(newColumnNameList, param);
             str = str.Replace("$PageAddFormAttributes_formItems$", attrString);
 
             attrString = "";
-            attrString += StructStrHelper.GetVueFormOptionsStrForSave_PageAddFormAttributes(param.ColumnNameList,param);
+            attrString += StructStrHelper.GetVueFormOptionsStrForSave_PageAddFormAttributes(newColumnNameList, param);
             str = str.Replace("$Save_PageAddFormAttributes$", attrString);
 
             attrString = "";
@@ -35,7 +35,7 @@
             str = str.Replace("$CommonQueryEnumForFrom$", attrString);
 
             attrString = "";
-            attrString += StructStrHelper.GetVueFormOptionsStrForPageAddFormAttributesByOpen(param.ColumnNameList, param);
+            attrString += StructStrHelper.GetVueFormOptionsStrForPageAddFormAttributesByOpen(newColumnNameList, param);
             str = str.Replace("$PageAddFormAttributesByOpen$", attrString);
 
 
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/GenerateCode_WeiBen_CMS.csproj" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/GenerateCode_WeiBen_CMS.csproj"
index cc283a0..3b354c7 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/GenerateCode_WeiBen_CMS.csproj"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/GenerateCode_WeiBen_CMS.csproj"
@@ -319,6 +319,9 @@
     </BootstrapperPackage>
   </ItemGroup>
   <ItemGroup>
+    <Content Include="File\GenerateCodeConfigParamFiles\绁ュ瓙鐨勪綔涓氳鍒掕〃閰嶇疆鏂囨湰%28妯$硦鏌ヨ鑷姩鐗�%29.txt">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="File\GenerateCodeConfigParamFiles\绁ュ瓙鐨勪綔涓氳鍒掕〃閰嶇疆鏂囨湰.txt">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.Designer.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.Designer.cs"
index 183bacf..dfb041a 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.Designer.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.Designer.cs"
@@ -78,6 +78,7 @@
             this.tb_FilePath = new System.Windows.Forms.TextBox();
             this.btn_SelectFile = new System.Windows.Forms.Button();
             this.button1 = new System.Windows.Forms.Button();
+            this.label1 = new System.Windows.Forms.Label();
             this.groupBox1.SuspendLayout();
             this.groupBox2.SuspendLayout();
             this.SuspendLayout();
@@ -357,6 +358,7 @@
             // 
             // groupBox2
             // 
+            this.groupBox2.Controls.Add(this.label1);
             this.groupBox2.Controls.Add(this.tb_DeleteAlertAttr);
             this.groupBox2.Controls.Add(this.label25);
             this.groupBox2.Controls.Add(this.tb_ValidateRepeatName);
@@ -395,7 +397,7 @@
             this.groupBox2.Controls.Add(this.label7);
             this.groupBox2.Location = new System.Drawing.Point(51, 90);
             this.groupBox2.Name = "groupBox2";
-            this.groupBox2.Size = new System.Drawing.Size(1187, 470);
+            this.groupBox2.Size = new System.Drawing.Size(1283, 470);
             this.groupBox2.TabIndex = 46;
             this.groupBox2.TabStop = false;
             this.groupBox2.Text = "鑷畾涔夐厤缃�";
@@ -552,11 +554,21 @@
             this.button1.UseVisualStyleBackColor = true;
             this.button1.Click += new System.EventHandler(this.button1_Click_1);
             // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.ForeColor = System.Drawing.Color.Red;
+            this.label1.Location = new System.Drawing.Point(976, 185);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(245, 12);
+            this.label1.TabIndex = 66;
+            this.label1.Text = "濡傛灉涓虹┖锛岀郴缁熼粯璁ゆ墍鏈夊瓧绗︿覆鐨勫睍绀哄垪鏌ヨ";
+            // 
             // MainForm
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(1250, 831);
+            this.ClientSize = new System.Drawing.Size(1402, 831);
             this.Controls.Add(this.button1);
             this.Controls.Add(this.btn_SelectFile);
             this.Controls.Add(this.tb_FilePath);
@@ -632,6 +644,7 @@
         private System.Windows.Forms.TextBox tb_FilePath;
         private System.Windows.Forms.Button btn_SelectFile;
         private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.Label label1;
     }
 }
 
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
index c56be20..6311a10 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
@@ -135,17 +135,17 @@
                 string _tb_LikeQueryAttrsName = this.tb_LikeQueryAttrsName.Text.Trim();//涓枃娉ㄩ噴
                 if (_tb_LikeQueryAttrsName == "")
                 {
-                    MessageBox.Show("璇疯緭鍏� 妯$硦鏌ヨ瀛楁鍚嶏紒");
-                    this.tb_LikeQueryAttrsName.Focus();
-                    return;
+                    //MessageBox.Show("璇疯緭鍏� 妯$硦鏌ヨ瀛楁鍚嶏紒");
+                    //this.tb_LikeQueryAttrsName.Focus();
+                    //return;
                 }
 
                 string _tb_LikeQueryAttrs = this.tb_LikeQueryAttrs.Text.Trim();//涓枃娉ㄩ噴
                 if (_tb_LikeQueryAttrs == "")
                 {
-                    MessageBox.Show("璇疯緭鍏� 妯$硦鏌ヨ瀛楁锛�");
-                    this.tb_LikeQueryAttrs.Focus();
-                    return;
+                    //MessageBox.Show("璇疯緭鍏� 妯$硦鏌ヨ瀛楁锛�");
+                    //this.tb_LikeQueryAttrs.Focus();
+                    //return;
                 }
 
                 string chinaComment = this.tb_ChinaComment.Text.Trim();//涓枃娉ㄩ噴
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/CommonHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/CommonHelper.cs"
index 7dc7707..8fd1da2 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/CommonHelper.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/CommonHelper.cs"
@@ -47,8 +47,17 @@
             str = str.Replace("$Modulelogo$", param.Modulelogo);//妯″潡绠�鍐�
             str = str.Replace("$EntityInstanceName$", param.EntityInstanceName);//瀹炰緥鍚�
 
-            str = str.Replace("$LikeQueryAttrs$", param.LikeQueryAttrs);
-            str = str.Replace("$LikeQueryAttrsName$", param.LikeQueryAttrsName);
+            //濡傛灉涓虹┖锛岀郴缁熼粯璁ゆ墍鏈夊瓧绗︿覆鐨勫睍绀哄垪鏌ヨ
+            var str_LikeQueryAttrs = param.LikeQueryAttrs;
+            var str_LikeQueryAttrsName = param.LikeQueryAttrsName;
+            if (string.IsNullOrEmpty(param.LikeQueryAttrs))
+            {
+                str_LikeQueryAttrs = StructStrHelper.Get_LikeQueryAttrs(param.ColumnNameList, param);
+                str_LikeQueryAttrsName = StructStrHelper.Get_LikeQueryAttrsName(param.ColumnNameList, param);
+            }
+            str = str.Replace("$LikeQueryAttrs$", str_LikeQueryAttrs);
+            str = str.Replace("$LikeQueryAttrsName$", str_LikeQueryAttrsName);
+
             str = str.Replace("$ValidateRepeatName$", param.ValidateRepeatName);
             str = str.Replace("$DeleteAlertAttr$", param.DeleteAlertAttr);
             str = str.Replace("$OrderBy$", param.OrderBy);
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/ListHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/ListHelper.cs"
index 495bde1..ebae23e 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/ListHelper.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/ListHelper.cs"
@@ -41,6 +41,7 @@
                     || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper()
                     || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_DeletionTime.ToUpper()
 
+                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_IsDisabled.ToUpper()
 
                     || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Sort.ToUpper()
                     || SystemCommonVar.c_Extend.Contains(columnModel.ColumnName.ToUpper())
@@ -90,6 +91,7 @@
                     || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper()
                     || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_DeletionTime.ToUpper()
 
+                    || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_IsDisabled.ToUpper()
 
                     || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Sort.ToUpper()
                     || SystemCommonVar.c_Extend.Contains(columnModel.ColumnName.ToUpper())
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
index 903e112..ec86934 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
@@ -2214,8 +2214,7 @@
                 /*
                   materialCode: formData.value.materialCode,
                  */
-                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
-                foreach (var columnModel in newList)
+                foreach (var columnModel in columnModelList)
                 {
                     //棣栧瓧姣嶅皬鍐�
                     var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
@@ -2261,6 +2260,80 @@
             }
         }
 
+
+        public static string Get_LikeQueryAttrs(List<ColumnModel> columnModelList, GenerateCodeParam param)
+        {
+            StringBuilder sb = new StringBuilder();
+            try
+            {
+                /*
+                  [妯$硦鏌ヨ瀛楁]:'TaskCode','MaterialMode', 'ProductCode'
+                 */
+                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
+                foreach (var columnModel in newList)
+                {
+                    //鑾峰彇鏁版嵁绫诲瀷
+                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
+                    switch (enumDT)
+                    {
+                        case DataTypeEnum.dt_nvarchar:
+                        case DataTypeEnum.dt_varchar:
+                        case DataTypeEnum.dt_longtext:
+                            sb.Append($"'{columnModel.ColumnName}',");
+                            break;
+                        default:
+                            break;
+                    }
+                }
+                //鍘绘帀鏈�鍚庝竴涓�,
+                var res = sb.ToString();
+                if (res.Length > 1)
+                {
+                    res = res.Substring(0, res.Length - 1);
+                }
+                return res;
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
+        public static string Get_LikeQueryAttrsName(List<ColumnModel> columnModelList, GenerateCodeParam param)
+        {
+            StringBuilder sb = new StringBuilder();
+            try
+            {
+                /*
+                  [妯$硦鏌ヨ瀛楁鍚峕:璇疯緭鍏ヤ换鍔$紪鐮�/鍘熸枡鍨嬪彿/浜у搧浠g爜
+                 */
+                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
+                sb.Append("璇疯緭鍏�");
+                foreach (var columnModel in newList)
+                {
+                    //鑾峰彇鏁版嵁绫诲瀷
+                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
+                    switch (enumDT)
+                    {
+                        case DataTypeEnum.dt_nvarchar:
+                        case DataTypeEnum.dt_varchar:
+                        case DataTypeEnum.dt_longtext:
+                            sb.Append($"{columnModel.Description}/");
+                            break;
+                        default:
+                            break;
+                    }
+                }
+                //鍘绘帀鏈�鍚庝竴涓�,
+                var res = sb.ToString();
+                res = res.Substring(0, res.Length - 1);
+                return res;
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
 
         /// <summary>
         /// 椤甸潰琛ㄦ牸鍒楁樉绀�
@@ -2334,8 +2407,7 @@
                 /*
                   materialCode: res.materialCode,
                  */
-                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
-                foreach (var columnModel in newList)
+                foreach (var columnModel in columnModelList)
                 {
                     //棣栧瓧姣嶅皬鍐�
                     var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/queryExtensions/CmsQueryExtensions/Extension/DynamicSearchParameters/PredicateExtensions/PredicateExtensions.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/queryExtensions/CmsQueryExtensions/Extension/DynamicSearchParameters/PredicateExtensions/PredicateExtensions.cs"
index 5240657..d8796d5 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/queryExtensions/CmsQueryExtensions/Extension/DynamicSearchParameters/PredicateExtensions/PredicateExtensions.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/queryExtensions/CmsQueryExtensions/Extension/DynamicSearchParameters/PredicateExtensions/PredicateExtensions.cs"
@@ -77,6 +77,47 @@
             return finalExpression;
         }
 
+        ///// <summary>
+        ///// (妯$硦鏌ヨ)鎷兼帴鎴� c.Name.contains("1111")||c.Code.Contains("1111")||c.Address.Contains("1111")) 褰㈠紡
+        ///// </summary>
+        ///// <typeparam name="T"></typeparam>
+        ///// <param name="options"></param>
+        ///// <param name="fieldName"></param>
+        ///// <returns></returns>
+        //public static Expression<Func<T, bool>> GetConditionExpressionForFuzzyQuery<T>(string[] fieldNames, string fieldValue)
+        //{
+        //    try
+        //    {
+        //        ParameterExpression left = Expression.Parameter(typeof(T), "c");//c=>
+        //        Expression expression = Expression.Constant(true);//淇敼涓簍rue锛岃В鍐冲叕鍏辨ā绯婃煡璇㈢殑闂 
+        //        foreach (var fieldName in fieldNames)
+        //        {
+        //            try
+        //            {
+        //                Expression right = Expression.Call
+        //                   (
+        //                      Expression.Property(left, typeof(T).GetProperty(fieldName)),  //c.DataSourceName
+        //                      typeof(string).GetMethod("Contains", new Type[] { typeof(string) }),// 鍙嶅皠浣跨敤.Contains()鏂规硶                         
+        //                      Expression.Constant(fieldValue)           // .Contains(fieldValue)
+        //                   );
+        //                expression = Expression.Or(right, expression);//c.AAA.contain("") || c.BBB.contain("") 
+        //            }
+        //            catch (Exception ex)
+        //            {
+        //                throw new Exception($"鍙傛暟{fieldName}鍖归厤鍏抽敭瀛楁煡璇㈡椂澶辫触:" + ex.Message);
+        //            }
+        //        }
+        //        Expression<Func<T, bool>> finalExpression
+        //            = Expression.Lambda<Func<T, bool>>(expression, new ParameterExpression[] { left });
+        //        return finalExpression;
+        //    }
+        //    catch (Exception)
+        //    {
+        //        throw;
+        //    }
+        //}
+
+
         /// <summary>
         /// (妯$硦鏌ヨ)鎷兼帴鎴� c.Name.contains("1111")||c.Code.Contains("1111")||c.Address.Contains("1111")) 褰㈠紡
         /// </summary>
@@ -86,35 +127,58 @@
         /// <returns></returns>
         public static Expression<Func<T, bool>> GetConditionExpressionForFuzzyQuery<T>(string[] fieldNames, string fieldValue)
         {
-            try
+            if (fieldNames == null || fieldNames.Length == 0)
             {
-                ParameterExpression left = Expression.Parameter(typeof(T), "c");//c=>
-                Expression expression = Expression.Constant(false);
-                foreach (var fieldName in fieldNames)
+                throw new ArgumentException("鑷冲皯闇�瑕佹寚瀹氫竴涓瓧娈靛悕", nameof(fieldNames));
+            }
+
+            if (string.IsNullOrEmpty(fieldValue))
+            {
+                // 绌哄�兼煡璇㈣繑鍥炴�绘槸杩斿洖false鐨勮〃杈惧紡
+                var parameter2 = Expression.Parameter(typeof(T), "c");
+                return Expression.Lambda<Func<T, bool>>(Expression.Constant(false), parameter2);
+            }
+
+            ParameterExpression parameter = Expression.Parameter(typeof(T), "c");
+            Expression? expression = null;
+
+            foreach (var fieldName in fieldNames)
+            {
+                try
                 {
-                    try
+                    var propertyInfo = typeof(T).GetProperty(fieldName);
+
+                    if (propertyInfo == null)
                     {
-                        Expression right = Expression.Call
-                           (
-                              Expression.Property(left, typeof(T).GetProperty(fieldName)),  //c.DataSourceName
-                              typeof(string).GetMethod("Contains", new Type[] { typeof(string) }),// 鍙嶅皠浣跨敤.Contains()鏂规硶                         
-                              Expression.Constant(fieldValue)           // .Contains(fieldValue)
-                           );
-                        expression = Expression.Or(right, expression);//c.AAA.contain("") || c.BBB.contain("") 
+                        throw new ArgumentException($"绫诲瀷 {typeof(T).Name} 涓嶅寘鍚睘鎬� {fieldName}");
                     }
-                    catch (Exception ex)
+
+                    if (propertyInfo.PropertyType != typeof(string))
                     {
-                        throw new Exception($"鍙傛暟{fieldName}鍖归厤鍏抽敭瀛楁煡璇㈡椂澶辫触:" + ex.Message);
+                        throw new ArgumentException($"灞炴�� {fieldName} 涓嶆槸瀛楃涓茬被鍨�");
                     }
+
+                    var propertyAccess = Expression.Property(parameter, propertyInfo);
+                    var containsMethod = typeof(string).GetMethod("Contains", new[] { typeof(string) });
+                    var searchExpression = Expression.Call(propertyAccess, containsMethod!, Expression.Constant(fieldValue));
+
+                    expression = expression == null
+                        ? searchExpression
+                        : Expression.OrElse(expression, searchExpression);
                 }
-                Expression<Func<T, bool>> finalExpression
-                    = Expression.Lambda<Func<T, bool>>(expression, new ParameterExpression[] { left });
-                return finalExpression;
+                catch (Exception ex)
+                {
+                    throw new InvalidOperationException($"澶勭悊瀛楁 {fieldName} 鏃跺嚭閿�", ex);
+                }
             }
-            catch (Exception)
+
+            if (expression == null)
             {
-                throw;
+                // 濡傛灉鎵�鏈夊瓧娈甸兘鏃犳晥锛岃繑鍥炴�绘槸杩斿洖false鐨勮〃杈惧紡
+                return Expression.Lambda<Func<T, bool>>(Expression.Constant(false), parameter);
             }
+
+            return Expression.Lambda<Func<T, bool>>(expression, parameter);
         }
 
         /// <summary>

--
Gitblit v1.9.3