From 89b928115c2309c6548b096b4d71c0dedbcaa2db Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期五, 17 一月 2025 16:02:55 +0800
Subject: [PATCH] 远程报错修改

---
 BLL/HStation.BLL.Assets.Core/02-httpclient/15-Tank/AssetsTankMain.cs                                       |    8 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.Designer.cs              |   54 
 Application/HStation.Application.Assets.Core/23-translation/03-factor/AssetsCoolingFactor_Controller.cs    |  133 ++++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AssetsValveFactorMgrViewModel.cs                 |    4 
 BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantMain.cs                                 |   10 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.cs                     |   10 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/ViewAssetsTranslationFactorDlg.cs          |    3 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.resx                         |   27 
 Dto/HStation.Dto.Assets.Core/04-PipeLine/02-Main/AssetsPipeMainDto.cs                                      |    1 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/01-series/AddAssetsBluntheadSeriesDlg.cs               |    1 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.resx                   |   27 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.Designer.cs                |  118 ++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.resx                     |    4 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.Designer.cs               |  188 +++-
 WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByExcelDlg.cs           |    1 
 Application/HStation.Application.Assets.Core/23-translation/02-main/AssetsCoolingMain_Controller.cs        |  240 +++++++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.cs                        |    5 
 BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationFactor.cs                       |    2 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.resx                         |   27 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.cs                         |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.resx                    |    4 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.Designer.cs       |   23 
 Dto/HStation.Dto.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainDto.cs                              |    1 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByExcelDlg.cs   |    1 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.cs                      |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByPictureDlg.cs         |    1 
 Application/HStation.Application.Assets.Core/01-Pump/PumpPart_Controller.cs                                |   42 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/EditAssetsHydrantSeriesDlg.cs                  |    1 
 Application/HStation.Application.Assets.Core/01-Pump/PumpMain_Controller.cs                                |    6 
 WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/UserInfoPage.cs                                          |    4 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.resx                      |    7 
 WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.resx                                              |   27 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByExcelDlg.cs               |    2 
 WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.Designer.cs                                       |   24 
 Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user                         |    4 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.Designer.cs               |   76 ++
 WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.cs                                                |   21 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/AssetsTranslationFactorMgrPage.Designer.cs |   34 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.Designer.cs         |   30 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/EditAssetsTranslationSeriesDlg.cs          |    1 
 Application/HStation.Application.Assets.Core/23-translation/01-series/AssetsCoolingSeries_Controller.cs    |  278 ++++++++
 WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs            |   15 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.cs                      |    7 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByPictureDlg.cs             |    1 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/AddAssetsTranslationSeriesDlg.cs           |    1 
 Application/HStation.Application.Assets.Core/01-Pump/PumpPropContent_Controller.cs                         |   22 
 Dto/HStation.Dto.Assets.Core/00-Pump/03-PumpMain/AddPumpMainExInput.cs                                     |   15 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.resx                       |    4 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.resx                         |   27 
 BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantFactor.cs                               |    4 
 Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj.user                                          |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/02-main/AddAssetsBluntheadMainDlg.cs                   |    1 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.resx              |    4 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.resx                |    4 
 Dto/HStation.Dto.Assets.Core/00-Pump/05-PumpPartMain/UpdatePumpPartMainExInput.cs                          |   16 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.cs                           |   10 
 Dto/HStation.Dto.Assets.Core/00-Pump/05-PumpPartMain/AddPumpPartMainExInput.cs                             |   21 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/21-compressor/02-main/ViewAssetsCompressorMainDlg.cs                |    5 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.Designer.cs                  |   15 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/AddAssetsHydrantSeriesDlg.cs                   |    1 
 BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpMain.cs                                             |   20 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.cs                           |    8 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.cs                       |    6 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByPictureDlg.cs |    7 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.Designer.cs                  |   15 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/01-series/AddAssetsTankSeriesDlg.cs                         |    1 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.Designer.cs         |   30 
 BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationMain.cs                         |   10 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/02-main/AddAssetsPipeMainDlg.cs                             |    1 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.resx                |    4 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.cs                        |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.resx                    |    4 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.cs                           |    9 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/EditPumpPartPropDlg.cs                  |    9 
 BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpPartMain.cs                                         |   50 +
 BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadFactor.cs                           |   15 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.Designer.cs          |   30 
 BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantSeries.cs                               |    2 
 WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.Designer.cs                  |   15 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.Designer.cs             |   26 
 /dev/null                                                                                                  |   25 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.Designer.cs             |   30 
 BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadMain.cs                             |    8 
 BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpTypeSeriesMap.cs                                    |    2 
 BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpGroupAndMainMap.cs                                  |    2 
 Vmo/HStation.Vmo.Assets.Core/15-Tank/AssetsTankSeriesVmo.cs                                                |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.resx                      |    4 
 WinFrmUI/HStation.WinFrmUI.Auth.Core/05-user-log/UserLoginLogPage.cs                                       |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.resx                 |    4 
 89 files changed, 1,554 insertions(+), 418 deletions(-)

diff --git a/Application/HStation.Application.Assets.Core/01-Pump/PumpMain_Controller.cs b/Application/HStation.Application.Assets.Core/01-Pump/PumpMain_Controller.cs
index f9cd17b..4c6fbc3 100644
--- a/Application/HStation.Application.Assets.Core/01-Pump/PumpMain_Controller.cs
+++ b/Application/HStation.Application.Assets.Core/01-Pump/PumpMain_Controller.cs
@@ -91,10 +91,10 @@
         /// </summary>
         [Route("InsertEx@V1.0")]
         [HttpPost]
-        public long InsertEx(AddAssetsPumpMainInput input, AddAssetsPumpGroupAndMainMapInput mainmap)
+        public long InsertEx(AddPumpMainExInput input)
         {
-            var mainmodel = input.Adapt<AddAssetsPumpMainInput, Model.AssetsPumpMain>();
-            var mainmapmodel = mainmap.Adapt<AddAssetsPumpGroupAndMainMapInput, Model.AssetsPumpGroupAndMainMapping>();
+            var mainmodel = input.MainInput.Adapt<AddAssetsPumpMainInput, Model.AssetsPumpMain>();
+            var mainmapmodel = input.MainMapInput.Adapt<AddAssetsPumpGroupAndMainMapInput, Model.AssetsPumpGroupAndMainMapping>();
             mainmodel.SortCode = _service.GetMaxSortCode() + 1;
             var id = _service.InsertEx(mainmodel, mainmapmodel);
             return id;
diff --git a/Application/HStation.Application.Assets.Core/01-Pump/PumpPart_Controller.cs b/Application/HStation.Application.Assets.Core/01-Pump/PumpPart_Controller.cs
index 95ee5da..95d2f82 100644
--- a/Application/HStation.Application.Assets.Core/01-Pump/PumpPart_Controller.cs
+++ b/Application/HStation.Application.Assets.Core/01-Pump/PumpPart_Controller.cs
@@ -1,4 +1,6 @@
-锘縩amespace HStation.Application
+锘縰sing Mapster;
+
+namespace HStation.Application
 {
     /// <summary>
     /// AssetsPumpMain
@@ -95,12 +97,12 @@
         //鎻掑叆鎷撳睍
         [Route("InsertEx@V1.0")]
         [HttpPost]
-        public long InsertEx(AddAssetsPumpPartMainInput part, List<AddAssetsPumpPropContentInput> propcontents, AddAssetsPumpMainAndPartMapInput partmap)
+        public long InsertEx(AddPumpPartMainExInput input)
         {
-            var partmodel = part.Adapt<AddAssetsPumpPartMainInput, Model.AssetsPumpPartMain>();
+            var partmodel = input.PartMain.Adapt<AddAssetsPumpPartMainInput, Model.AssetsPumpPartMain>();
             partmodel.SortCode = _service.GetMaxSortCode() + 1;
-            var propcontentlistmodel = propcontents.Select(x => x.Adapt<AddAssetsPumpPropContentInput, Model.AssetsPumpPropContent>()).ToList();
-            var partmapmodel = partmap.Adapt<AddAssetsPumpMainAndPartMapInput, Model.AssetsPumpMainAndPartMapping>();
+            var propcontentlistmodel = input.PropContent.Select(x => x.Adapt<AddAssetsPumpPropContentInput, Model.AssetsPumpPropContent>()).ToList();
+            var partmapmodel = input.PartMapping.Adapt<AddAssetsPumpMainAndPartMapInput, Model.AssetsPumpMainAndPartMapping>();
             var id = _service.InsertEX(partmodel, propcontentlistmodel, partmapmodel);
             return id;
         }
@@ -146,11 +148,11 @@
 
         //缂栬緫鎷撳睍
         [Route("UpdateEx@V1.0")]
-        [HttpPut]
-        public bool UpdateEx(UpdateAssetsPumpPartMainInput pumppart, List<UpdateAssetsPumpPropContentInput> updateAssetsPumpPropContentDtos)
+        [HttpPost]
+        public bool UpdateEx(UpdatePumpPartMainExInput input)
         {
-            var partmodel = pumppart.Adapt<UpdateAssetsPumpPartMainInput, Model.AssetsPumpPartMain>();
-            var propcontentlistmodel = updateAssetsPumpPropContentDtos.Select(x => x.Adapt<UpdateAssetsPumpPropContentInput, Model.AssetsPumpPropContent>()).ToList();
+            var partmodel = input.PartMain.Adapt<UpdateAssetsPumpPartMainInput, Model.AssetsPumpPartMain>();
+            var propcontentlistmodel = input.PropContent.Select(x => x.Adapt<UpdateAssetsPumpPropContentInput, Model.AssetsPumpPropContent>()).ToList();
             return _service.UpdateEX(partmodel, propcontentlistmodel);
         }
 
@@ -200,17 +202,17 @@
             return true;
         }
 
-        /*        [Route("DeleteEx@V1.0")]
-                [HttpDelete]
-                public bool DeleteEx(long ID)
-                {
-                    var bol = _service.DeleteExByID(ID);
-                    if (!bol)
-                    {
-                        throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, "鍒犻櫎澶辫触");
-                    }
-                    return true;
-                }*/
+        [Route("DeleteEx@V1.0")]
+        [HttpDelete]
+        public bool DeleteEx(long ID)
+        {
+            var bol = _service.DeleteExByID(ID);
+            if (!bol)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, "鍒犻櫎澶辫触");
+            }
+            return true;
+        }
 
         #endregion Delete
     }
diff --git a/Application/HStation.Application.Assets.Core/01-Pump/PumpPropContent_Controller.cs b/Application/HStation.Application.Assets.Core/01-Pump/PumpPropContent_Controller.cs
index 62648e7..f374682 100644
--- a/Application/HStation.Application.Assets.Core/01-Pump/PumpPropContent_Controller.cs
+++ b/Application/HStation.Application.Assets.Core/01-Pump/PumpPropContent_Controller.cs
@@ -47,17 +47,17 @@
             return vm_list;
         }
 
-        /*        /// <summary>
-                /// 閫氳繃浜у搧ID 鑾峰彇
-                /// </summary>
-                [Route("GetByPumpPartID@V1.0")]
-                [HttpGet]
-                public List<AssetsPumpPropContentDto> GetByPumpPartID(long pumpPartId)
-                {
-                    var list = _service.GetByPartID(pumpPartId);
-                    var vm_list = list?.Select(x => new AssetsPumpPropContentDto(x)).ToList();
-                    return vm_list;
-                }*/
+        /// <summary>
+        /// 閫氳繃浜у搧ID 鑾峰彇
+        /// </summary>
+        [Route("GetByPumpPartID@V1.0")]
+        [HttpGet]
+        public List<AssetsPumpPropContentDto> GetByPumpPartID(long pumpPartId)
+        {
+            var list = _service.GetByPartID(pumpPartId);
+            var vm_list = list?.Select(x => new AssetsPumpPropContentDto(x)).ToList();
+            return vm_list;
+        }
 
         #endregion Query
 
diff --git a/Application/HStation.Application.Assets.Core/23-translation/01-series/AssetsCoolingSeries_Controller.cs b/Application/HStation.Application.Assets.Core/23-translation/01-series/AssetsCoolingSeries_Controller.cs
new file mode 100644
index 0000000..412034d
--- /dev/null
+++ b/Application/HStation.Application.Assets.Core/23-translation/01-series/AssetsCoolingSeries_Controller.cs
@@ -0,0 +1,278 @@
+锘縩amespace HStation.Application
+{
+    /// <summary>
+    /// 杩囨浮浠剁郴鍒�
+    /// </summary>
+    [Route("Assets/Translation/Series")]
+    [ApiDescriptionSettings("Assets", Name = "杩囨浮浠剁郴鍒�", Order = 10000)]
+    public class AssetsTranslationSeries_Controller : IDynamicApiController
+    {
+        private readonly HStation.Service.AssetsTranslationSeries _service = new();
+
+        #region Query
+
+        /// <summary>
+        /// 鑾峰彇鎵�鏈�
+        /// </summary>
+        [Route("GetAll@V1.0")]
+        [HttpGet]
+        public List<AssetsTranslationSeriesDto> GetAll()
+        {
+            var list = _service.GetAll();
+            var vmList = list?.Select(x => new AssetsTranslationSeriesDto(x)).ToList();
+            return vmList;
+        }
+
+        /// <summary>
+        /// 閫氳繃 ID 鑾峰彇
+        /// </summary>
+        [Route("GetByID@V1.0")]
+        [HttpGet]
+        public AssetsTranslationSeriesDto GetByID([FromQuery][Required] IDInput input)
+        {
+            var model = _service.GetByID(input.ID);
+            return model == null ? null : new AssetsTranslationSeriesDto(model);
+        }
+
+        /// <summary>
+        /// 閫氳繃 Ids 鑾峰彇
+        /// </summary>
+        [Route("GetByIds@V1.0")]
+        [HttpGet]
+        public List<AssetsTranslationSeriesDto> GetByIds([FromQuery][Required] IdsInput input)
+        {
+            var ids = LongListHelper.ToList(input.Ids);
+            var list = _service.GetByIds(ids);
+            var vmList = list?.Select(x => new AssetsTranslationSeriesDto(x)).ToList();
+            return vmList;
+        }
+
+        #endregion Query
+
+        #region Insert
+
+        /// <summary>
+        /// 鎻掑叆涓�鏉�
+        /// </summary>
+        [Route("Insert@V1.0")]
+        [HttpPost]
+        public long Insert([Required] AddAssetsTranslationSeriesInput input)
+        {
+            var parentIds = new List<long>();
+            if (input.ParentID > 0)
+            {
+                var parent = _service.GetByID(input.ParentID);
+                if (parent == null)
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ParentID:{input.ParentID} 鏁版嵁涓嶅瓨鍦�");
+                }
+                parentIds = TreeParentIdsHelper.GetChildParentIds(parent.ID, parent.ParentIds);
+            }
+            if (!string.IsNullOrEmpty(input.TagName))
+            {
+                if (_service.IsExistTagName(input.TagName))
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName} 鏍囪宸插瓨鍦�");
+                }
+            }
+            var model = input.Adapt<AddAssetsTranslationSeriesInput, Model.AssetsTranslationSeries>();
+            model.ParentIds = parentIds;
+            model.SortCode = _service.GetMaxSortCode(input.ParentID) + 1;
+            var id = _service.Insert(model);
+            return id;
+        }
+
+        #endregion Insert
+
+        #region Update
+
+        /// <summary>
+        /// 鏇存柊涓�鏉�
+        /// </summary>
+        [Route("Update@V1.0")]
+        [HttpPut]
+        public bool Update(UpdateAssetsTranslationSeriesInput input)
+        {
+            var model = _service.GetByID(input.ID);
+            if (model == null)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} 鏁版嵁涓嶅瓨鍦�");
+            }
+            if (!string.IsNullOrEmpty(input.TagName))
+            {
+                if (_service.IsExistTagNameExceptID(input.TagName, input.ID))
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName} 鏍囪宸插瓨鍦�");
+                }
+            }
+            var rhs = new Model.AssetsTranslationSeries(model);
+            input.Adapt(rhs);
+            var bol = _service.Update(rhs);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊鎺掑簭鐮�
+        /// </summary>
+        [Route("UpdateSortCode@V1.0")]
+        [HttpPut]
+        public bool UpdateSortCode([Required] UpdateSortCodeInput input)
+        {
+            var bol = _service.UpdateSortCode(input.ID, input.SortCode);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊鎺掑簭
+        /// </summary>
+        [Route("UpdateSorter@V1.0")]
+        [HttpPut]
+        public bool UpdateSorter([Required] List<UpdateSortCodeInput> input)
+        {
+            var list = input.Select(x => x.Adapt<UpdateSortCodeInput, Yw.Model.Sorter>()).ToList();
+            var bol = _service.UpdateSorter(list);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊鏍戞帓搴忕爜
+        /// </summary>
+        [Route("UpdateTreeSortCode@V1.0")]
+        [HttpPut]
+        public bool UpdateTreeSortCode([Required] UpdateTreeSortCodeInput input)
+        {
+            var model = _service.GetByID(input.ID);
+            if (model == null)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} 鏁版嵁涓嶅瓨鍦�");
+            }
+            var parentIds = new List<long>();
+            if (input.ParentID > 0)
+            {
+                var parent = _service.GetByID(input.ParentID);
+                if (parent == null)
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ParentID:{input.ParentID} 鏁版嵁涓嶅瓨鍦�");
+                }
+                parentIds = TreeParentIdsHelper.GetChildParentIds(parent.ID, parent.ParentIds);
+            }
+            var sorterList = new List<Yw.Model.TreeSorter>()
+            {
+                new Yw.Model.TreeSorter()
+                {
+                    ID=input.ID,
+                    ParentIds=parentIds,
+                    SortCode=input.SortCode
+                }
+            };
+            if (TreeParentIdsHelper.ToString(parentIds) != TreeParentIdsHelper.ToString(model.ParentIds))
+            {
+                var children = _service.GetChildrenByID(input.ID);
+                if (children != null && children.Count > 0)
+                {
+                    foreach (var item in children)
+                    {
+                        var itemParent = sorterList.Find(x => x.ID == item.ParentIds.Last());
+                        var itemParentIds = TreeParentIdsHelper.GetChildParentIds(itemParent.ID, itemParent.ParentIds);
+                        var sorter = new Yw.Model.TreeSorter()
+                        {
+                            ID = item.ID,
+                            ParentIds = itemParentIds,
+                            SortCode = item.SortCode
+                        };
+                        sorterList.Add(sorter);
+                    }
+                }
+            }
+            var bol = _service.UpdateTreeSorter(sorterList);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊 Paras
+        /// </summary>
+        [Route("UpdateParas@V1.0")]
+        [HttpPut]
+        public bool UpdateParas([Required] UpdateParasInput input)
+        {
+            var bol = _service.UpdateParas(input.ID, input.Paras);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊 Flags
+        /// </summary>
+        [Route("UpdateFlags@V1.0")]
+        [HttpPut]
+        public bool UpdateFlags([Required] UpdateFlagsInput input)
+        {
+            var bol = _service.UpdateFlags(input.ID, input.Flags);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊TagName
+        /// </summary>
+        [Route("UpdateTagName@V1.0")]
+        [HttpPut]
+        public bool UpdateTagName([Required] UpdateTagNameInput input)
+        {
+            if (!string.IsNullOrEmpty(input.TagName))
+            {
+                if (_service.IsExistTagNameExceptID(input.TagName, input.ID))
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName} 鏍囪宸插瓨鍦�");
+                }
+            }
+            var bol = _service.UpdateTagName(input.ID, input.TagName);
+            return bol;
+        }
+
+        #endregion Update
+
+        #region Exist
+
+        /// <summary>
+        /// 鍒ゆ柇TagName鏄惁瀛樺湪
+        /// </summary>
+        [Route("IsExistTagName@V1.0")]
+        [HttpGet]
+        public bool IsExistTagName([FromQuery][Required] TagNameInput input)
+        {
+            var bol = _service.IsExistTagName(input.TagName);
+            return bol;
+        }
+
+        /// <summary>
+        ///  鍒ゆ柇TagName鏄惁瀛樺湪 ExceptID
+        /// </summary>
+        [Route("IsExistTagNameExceptID@V1.0")]
+        [HttpGet]
+        public bool IsExistTagNameExceptID([FromQuery][Required] TagNameExceptInput input)
+        {
+            var bol = _service.IsExistTagNameExceptID(input.TagName, input.ExceptID);
+            return bol;
+        }
+
+        #endregion Exist
+
+        #region Delete
+
+        /// <summary>
+        /// 鍒犻櫎
+        /// </summary>
+        [Route("DeleteByID@V1.0")]
+        [HttpDelete]
+        public bool DeleteByID([FromQuery][Required] IDInput input)
+        {
+            var bol = _service.DeleteByID(input.ID, out string Msg);
+            if (!bol)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, Msg);
+            }
+            return bol;
+        }
+
+        #endregion Delete
+    }
+}
\ No newline at end of file
diff --git a/Application/HStation.Application.Assets.Core/23-translation/02-main/AssetsCoolingMain_Controller.cs b/Application/HStation.Application.Assets.Core/23-translation/02-main/AssetsCoolingMain_Controller.cs
new file mode 100644
index 0000000..2acf0f0
--- /dev/null
+++ b/Application/HStation.Application.Assets.Core/23-translation/02-main/AssetsCoolingMain_Controller.cs
@@ -0,0 +1,240 @@
+锘縩amespace HStation.Application
+{
+    /// <summary>
+    /// 杩囨浮浠跺瀷鍙�
+    /// </summary>
+    [Route("Assets/Translation/Main")]
+    [ApiDescriptionSettings("Assets", Name = "杩囨浮浠跺瀷鍙�", Order = 9000)]
+    public class AssetsTranslationMain_Controller : IDynamicApiController
+    {
+        private readonly HStation.Service.AssetsTranslationMain _service = new();
+
+        #region Query
+
+        /// <summary>
+        /// 鑾峰彇鎵�鏈�
+        /// </summary>
+        [Route("GetAll@V1.0")]
+        [HttpGet]
+        public List<AssetsTranslationMainDto> GetAll()
+        {
+            var list = _service.GetAll();
+            var vmList = list?.Select(x => new AssetsTranslationMainDto(x)).ToList();
+            return vmList;
+        }
+
+        /// <summary>
+        /// 閫氳繃 SeriesID 鑾峰彇
+        /// </summary>
+        [Route("GetBySeriesID@V1.0")]
+        [HttpGet]
+        public List<AssetsTranslationMainDto> GetBySeriesID([FromQuery][Required] SeriesIDInput input)
+        {
+            var list = _service.GetBySeriesID(input.SeriesID);
+            var vmList = list?.Select(x => new AssetsTranslationMainDto(x)).ToList();
+            return vmList;
+        }
+
+        /// <summary>
+        /// 閫氳繃 ID 鑾峰彇
+        /// </summary>
+        [Route("GetByID@V1.0")]
+        [HttpGet]
+        public AssetsTranslationMainDto GetByID([FromQuery][Required] IDInput input)
+        {
+            var model = _service.GetByID(input.ID);
+            return model == null ? null : new AssetsTranslationMainDto(model);
+        }
+
+        /// <summary>
+        /// 閫氳繃 Ids 鑾峰彇
+        /// </summary>
+        [Route("GetByIds@V1.0")]
+        [HttpGet]
+        public List<AssetsTranslationMainDto> GetByIds([FromQuery][Required] IdsInput input)
+        {
+            var ids = LongListHelper.ToList(input.Ids);
+            var list = _service.GetByIds(ids);
+            var vmList = list?.Select(x => new AssetsTranslationMainDto(x)).ToList();
+            return vmList;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏁伴噺
+        /// </summary>
+        [Route("GetCount@V1.0")]
+        [HttpGet]
+        public int GetCount()
+        {
+            return _service.GetCount();
+        }
+
+        #endregion Query
+
+        #region Insert
+
+        /// <summary>
+        /// 鎻掑叆涓�鏉�
+        /// </summary>
+        [Route("Insert@V1.0")]
+        [HttpPost]
+        public long Insert([Required] AddAssetsTranslationMainInput input)
+        {
+            var series = new HStation.Service.AssetsTranslationSeries().GetByID(input.SeriesID);
+            if (series == null)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"SeriesID:{input.SeriesID} 鏁版嵁涓嶅瓨鍦�");
+            }
+            if (!string.IsNullOrEmpty(input.TagName))
+            {
+                if (_service.IsExistTagName(input.TagName))
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName} 鏍囪宸插瓨鍦�");
+                }
+            }
+            var model = input.Adapt<AddAssetsTranslationMainInput, Model.AssetsTranslationMain>();
+            model.SortCode = _service.GetMaxSortCode(input.SeriesID) + 1;
+            var id = _service.Insert(model);
+            return id;
+        }
+
+        #endregion Insert
+
+        #region Update
+
+        /// <summary>
+        /// 鏇存柊涓�鏉�
+        /// </summary>
+        [Route("Update@V1.0")]
+        [HttpPut]
+        public bool Update(UpdateAssetsTranslationMainInput input)
+        {
+            var model = _service.GetByID(input.ID);
+            if (model == null)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} 鏁版嵁涓嶅瓨鍦�");
+            }
+            if (!string.IsNullOrEmpty(input.TagName))
+            {
+                if (_service.IsExistTagNameExceptID(input.TagName, input.ID))
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName} 鏍囪宸插瓨鍦�");
+                }
+            }
+            var rhs = new Model.AssetsTranslationMain(model);
+            input.Adapt(rhs);
+            var bol = _service.Update(rhs);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊鎺掑簭鐮�
+        /// </summary>
+        [Route("UpdateSortCode@V1.0")]
+        [HttpPut]
+        public bool UpdateSortCode([Required] UpdateSortCodeInput input)
+        {
+            var bol = _service.UpdateSortCode(input.ID, input.SortCode);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊鎺掑簭
+        /// </summary>
+        [Route("UpdateSorter@V1.0")]
+        [HttpPut]
+        public bool UpdateSorter([Required] List<UpdateSortCodeInput> input)
+        {
+            var list = input.Select(x => x.Adapt<UpdateSortCodeInput, Yw.Model.Sorter>()).ToList();
+            var bol = _service.UpdateSorter(list);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊 Paras
+        /// </summary>
+        [Route("UpdateParas@V1.0")]
+        [HttpPut]
+        public bool UpdateParas([Required] UpdateParasInput input)
+        {
+            var bol = _service.UpdateParas(input.ID, input.Paras);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊 Flags
+        /// </summary>
+        [Route("UpdateFlags@V1.0")]
+        [HttpPut]
+        public bool UpdateFlags([Required] UpdateFlagsInput input)
+        {
+            var bol = _service.UpdateFlags(input.ID, input.Flags);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊TagName
+        /// </summary>
+        [Route("UpdateTagName@V1.0")]
+        [HttpPut]
+        public bool UpdateTagName([Required] UpdateTagNameInput input)
+        {
+            if (!string.IsNullOrEmpty(input.TagName))
+            {
+                if (_service.IsExistTagNameExceptID(input.TagName, input.ID))
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName} 鏍囪宸插瓨鍦�");
+                }
+            }
+            var bol = _service.UpdateTagName(input.ID, input.TagName);
+            return bol;
+        }
+
+        #endregion Update
+
+        #region Exist
+
+        /// <summary>
+        /// 鍒ゆ柇TagName鏄惁瀛樺湪
+        /// </summary>
+        [Route("IsExistTagName@V1.0")]
+        [HttpGet]
+        public bool IsExistTagName([FromQuery][Required] TagNameInput input)
+        {
+            var bol = _service.IsExistTagName(input.TagName);
+            return bol;
+        }
+
+        /// <summary>
+        ///  鍒ゆ柇TagName鏄惁瀛樺湪 ExceptID
+        /// </summary>
+        [Route("IsExistTagNameExceptID@V1.0")]
+        [HttpGet]
+        public bool IsExistTagNameExceptID([FromQuery][Required] TagNameExceptInput input)
+        {
+            var bol = _service.IsExistTagNameExceptID(input.TagName, input.ExceptID);
+            return bol;
+        }
+
+        #endregion Exist
+
+        #region Delete
+
+        /// <summary>
+        /// 鍒犻櫎
+        /// </summary>
+        [Route("DeleteByID@V1.0")]
+        [HttpDelete]
+        public bool DeleteByID([FromQuery][Required] IDInput input)
+        {
+            var bol = _service.DeleteByID(input.ID, out string Msg);
+            if (!bol)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, Msg);
+            }
+            return bol;
+        }
+
+        #endregion Delete
+    }
+}
\ No newline at end of file
diff --git a/Application/HStation.Application.Assets.Core/23-translation/03-factor/AssetsCoolingFactor_Controller.cs b/Application/HStation.Application.Assets.Core/23-translation/03-factor/AssetsCoolingFactor_Controller.cs
new file mode 100644
index 0000000..ebee6bd
--- /dev/null
+++ b/Application/HStation.Application.Assets.Core/23-translation/03-factor/AssetsCoolingFactor_Controller.cs
@@ -0,0 +1,133 @@
+锘縩amespace HStation.Application
+{
+    /// <summary>
+    /// 杩囨浮浠剁郴鏁�
+    /// </summary>
+    [Route("Assets/Translation/Factor")]
+    [ApiDescriptionSettings("Assets", Name = "杩囨浮浠剁郴鏁�", Order = 8000)]
+    public class AssetsTranslationFactor_Controller : IDynamicApiController
+    {
+        private readonly HStation.Service.AssetsTranslationFactor _service = new();
+
+        #region Query
+
+        /// <summary>
+        /// 鑾峰彇鎵�鏈�
+        /// </summary>
+        [Route("GetAll@V1.0")]
+        [HttpGet]
+        public List<AssetsTranslationFactorDto> GetAll()
+        {
+            var list = _service.GetAll();
+            var vmList = list?.Select(x => new AssetsTranslationFactorDto(x)).ToList();
+            return vmList;
+        }
+
+        /// <summary>
+        /// 閫氳繃 ID 鑾峰彇
+        /// </summary>
+        [Route("GetByID@V1.0")]
+        [HttpGet]
+        public AssetsTranslationFactorDto GetByID([FromQuery][Required] IDInput input)
+        {
+            var model = _service.GetByID(input.ID);
+            return model == null ? null : new AssetsTranslationFactorDto(model);
+        }
+
+        /// <summary>
+        /// 閫氳繃 Ids 鑾峰彇
+        /// </summary>
+        [Route("GetByIds@V1.0")]
+        [HttpGet]
+        public List<AssetsTranslationFactorDto> GetByIds([FromQuery][Required] IdsInput input)
+        {
+            var ids = LongListHelper.ToList(input.Ids);
+            var list = _service.GetByIds(ids);
+            var vmList = list?.Select(x => new AssetsTranslationFactorDto(x)).ToList();
+            return vmList;
+        }
+
+        #endregion Query
+
+        #region Insert
+
+        /// <summary>
+        /// 鎻掑叆涓�鏉�
+        /// </summary>
+        [Route("Insert@V1.0")]
+        [HttpPost]
+        public long Insert([Required] AddAssetsTranslationFactorInput input)
+        {
+            var model = input.Adapt<AddAssetsTranslationFactorInput, Model.AssetsTranslationFactor>();
+            model.SortCode = _service.GetMaxSortCode() + 1;
+            var id = _service.Insert(model);
+            return id;
+        }
+
+        #endregion Insert
+
+        #region Update
+
+        /// <summary>
+        /// 鏇存柊涓�鏉�
+        /// </summary>
+        [Route("Update@V1.0")]
+        [HttpPut]
+        public bool Update(UpdateAssetsTranslationFactorInput input)
+        {
+            var model = _service.GetByID(input.ID);
+            if (model == null)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} 鏁版嵁涓嶅瓨鍦�");
+            }
+            var rhs = new Model.AssetsTranslationFactor(model);
+            input.Adapt(rhs);
+            var bol = _service.Update(rhs);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊鎺掑簭鐮�
+        /// </summary>
+        [Route("UpdateSortCode@V1.0")]
+        [HttpPut]
+        public bool UpdateSortCode([Required] UpdateSortCodeInput input)
+        {
+            var bol = _service.UpdateSortCode(input.ID, input.SortCode);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊鎺掑簭
+        /// </summary>
+        [Route("UpdateSorter@V1.0")]
+        [HttpPut]
+        public bool UpdateSorter([Required] List<UpdateSortCodeInput> input)
+        {
+            var list = input.Select(x => x.Adapt<UpdateSortCodeInput, Yw.Model.Sorter>()).ToList();
+            var bol = _service.UpdateSorter(list);
+            return bol;
+        }
+
+        #endregion Update
+
+        #region Delete
+
+        /// <summary>
+        /// 鍒犻櫎
+        /// </summary>
+        [Route("DeleteByID@V1.0")]
+        [HttpDelete]
+        public bool DeleteByID([FromQuery][Required] IDInput input)
+        {
+            var bol = _service.DeleteByID(input.ID, out string Msg);
+            if (!bol)
+            {
+                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, Msg);
+            }
+            return bol;
+        }
+
+        #endregion Delete
+    }
+}
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpGroupAndMainMap.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpGroupAndMainMap.cs
index c20ce77..a76e5ba 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpGroupAndMainMap.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpGroupAndMainMap.cs
@@ -5,7 +5,7 @@
     /// <summary>
     ///
     /// </summary>
-    public class AssetsPumpGroupAndMainMap : BaseCAL_Paras_Flags_TagName_Sorter<AddAssetsPumpGroupAndMainMapInput, UpdateAssetsPumpGroupAndMainMapInput, AssetsPumpGroupAndMainMapDto>, IAssetsPumpGroupAndMainMapping
+    public class AssetsPumpGroupAndMainMapping : BaseCAL_Paras_Flags_TagName_Sorter<AddAssetsPumpGroupAndMainMapInput, UpdateAssetsPumpGroupAndMainMapInput, AssetsPumpGroupAndMainMapDto>, IAssetsPumpGroupAndMainMapping
     {
         protected override string Prefix
         {
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpMain.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpMain.cs
index d5acdea..c24ea33 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpMain.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpMain.cs
@@ -13,7 +13,7 @@
         }
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
         public async Task<int> GetCount()
         {
@@ -38,19 +38,21 @@
             return await GetUrl("GetByPumpSeriesID@V1.0").Get<List<AssetsPumpMainDto>>(paras);
         }
 
-        public Task<List<AssetsPumpPartMainDto>> GetPartByID(long ID)
+        public async Task<List<AssetsPumpPartMainDto>> GetPartByID(long ID)
         {
-            throw new NotImplementedException();
+            var paras = new List<(string Name, object Value)>()
+            {
+                (nameof(ID),ID)
+            };
+            return await GetUrl("GetPartByID@V1.0").Get<List<AssetsPumpPartMainDto>>(paras);
         }
 
         public async Task<long> InsertEx(AddAssetsPumpMainInput input, AddAssetsPumpGroupAndMainMapInput mainmap)
         {
-            var paras = new List<(string Name, object Value)>()
-            {
-                (nameof(input),input),
-                (nameof (mainmap),mainmap)
-             };
-            return await GetUrl("InsertEx@V1.0").Post<long>(paras);
+            var mainExInput = new AddPumpMainExInput();
+            mainExInput.MainInput = input;
+            mainExInput.MainMapInput = mainmap;
+            return await GetUrl("InsertEx@V1.0").Post<long>(mainExInput);
         }
     }
 }
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpPart.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpPart.cs
deleted file mode 100644
index 76f1172..0000000
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpPart.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-锘縰sing Yw.CAL.HttpClient;
-
-namespace HStation.CAL.HttpClient
-{
-    /// <summary>
-    ///
-    /// </summary>
-    public class PumpPart : BaseCAL_Paras_Flags_TagName_Sorter<AddAssetsPumpPartMainInput, UpdateAssetsPumpPartMainInput, AssetsPumpPartMainDto>, IAssetsPumpPartMain
-    {
-        protected override string Prefix
-        {
-            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/PumpPumpPart"; }
-        }
-
-        public async Task<bool> DeleteEx(long ID)
-        {
-            var paras = new List<(string Name, object Value)>()
-            {
-                (nameof(ID),ID)
-            };
-            return await GetUrl("DeleteEx@V1.0").Delete<bool>(paras);
-        }
-
-        public async Task<List<AssetsPumpPartMainDto>> GetByPumpMainID(long ID)
-        {
-            var paras = new List<(string Name, object Value)>()
-            {
-                (nameof(ID),ID)
-            };
-            return await GetUrl("GetByPumpMainID@V1.0").Get<List<AssetsPumpPartMainDto>>(paras);
-        }
-
-        public async Task<long> InsertEx(AddAssetsPumpPartMainInput part, List<AddAssetsPumpPropContentInput> propcontents, AddAssetsPumpMainAndPartMapInput partmap)
-        {
-            var paras = new List<(string Name, object Value)>()
-            {
-                (nameof(part),part),
-                (nameof(propcontents),propcontents),
-                (nameof(partmap),partmap),
-            };
-            return await GetUrl("InsertEx@V1.0").Get<long>(paras);
-        }
-
-        public async Task<bool> UpdateEx(UpdateAssetsPumpPartMainInput pumppart, List<UpdateAssetsPumpPropContentInput> updateAssetsPumpPropContentDtos)
-        {
-            var paras = new List<(string Name, object Value)>()
-            {
-                (nameof(pumppart),pumppart),
-                (nameof ( updateAssetsPumpPropContentDtos),updateAssetsPumpPropContentDtos)
-            };
-            return await GetUrl("GetByPumpMainID@V1.0").Put<bool>(paras);
-        }
-    }
-}
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpPartMain.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpPartMain.cs
new file mode 100644
index 0000000..63a718c
--- /dev/null
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpPartMain.cs
@@ -0,0 +1,50 @@
+锘縰sing Yw.CAL.HttpClient;
+
+namespace HStation.CAL.HttpClient
+{
+    /// <summary>
+    ///
+    /// </summary>
+    public class AssetsPumpPartMain : BaseCAL_Paras_Flags_TagName_Sorter<AddAssetsPumpPartMainInput, UpdateAssetsPumpPartMainInput, AssetsPumpPartMainDto>, IAssetsPumpPartMain
+    {
+        protected override string Prefix
+        {
+            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/PumpPart"; }
+        }
+
+        public async Task<bool> DeleteEx(long ID)
+        {
+            var paras = new List<(string Name, object Value)>()
+            {
+                (nameof(ID),ID)
+            };
+            return await GetUrl("DeleteEx@V1.0").Delete<bool>(paras);
+        }
+
+        public async Task<List<AssetsPumpPartMainDto>> GetByPumpMainID(long ID)
+        {
+            var paras = new List<(string Name, object Value)>()
+            {
+                (nameof(ID),ID)
+            };
+            return await GetUrl("GetByPumpMainID@V1.0").Get<List<AssetsPumpPartMainDto>>(paras);
+        }
+
+        public async Task<long> InsertEx(AddAssetsPumpPartMainInput part, List<AddAssetsPumpPropContentInput> propcontents, AddAssetsPumpMainAndPartMapInput partmap)
+        {
+            var addPartInput = new AddPumpPartMainExInput();
+            addPartInput.PartMain = part;
+            addPartInput.PropContent = propcontents;
+            addPartInput.PartMapping = partmap;
+            return await GetUrl("InsertEx@V1.0").Post<long>(addPartInput);
+        }
+
+        public async Task<bool> UpdateEx(UpdateAssetsPumpPartMainInput pumppart, List<UpdateAssetsPumpPropContentInput> Contents)
+        {
+            var updatePartInput = new UpdatePumpPartMainExInput();
+            updatePartInput.PartMain = pumppart;
+            updatePartInput.PropContent = Contents;
+            return await GetUrl("UpdateEx@V1.0").Post<bool>(updatePartInput);
+        }
+    }
+}
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpTypeSeriesMap.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpTypeSeriesMap.cs
index baee4b2..cd86717 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpTypeSeriesMap.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/01-Pump/PumpTypeSeriesMap.cs
@@ -5,7 +5,7 @@
     /// <summary>
     ///
     /// </summary>
-    public class AssetsPumpTypeSeriesMap : BaseCAL_Sorter<AddAssetsPumpTypeSeriesMapInput, UpdateAssetsPumpTypeSeriesMapInput, AssetsPumpTypeSeriesMapDto>, IAssetsPumpSeriesTypeMapping
+    public class AssetsPumpSeriesTypeMapping : BaseCAL_Sorter<AddAssetsPumpTypeSeriesMapInput, UpdateAssetsPumpTypeSeriesMapInput, AssetsPumpTypeSeriesMapDto>, IAssetsPumpSeriesTypeMapping
     {
         protected override string Prefix
         {
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadCoefficient.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadCoefficient.cs
deleted file mode 100644
index b368a49..0000000
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadCoefficient.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-锘縰sing Yw.CAL.HttpClient;
-
-namespace HStation.CAL.HttpClient
-{
-    /// <summary>
-    ///
-    ///</summary>
-    public class AssetsBluntheadCoefficient : BaseCAL<AddAssetsBluntheadFactorInput, UpdateAssetsBluntheadFactorInput, AssetsBluntheadFactorDto>, IAssetsBluntheadFactor
-    {
-        protected override string Prefix
-        {
-            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Blunthead/Factor"; }
-        }
-
-        public Task<bool> UpdateSortCode(long ID, int SortCode)
-        {
-            throw new NotImplementedException();
-        }
-
-        public Task<bool> UpdateSorter(List<UpdateSortCodeInput> Sorters)
-        {
-            throw new NotImplementedException();
-        }
-    }
-}
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadFactor.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadFactor.cs
new file mode 100644
index 0000000..8df93e2
--- /dev/null
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadFactor.cs
@@ -0,0 +1,15 @@
+锘縰sing Yw.CAL.HttpClient;
+
+namespace HStation.CAL.HttpClient
+{
+    /// <summary>
+    ///
+    ///</summary>
+    public class AssetsBluntheadFactor : BaseCAL_Sorter<AddAssetsBluntheadFactorInput, UpdateAssetsBluntheadFactorInput, AssetsBluntheadFactorDto>, IAssetsBluntheadFactor
+    {
+        protected override string Prefix
+        {
+            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Blunthead/Factor"; }
+        }
+    }
+}
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadMain.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadMain.cs
index 253a573..6fa5552 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadMain.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/14-Blunthead/AssetsBluntheadMain.cs
@@ -12,9 +12,13 @@
             get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Blunthead/Main"; }
         }
 
-        public Task<List<AssetsBluntheadMainDto>> GetBySeriesID(long ID)
+        public async Task<List<AssetsBluntheadMainDto>> GetBySeriesID(long ID)
         {
-            throw new NotImplementedException();
+            var paras = new List<(string Name, object Value)>()
+            {
+                ("SeriesID",ID)
+            };
+            return await GetUrl("GetBySeriesID@V1.0").Get<List<AssetsBluntheadMainDto>>(paras);
         }
 
         /// <summary>
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/15-Tank/AssetsTankMain.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/15-Tank/AssetsTankMain.cs
index f5188b2..342ad38 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/15-Tank/AssetsTankMain.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/15-Tank/AssetsTankMain.cs
@@ -12,9 +12,13 @@
             get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Tank/Main"; }
         }
 
-        public Task<List<AssetsTankMainDto>> GetBySeriesID(long ID)
+        public async Task<List<AssetsTankMainDto>> GetBySeriesID(long ID)
         {
-            throw new NotImplementedException();
+            var paras = new List<(string Name, object Value)>()
+            {
+                ("SeriesID",ID)
+            };
+            return await GetUrl("GetBySeriesID@V1.0").Get<List<AssetsTankMainDto>>(paras);
         }
 
         /// <summary>
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantCoefficient.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantFactor.cs
similarity index 73%
rename from BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantCoefficient.cs
rename to BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantFactor.cs
index f5609ae..0f9a5b5 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantCoefficient.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantFactor.cs
@@ -5,11 +5,11 @@
     /// <summary>
     /// 娑堢伀鏍撶郴鏁�
     ///</summary>
-    public class AssetsHydrantCoefficient : BaseCAL<AddAssetsHydrantFactorInput, UpdateAssetsHydrantFactorInput, AssetsHydrantFactorDto>, IAssetsHydrantFactor
+    public class AssetsHydrantFactor : BaseCAL<AddAssetsHydrantFactorInput, UpdateAssetsHydrantFactorInput, AssetsHydrantFactorDto>, IAssetsHydrantFactor
     {
         protected override string Prefix
         {
-            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/AssetsHydrantCoefficient"; }
+            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Hydrant/Factor"; }
         }
 
         public Task<bool> UpdateSortCode(long ID, int SortCode)
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantMain.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantMain.cs
index 7ae5b2f..9e891bf 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantMain.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantMain.cs
@@ -9,12 +9,16 @@
     {
         protected override string Prefix
         {
-            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/AssetsHydrantMain"; }
+            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Hydrant/Main"; }
         }
 
-        public Task<List<AssetsHydrantMainDto>> GetBySeriesID(long ID)
+        public async Task<List<AssetsHydrantMainDto>> GetBySeriesID(long ID)
         {
-            throw new NotImplementedException();
+            var paras = new List<(string Name, object Value)>()
+            {
+                ("SeriesID",ID)
+            };
+            return await GetUrl("GetBySeriesID@V1.0").Get<List<AssetsHydrantMainDto>>(paras);
         }
 
         /// <summary>
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantSeries.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantSeries.cs
index 967fc0a..a539d5d 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantSeries.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/18-Hydrant/AssetsHydrantSeries.cs
@@ -9,7 +9,7 @@
     {
         protected override string Prefix
         {
-            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/AssetsHydrantSeries"; }
+            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Hydrant/Series"; }
         }
 
         /// <summary>
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationFactor.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationFactor.cs
index bfba88d..879794f 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationFactor.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationFactor.cs
@@ -9,7 +9,7 @@
     {
         protected override string Prefix
         {
-            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/AssetsTranslationFactor"; }
+            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Translation/Factor"; }
         }
 
         public Task<bool> UpdateSortCode(long ID, int SortCode)
diff --git a/BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationMain.cs b/BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationMain.cs
index c29a31b..e030ec9 100644
--- a/BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationMain.cs
+++ b/BLL/HStation.BLL.Assets.Core/02-httpclient/20-Translation/AssetsTranslationMain.cs
@@ -9,12 +9,16 @@
     {
         protected override string Prefix
         {
-            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/AssetsTranslationMain"; }
+            get { return $"{HStation.BLL.Assets.ConfigHelper.HttpUrl}/Assets/Translation/Main"; }
         }
 
-        public Task<List<AssetsTranslationMainDto>> GetBySeriesID(long ID)
+        public async Task<List<AssetsTranslationMainDto>> GetBySeriesID(long ID)
         {
-            throw new NotImplementedException();
+            var paras = new List<(string Name, object Value)>()
+            {
+                ("SeriesID",ID)
+            };
+            return await GetUrl("GetBySeriesID@V1.0").Get<List<AssetsTranslationMainDto>>(paras);
         }
 
         /// <summary>
diff --git a/Dto/HStation.Dto.Assets.Core/00-Pump/03-PumpMain/AddPumpMainExInput.cs b/Dto/HStation.Dto.Assets.Core/00-Pump/03-PumpMain/AddPumpMainExInput.cs
new file mode 100644
index 0000000..d5fff9f
--- /dev/null
+++ b/Dto/HStation.Dto.Assets.Core/00-Pump/03-PumpMain/AddPumpMainExInput.cs
@@ -0,0 +1,15 @@
+锘縰sing HStation.Dto.Assets;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HStation.Dto
+{
+    public class AddPumpMainExInput
+    {
+        public AddAssetsPumpMainInput MainInput { get; set; }
+        public AddAssetsPumpGroupAndMainMapInput MainMapInput { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/Dto/HStation.Dto.Assets.Core/00-Pump/05-PumpPartMain/AddPumpPartMainExInput.cs b/Dto/HStation.Dto.Assets.Core/00-Pump/05-PumpPartMain/AddPumpPartMainExInput.cs
new file mode 100644
index 0000000..499f546
--- /dev/null
+++ b/Dto/HStation.Dto.Assets.Core/00-Pump/05-PumpPartMain/AddPumpPartMainExInput.cs
@@ -0,0 +1,21 @@
+锘縰sing HStation.Dto.Assets;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HStation.Dto 
+{ 
+    public class AddPumpPartMainExInput
+    {
+        public AddAssetsPumpPartMainInput PartMain { get; set; }
+
+
+        public List<AddAssetsPumpPropContentInput> PropContent { get; set; }
+
+
+        public AddAssetsPumpMainAndPartMapInput PartMapping { get; set; }
+ 
+    }
+}
diff --git a/Dto/HStation.Dto.Assets.Core/00-Pump/05-PumpPartMain/UpdatePumpPartMainExInput.cs b/Dto/HStation.Dto.Assets.Core/00-Pump/05-PumpPartMain/UpdatePumpPartMainExInput.cs
new file mode 100644
index 0000000..71d2b8c
--- /dev/null
+++ b/Dto/HStation.Dto.Assets.Core/00-Pump/05-PumpPartMain/UpdatePumpPartMainExInput.cs
@@ -0,0 +1,16 @@
+锘縰sing HStation.Dto.Assets;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HStation.Dto
+{
+    public class UpdatePumpPartMainExInput
+    {
+        public UpdateAssetsPumpPartMainInput PartMain { get; set; }
+
+        public List<UpdateAssetsPumpPropContentInput> PropContent { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/Dto/HStation.Dto.Assets.Core/04-PipeLine/02-Main/AssetsPipeMainDto.cs b/Dto/HStation.Dto.Assets.Core/04-PipeLine/02-Main/AssetsPipeMainDto.cs
index 04d78bc..609a47c 100644
--- a/Dto/HStation.Dto.Assets.Core/04-PipeLine/02-Main/AssetsPipeMainDto.cs
+++ b/Dto/HStation.Dto.Assets.Core/04-PipeLine/02-Main/AssetsPipeMainDto.cs
@@ -14,6 +14,7 @@
             this.Material = rhs.Material;
             this.Hazen = rhs.Hazen;
             this.KeyWords = rhs.KeyWords;
+            this.TagName = rhs.TagName;
             this.SortCode = rhs.SortCode;
             this.Description = rhs.Description;
         }
diff --git a/Dto/HStation.Dto.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainDto.cs b/Dto/HStation.Dto.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainDto.cs
index ecb53e2..0170c83 100644
--- a/Dto/HStation.Dto.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainDto.cs
+++ b/Dto/HStation.Dto.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainDto.cs
@@ -22,6 +22,7 @@
             this.Paras = rhs.Paras;
             this.Flags = rhs.Flags;
             this.TagName = rhs.TagName;
+            this.KeyWords = rhs.KeyWords;
             this.SortCode = rhs.SortCode;
             this.Description = rhs.Description;
         }
diff --git a/Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj.user b/Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj.user
index 7f10306..142cb01 100644
--- a/Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj.user
+++ b/Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj.user
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <NameOfLastUsedPublishProfile>D:\WorkData\git\HStation\XHS\Entry\HStation.Entry.Xhs.Core\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
+    <NameOfLastUsedPublishProfile>D:\WorkData\HStation\XHS.V1.0\Entry\HStation.Entry.Xhs.Core\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
     <ActiveDebugProfile>IIS Express</ActiveDebugProfile>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
diff --git a/Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user b/Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
index 710304e..e819bcd 100644
--- a/Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,8 +4,8 @@
 -->
 <Project>
   <PropertyGroup>
-    <_PublishTargetUrl>D:\WorkData\git\HStation\XHS\Entry\HStation.Entry.Xhs.Core\bin\Release\net6.0\publish\</_PublishTargetUrl>
-    <History>True|2025-01-13T07:07:40.9182715Z;True|2025-01-13T12:08:58.0115763+08:00;True|2025-01-13T12:08:44.3187386+08:00;True|2025-01-13T12:07:41.4659157+08:00;True|2025-01-13T11:53:47.1828627+08:00;True|2025-01-13T11:38:53.6150404+08:00;True|2025-01-13T11:37:14.9075336+08:00;True|2025-01-13T11:35:23.3939940+08:00;True|2025-01-13T11:33:41.6199459+08:00;True|2025-01-13T11:32:15.2734783+08:00;True|2025-01-13T11:30:39.9296756+08:00;True|2025-01-13T11:25:02.3605923+08:00;True|2025-01-13T11:21:03.0110309+08:00;True|2025-01-13T11:17:46.3662069+08:00;True|2025-01-08T09:44:09.5132234+08:00;True|2024-09-03T11:22:43.3813050+08:00;True|2024-09-03T11:06:18.0799295+08:00;True|2024-09-03T10:52:25.3198740+08:00;True|2024-09-02T09:16:17.5197059+08:00;False|2024-09-02T09:08:02.4504522+08:00;True|2024-06-20T12:16:07.3854116+08:00;True|2024-06-18T09:13:21.8960491+08:00;True|2024-06-12T18:55:43.2697624+08:00;True|2024-06-12T18:54:42.2191664+08:00;True|2024-06-12T18:37:39.2735086+08:00;True|2024-06-12T18:32:59.2340941+08:00;True|2024-06-12T18:18:57.9018714+08:00;True|2024-06-12T18:13:13.4471521+08:00;True|2024-06-12T18:11:38.4803257+08:00;True|2024-06-12T18:10:00.3753638+08:00;True|2024-06-12T18:03:08.9521607+08:00;True|2024-06-12T17:59:46.2755740+08:00;True|2024-06-12T17:58:01.8017051+08:00;True|2024-06-12T17:56:20.6946001+08:00;True|2024-06-12T17:32:53.8291604+08:00;True|2024-06-12T17:32:38.6492118+08:00;False|2024-06-12T17:32:17.0260105+08:00;True|2024-06-12T17:08:59.9367775+08:00;True|2024-06-12T16:32:42.3320305+08:00;True|2024-06-07T13:34:17.3014803+08:00;True|2024-06-07T13:20:33.5124438+08:00;True|2024-06-07T10:24:47.0351087+08:00;True|2024-06-05T17:04:55.4017239+08:00;True|2024-06-05T16:05:35.1432805+08:00;True|2024-06-05T15:18:06.1797165+08:00;True|2024-06-05T13:53:59.9366676+08:00;True|2024-06-05T13:43:45.7009774+08:00;True|2024-06-05T13:38:18.1415782+08:00;True|2024-06-05T12:14:05.4745826+08:00;True|2024-06-05T12:10:02.8443283+08:00;True|2024-06-02T18:41:28.5233205+08:00;True|2024-06-02T18:21:27.5679625+08:00;True|2024-06-02T17:34:02.6234679+08:00;True|2024-06-02T16:58:23.9422671+08:00;True|2024-06-02T16:16:43.6949096+08:00;True|2024-06-02T14:44:06.8963915+08:00;True|2024-06-02T11:10:51.5587482+08:00;True|2024-06-01T11:30:39.5033584+08:00;True|2024-05-30T16:29:38.0730664+08:00;True|2024-05-30T15:16:14.5429969+08:00;True|2024-05-29T17:31:27.5349115+08:00;True|2024-05-29T16:49:44.3085849+08:00;True|2024-05-29T10:46:15.3071701+08:00;True|2024-05-28T16:21:22.2987178+08:00;True|2024-05-28T11:55:02.0680294+08:00;True|2024-05-24T09:27:50.0479340+08:00;True|2024-05-23T14:16:32.3824342+08:00;True|2024-05-23T10:51:43.4383910+08:00;True|2024-05-22T11:19:10.1709647+08:00;True|2024-05-22T11:12:47.8835237+08:00;True|2024-05-22T10:43:34.7720709+08:00;True|2024-05-21T17:25:46.9831973+08:00;True|2024-05-21T12:11:55.2774332+08:00;True|2024-05-13T10:32:18.9951394+08:00;True|2024-05-09T09:53:09.1673089+08:00;True|2024-05-08T17:18:58.3017566+08:00;True|2024-05-08T11:15:08.3734126+08:00;True|2024-05-07T10:59:04.2016283+08:00;True|2024-05-07T10:58:56.6254107+08:00;True|2024-05-07T10:56:03.7274034+08:00;True|2024-05-07T10:55:53.5496684+08:00;True|2024-05-07T10:55:41.1246352+08:00;True|2024-05-07T09:57:18.3908307+08:00;True|2024-05-06T18:17:15.0427456+08:00;True|2024-05-06T17:38:00.0855585+08:00;True|2024-05-06T14:04:15.4665470+08:00;True|2024-05-06T09:38:06.9447096+08:00;False|2024-05-06T09:37:21.4257032+08:00;True|2024-04-30T10:27:11.6268274+08:00;True|2024-04-29T17:32:47.8657162+08:00;True|2024-04-29T17:26:03.4222331+08:00;True|2024-04-29T15:01:02.7501034+08:00;True|2024-04-29T14:40:23.2902896+08:00;True|2024-04-29T14:15:48.2534191+08:00;True|2024-04-29T13:50:31.8486861+08:00;True|2024-04-29T13:50:13.0369014+08:00;True|2024-04-29T11:57:41.6418088+08:00;True|2024-04-28T16:09:30.7968764+08:00;True|2024-04-28T09:35:40.6700676+08:00;True|2024-04-28T09:35:15.2841524+08:00;</History>
+    <_PublishTargetUrl>D:\WorkData\HStation\XHS.V1.0\Entry\HStation.Entry.Xhs.Core\bin\Release\net6.0\publish\</_PublishTargetUrl>
+    <History>True|2025-01-17T08:00:24.8519121Z||;True|2025-01-17T14:50:21.3098636+08:00||;True|2025-01-17T14:45:46.9689138+08:00||;True|2025-01-17T14:36:04.9921078+08:00||;True|2025-01-17T14:25:15.1267818+08:00||;True|2025-01-17T14:22:22.6121641+08:00||;True|2025-01-13T15:07:40.9182715+08:00||;True|2025-01-13T12:08:58.0115763+08:00||;True|2025-01-13T12:08:44.3187386+08:00||;True|2025-01-13T12:07:41.4659157+08:00||;True|2025-01-13T11:53:47.1828627+08:00||;True|2025-01-13T11:38:53.6150404+08:00||;True|2025-01-13T11:37:14.9075336+08:00||;True|2025-01-13T11:35:23.3939940+08:00||;True|2025-01-13T11:33:41.6199459+08:00||;True|2025-01-13T11:32:15.2734783+08:00||;True|2025-01-13T11:30:39.9296756+08:00||;True|2025-01-13T11:25:02.3605923+08:00||;True|2025-01-13T11:21:03.0110309+08:00||;True|2025-01-13T11:17:46.3662069+08:00||;True|2025-01-08T09:44:09.5132234+08:00||;True|2024-09-03T11:22:43.3813050+08:00||;True|2024-09-03T11:06:18.0799295+08:00||;True|2024-09-03T10:52:25.3198740+08:00||;True|2024-09-02T09:16:17.5197059+08:00||;False|2024-09-02T09:08:02.4504522+08:00||;True|2024-06-20T12:16:07.3854116+08:00||;True|2024-06-18T09:13:21.8960491+08:00||;True|2024-06-12T18:55:43.2697624+08:00||;True|2024-06-12T18:54:42.2191664+08:00||;True|2024-06-12T18:37:39.2735086+08:00||;True|2024-06-12T18:32:59.2340941+08:00||;True|2024-06-12T18:18:57.9018714+08:00||;True|2024-06-12T18:13:13.4471521+08:00||;True|2024-06-12T18:11:38.4803257+08:00||;True|2024-06-12T18:10:00.3753638+08:00||;True|2024-06-12T18:03:08.9521607+08:00||;True|2024-06-12T17:59:46.2755740+08:00||;True|2024-06-12T17:58:01.8017051+08:00||;True|2024-06-12T17:56:20.6946001+08:00||;True|2024-06-12T17:32:53.8291604+08:00||;True|2024-06-12T17:32:38.6492118+08:00||;False|2024-06-12T17:32:17.0260105+08:00||;True|2024-06-12T17:08:59.9367775+08:00||;True|2024-06-12T16:32:42.3320305+08:00||;True|2024-06-07T13:34:17.3014803+08:00||;True|2024-06-07T13:20:33.5124438+08:00||;True|2024-06-07T10:24:47.0351087+08:00||;True|2024-06-05T17:04:55.4017239+08:00||;True|2024-06-05T16:05:35.1432805+08:00||;True|2024-06-05T15:18:06.1797165+08:00||;True|2024-06-05T13:53:59.9366676+08:00||;True|2024-06-05T13:43:45.7009774+08:00||;True|2024-06-05T13:38:18.1415782+08:00||;True|2024-06-05T12:14:05.4745826+08:00||;True|2024-06-05T12:10:02.8443283+08:00||;True|2024-06-02T18:41:28.5233205+08:00||;True|2024-06-02T18:21:27.5679625+08:00||;True|2024-06-02T17:34:02.6234679+08:00||;True|2024-06-02T16:58:23.9422671+08:00||;True|2024-06-02T16:16:43.6949096+08:00||;True|2024-06-02T14:44:06.8963915+08:00||;True|2024-06-02T11:10:51.5587482+08:00||;True|2024-06-01T11:30:39.5033584+08:00||;True|2024-05-30T16:29:38.0730664+08:00||;True|2024-05-30T15:16:14.5429969+08:00||;True|2024-05-29T17:31:27.5349115+08:00||;True|2024-05-29T16:49:44.3085849+08:00||;True|2024-05-29T10:46:15.3071701+08:00||;True|2024-05-28T16:21:22.2987178+08:00||;True|2024-05-28T11:55:02.0680294+08:00||;True|2024-05-24T09:27:50.0479340+08:00||;True|2024-05-23T14:16:32.3824342+08:00||;True|2024-05-23T10:51:43.4383910+08:00||;True|2024-05-22T11:19:10.1709647+08:00||;True|2024-05-22T11:12:47.8835237+08:00||;True|2024-05-22T10:43:34.7720709+08:00||;True|2024-05-21T17:25:46.9831973+08:00||;True|2024-05-21T12:11:55.2774332+08:00||;True|2024-05-13T10:32:18.9951394+08:00||;True|2024-05-09T09:53:09.1673089+08:00||;True|2024-05-08T17:18:58.3017566+08:00||;True|2024-05-08T11:15:08.3734126+08:00||;True|2024-05-07T10:59:04.2016283+08:00||;True|2024-05-07T10:58:56.6254107+08:00||;True|2024-05-07T10:56:03.7274034+08:00||;True|2024-05-07T10:55:53.5496684+08:00||;True|2024-05-07T10:55:41.1246352+08:00||;True|2024-05-07T09:57:18.3908307+08:00||;True|2024-05-06T18:17:15.0427456+08:00||;True|2024-05-06T17:38:00.0855585+08:00||;True|2024-05-06T14:04:15.4665470+08:00||;True|2024-05-06T09:38:06.9447096+08:00||;False|2024-05-06T09:37:21.4257032+08:00||;True|2024-04-30T10:27:11.6268274+08:00||;True|2024-04-29T17:32:47.8657162+08:00||;True|2024-04-29T17:26:03.4222331+08:00||;True|2024-04-29T15:01:02.7501034+08:00||;True|2024-04-29T14:40:23.2902896+08:00||;True|2024-04-29T14:15:48.2534191+08:00||;</History>
     <LastFailureDetails />
   </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git a/Vmo/HStation.Vmo.Assets.Core/15-Tank/AssetsTankSeriesVmo.cs b/Vmo/HStation.Vmo.Assets.Core/15-Tank/AssetsTankSeriesVmo.cs
index 31134b3..d747933 100644
--- a/Vmo/HStation.Vmo.Assets.Core/15-Tank/AssetsTankSeriesVmo.cs
+++ b/Vmo/HStation.Vmo.Assets.Core/15-Tank/AssetsTankSeriesVmo.cs
@@ -18,6 +18,7 @@
         {
             this.ID = rhs.ID;
             this.ParentID = rhs.ParentID;
+            this.CatalogID = rhs.CatalogID;
             this.Name = rhs.Name;
             this.Paras = rhs.Paras;
             this.Flags = rhs.Flags;
@@ -33,6 +34,7 @@
         {
             this.ID = rhs.ID;
             this.ParentID = rhs.ParentID;
+            this.CatalogID = rhs.CatalogID;
             this.Name = rhs.Name;
             this.Paras = rhs.Paras;
             this.Flags = rhs.Flags;
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/EditPumpPartPropDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/EditPumpPartPropDlg.cs
index 29e4db3..b1563e0 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/EditPumpPartPropDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-pump/01-EditPumpPartProp/EditPumpPartPropDlg.cs
@@ -130,7 +130,6 @@
             updatepart.NO = TextEditNo.Text;
             updatepart.Code = TextEditProductCode.Text;
             updatepart.SeriesID = _series.ID;
-            var propList = _propList.Where(x => x.TagName == "Prop").ToList(); //鎵惧埌鎵�鏈夌殑棰濆灞炴��
             foreach (var item in _propList)
             {
                 if (_allPropList != null)
@@ -177,10 +176,10 @@
             }
             var pumpMainBll = new BLL.AssetsPumpMain();
             await pumpMainBll.Update(_pumpMain);
-            _propList.Remove(_propList.Find(x => x.TagName == "Basic_Flow"));
-            _propList.Remove(_propList.Find(x => x.TagName == "Basic_Head"));
-            _propList.Remove(_propList.Find(x => x.TagName == "Basic_Power"));
-            _propList.Remove(_propList.Find(x => x.TagName == "Basic_Speed"));
+            _allPropList.Remove(_allPropList.Find(x => x.TagName == "Basic_Flow"));
+            _allPropList.Remove(_allPropList.Find(x => x.TagName == "Basic_Head"));
+            _allPropList.Remove(_allPropList.Find(x => x.TagName == "Basic_Power"));
+            _allPropList.Remove(_allPropList.Find(x => x.TagName == "Basic_Speed"));
             if (await _bll.UpdateEx(updatepart, _allPropList))
             {
                 vm.Reset(updatepart);
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.Designer.cs
index eae1878..f435efa 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.Designer.cs
@@ -38,11 +38,11 @@
             txtName = new DevExpress.XtraEditors.TextEdit();
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
@@ -53,11 +53,11 @@
             ((ISupportInitialize)txtName.Properties).BeginInit();
             ((ISupportInitialize)Root).BeginInit();
             ((ISupportInitialize)layoutControlItem1).BeginInit();
-            ((ISupportInitialize)layoutControlItem3).BeginInit();
-            ((ISupportInitialize)layoutControlItem4).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
             ((ISupportInitialize)layoutControlItem7).BeginInit();
+            ((ISupportInitialize)layoutControlItem3).BeginInit();
+            ((ISupportInitialize)layoutControlItem4).BeginInit();
             ((ISupportInitialize)dxErrorProvider1).BeginInit();
             SuspendLayout();
             // 
@@ -120,7 +120,7 @@
             txtCaliber.StyleController = layoutControl1;
             txtCaliber.TabIndex = 4;
             // 
-            // txtDN
+            // txtMaterial
             // 
             txtMaterial.Location = new Point(83, 36);
             txtMaterial.Name = "txtMaterial";
@@ -159,25 +159,6 @@
             layoutControlItem1.Text = "<color=red>*</color>鍚嶇О:";
             layoutControlItem1.TextSize = new Size(59, 14);
             // 
-            // layoutControlItem3
-            // 
-            layoutControlItem3.Control = txtCaliber;
-            layoutControlItem3.Location = new Point(252, 0);
-            layoutControlItem3.Name = "layoutControlItem3";
-            layoutControlItem3.Size = new Size(253, 24);
-            layoutControlItem3.Text = "鍙e緞:";
-            layoutControlItem3.TextSize = new Size(59, 14);
-            // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.AllowHtmlStringInCaption = true;
-            layoutControlItem4.Control = txtMinorLoss;
-            layoutControlItem4.Location = new Point(252, 24);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(253, 24);
-            layoutControlItem4.Text = "<color=red>*</color>娴侀噺绯绘暟:";
-            layoutControlItem4.TextSize = new Size(59, 14);
-            // 
             // layoutControlItem2
             // 
             layoutControlItem2.AllowHtmlStringInCaption = true;
@@ -185,7 +166,7 @@
             layoutControlItem2.Location = new Point(0, 24);
             layoutControlItem2.Name = "layoutControlItem2";
             layoutControlItem2.Size = new Size(252, 24);
-            layoutControlItem2.Text = "<color=red>*</color>鏉愯川:";
+            layoutControlItem2.Text = "鏉愯川:";
             layoutControlItem2.TextSize = new Size(59, 14);
             // 
             // layoutControlItem6
@@ -205,6 +186,25 @@
             layoutControlItem7.Size = new Size(505, 30);
             layoutControlItem7.TextSize = new Size(0, 0);
             layoutControlItem7.TextVisible = false;
+            // 
+            // layoutControlItem3
+            // 
+            layoutControlItem3.Control = txtCaliber;
+            layoutControlItem3.Location = new Point(252, 0);
+            layoutControlItem3.Name = "layoutControlItem3";
+            layoutControlItem3.Size = new Size(253, 24);
+            layoutControlItem3.Text = "鍙e緞:";
+            layoutControlItem3.TextSize = new Size(59, 14);
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.AllowHtmlStringInCaption = true;
+            layoutControlItem4.Control = txtMinorLoss;
+            layoutControlItem4.Location = new Point(252, 24);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(253, 24);
+            layoutControlItem4.Text = "<color=red>*</color>灞�闃荤郴鏁�:";
+            layoutControlItem4.TextSize = new Size(59, 14);
             // 
             // dxErrorProvider1
             // 
@@ -228,11 +228,11 @@
             ((ISupportInitialize)txtName.Properties).EndInit();
             ((ISupportInitialize)Root).EndInit();
             ((ISupportInitialize)layoutControlItem1).EndInit();
-            ((ISupportInitialize)layoutControlItem3).EndInit();
-            ((ISupportInitialize)layoutControlItem4).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
             ((ISupportInitialize)layoutControlItem7).EndInit();
+            ((ISupportInitialize)layoutControlItem3).EndInit();
+            ((ISupportInitialize)layoutControlItem4).EndInit();
             ((ISupportInitialize)dxErrorProvider1).EndInit();
             ResumeLayout(false);
         }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.cs
index f2c64c4..55e30e5 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.cs
@@ -46,11 +46,6 @@
                 this.dxErrorProvider1.SetError(this.txtName, "蹇呭~椤�");
                 return false;
             }
-            if (string.IsNullOrEmpty(this.txtMaterial.Text.Trim()))
-            {
-                this.dxErrorProvider1.SetError(this.txtMaterial, "蹇呭~椤�");
-                return false;
-            }
             if (string.IsNullOrEmpty(this.txtMinorLoss.Text.Trim()))
             {
                 this.dxErrorProvider1.SetError(this.txtMinorLoss, "蹇呭~椤�");
@@ -74,6 +69,7 @@
             _vmo.Material = this.txtMaterial.Text.Trim();
             _vmo.Caliber = this.txtCaliber.EditValue == null ? null : double.Parse(this.txtCaliber.EditValue?.ToString());
             _vmo.MinorLoss = double.Parse(this.txtMinorLoss.EditValue?.ToString());
+            _vmo.Description = this.txtDescription.EditValue?.ToString();
             var id = await BLLFactory<HStation.BLL.AssetsValveFactor>.Instance.Insert(_vmo);
             if (id < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.resx
index d438392..43b467c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AddAssetsValveFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AssetsValveFactorMgrViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AssetsValveFactorMgrViewModel.cs
index 5df6eff..6ebc64f 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AssetsValveFactorMgrViewModel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/AssetsValveFactorMgrViewModel.cs
@@ -21,6 +21,7 @@
             this.Material = rhs.Material;
             this.Caliber = rhs.Caliber;
             this.Coefficient = rhs.MinorLoss;
+            this.Description = rhs.Description;
             this.Vmo = rhs;
         }
 
@@ -34,6 +35,7 @@
             this.Material = rhs.Material;
             this.Caliber = rhs.Caliber;
             this.Coefficient = rhs.MinorLoss;
+            this.Description = rhs.Description;
             this.Vmo = rhs;
         }
 
@@ -64,7 +66,7 @@
         /// <summary>
         /// 鍠峰皠绯绘暟
         /// </summary>
-        [Display(Name = "鍠峰皠绯绘暟")]
+        [Display(Name = "灞�闃荤郴鏁�")]
         public double Coefficient { get; set; }
 
         /// <summary>
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.Designer.cs
index 6176b99..5614fb6 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.Designer.cs
@@ -39,10 +39,10 @@
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
@@ -54,10 +54,10 @@
             ((ISupportInitialize)Root).BeginInit();
             ((ISupportInitialize)layoutControlItem1).BeginInit();
             ((ISupportInitialize)layoutControlItem3).BeginInit();
-            ((ISupportInitialize)layoutControlItem4).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
             ((ISupportInitialize)layoutControlItem7).BeginInit();
+            ((ISupportInitialize)layoutControlItem4).BeginInit();
             ((ISupportInitialize)dxErrorProvider1).BeginInit();
             SuspendLayout();
             // 
@@ -120,7 +120,7 @@
             txtCaliber.StyleController = layoutControl1;
             txtCaliber.TabIndex = 4;
             // 
-            // txtDN
+            // txtMaterial
             // 
             txtMaterial.Location = new Point(83, 36);
             txtMaterial.Name = "txtMaterial";
@@ -168,16 +168,6 @@
             layoutControlItem3.Text = "鍙e緞:";
             layoutControlItem3.TextSize = new Size(59, 14);
             // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.AllowHtmlStringInCaption = true;
-            layoutControlItem4.Control = txtCoefficient;
-            layoutControlItem4.Location = new Point(252, 24);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(253, 24);
-            layoutControlItem4.Text = "<color=red>*</color>娴侀噺绯绘暟:";
-            layoutControlItem4.TextSize = new Size(59, 14);
-            // 
             // layoutControlItem2
             // 
             layoutControlItem2.AllowHtmlStringInCaption = true;
@@ -185,7 +175,7 @@
             layoutControlItem2.Location = new Point(0, 24);
             layoutControlItem2.Name = "layoutControlItem2";
             layoutControlItem2.Size = new Size(252, 24);
-            layoutControlItem2.Text = "<color=red>*</color>鏉愯川:";
+            layoutControlItem2.Text = "鏉愯川:";
             layoutControlItem2.TextSize = new Size(59, 14);
             // 
             // layoutControlItem6
@@ -205,6 +195,16 @@
             layoutControlItem7.Size = new Size(505, 30);
             layoutControlItem7.TextSize = new Size(0, 0);
             layoutControlItem7.TextVisible = false;
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.AllowHtmlStringInCaption = true;
+            layoutControlItem4.Control = txtCoefficient;
+            layoutControlItem4.Location = new Point(252, 24);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(253, 24);
+            layoutControlItem4.Text = "<color=red>*</color>灞�闃荤郴鏁�:";
+            layoutControlItem4.TextSize = new Size(59, 14);
             // 
             // dxErrorProvider1
             // 
@@ -229,10 +229,10 @@
             ((ISupportInitialize)Root).EndInit();
             ((ISupportInitialize)layoutControlItem1).EndInit();
             ((ISupportInitialize)layoutControlItem3).EndInit();
-            ((ISupportInitialize)layoutControlItem4).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
             ((ISupportInitialize)layoutControlItem7).EndInit();
+            ((ISupportInitialize)layoutControlItem4).EndInit();
             ((ISupportInitialize)dxErrorProvider1).EndInit();
             ResumeLayout(false);
         }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.cs
index b99777b..ab89b92 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.cs
@@ -44,11 +44,6 @@
                 this.dxErrorProvider1.SetError(this.txtName, "蹇呭~椤�");
                 return false;
             }
-            if (string.IsNullOrEmpty(this.txtMaterial.Text.Trim()))
-            {
-                this.dxErrorProvider1.SetError(this.txtMaterial, "蹇呭~椤�");
-                return false;
-            }
             if (string.IsNullOrEmpty(this.txtCoefficient.Text.Trim()))
             {
                 this.dxErrorProvider1.SetError(this.txtCoefficient, "蹇呭~椤�");
@@ -72,6 +67,8 @@
             _vmo.Material = this.txtMaterial.Text.Trim();
             _vmo.Caliber = this.txtCaliber.EditValue == null ? null : double.Parse(this.txtCaliber.EditValue?.ToString());
             _vmo.MinorLoss = double.Parse(this.txtCoefficient.EditValue?.ToString());
+            _vmo.Description = this.txtDescription.EditValue?.ToString();
+
             var bol = await BLLFactory<HStation.BLL.AssetsValveFactor>.Instance.Update(_vmo);
             if (!bol)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.resx
index d438392..43b467c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/EditAssetsValveFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.Designer.cs
index 51ae4b7..901559b 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.Designer.cs
@@ -37,9 +37,9 @@
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((ISupportInitialize)txtDescription.Properties).BeginInit();
@@ -50,9 +50,9 @@
             ((ISupportInitialize)Root).BeginInit();
             ((ISupportInitialize)layoutControlItem1).BeginInit();
             ((ISupportInitialize)layoutControlItem3).BeginInit();
-            ((ISupportInitialize)layoutControlItem4).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
+            ((ISupportInitialize)layoutControlItem4).BeginInit();
             SuspendLayout();
             // 
             // layoutControl1
@@ -108,7 +108,7 @@
             txtCaliber.StyleController = layoutControl1;
             txtCaliber.TabIndex = 4;
             // 
-            // txtDN
+            // txtMaterial
             // 
             txtMaterial.Location = new Point(76, 36);
             txtMaterial.Name = "txtMaterial";
@@ -159,15 +159,6 @@
             layoutControlItem3.Text = "鍙e緞:";
             layoutControlItem3.TextSize = new Size(52, 14);
             // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.Control = txtCoefficient;
-            layoutControlItem4.Location = new Point(252, 24);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(253, 24);
-            layoutControlItem4.Text = "娴侀噺绯绘暟:";
-            layoutControlItem4.TextSize = new Size(52, 14);
-            // 
             // layoutControlItem2
             // 
             layoutControlItem2.Control = txtMaterial;
@@ -185,6 +176,15 @@
             layoutControlItem6.Size = new Size(505, 248);
             layoutControlItem6.Text = "璇存槑:";
             layoutControlItem6.TextSize = new Size(52, 14);
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.Control = txtCoefficient;
+            layoutControlItem4.Location = new Point(252, 24);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(253, 24);
+            layoutControlItem4.Text = "灞�闃荤郴鏁�:";
+            layoutControlItem4.TextSize = new Size(52, 14);
             // 
             // ViewAssetsValveFactorDlg
             // 
@@ -205,9 +205,9 @@
             ((ISupportInitialize)Root).EndInit();
             ((ISupportInitialize)layoutControlItem1).EndInit();
             ((ISupportInitialize)layoutControlItem3).EndInit();
-            ((ISupportInitialize)layoutControlItem4).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
+            ((ISupportInitialize)layoutControlItem4).EndInit();
             ResumeLayout(false);
         }
 
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.cs
index 52aa210..77b6d1d 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.cs
@@ -25,6 +25,8 @@
             this.txtMaterial.EditValue = vmo.Material;
             this.txtCaliber.EditValue = vmo.Caliber;
             this.txtCoefficient.EditValue = vmo.MinorLoss;
+            this.txtDescription.EditValue = vmo.Description;
+
         }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.resx
index af32865..8b2ff64 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/03-factor/ViewAssetsValveFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByExcelDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByExcelDlg.cs
index 99e0731..47f83ed 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByExcelDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByExcelDlg.cs
@@ -66,6 +66,8 @@
                 return;
             }
             var diagram = this.valveChartExcelImportCtrl1.Get();
+            diagram.Name = this.txtName.Text.Trim();
+
             var diagramId = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.Insert(diagram);
             if (diagramId < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByPictureDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByPictureDlg.cs
index 5c04919..723ba56 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByPictureDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/04-curve/ImportAssetsValveCurveByPictureDlg.cs
@@ -67,6 +67,7 @@
                 return;
             }
             var diagram = this.universalChartImageImportCtrl1.Get();
+            diagram.Name = this.txtName.Text.Trim();
             var diagramId = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.Insert(diagram);
             if (diagramId < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/02-main/AddAssetsPipeMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/02-main/AddAssetsPipeMainDlg.cs
index b21b001..4857073 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/02-main/AddAssetsPipeMainDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/02-main/AddAssetsPipeMainDlg.cs
@@ -92,6 +92,7 @@
                 return;
             }
             _vmo.Name = this.txtName.Text.Trim();
+            _vmo.Caliber= double.Parse(this.txtCaliber.EditValue?.ToString());
             _vmo.KeyWords = HStation.Service.Assets.KeyWordHelper.ToList(this.txtKeyWord.Text.Trim());
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.Designer.cs
index ef755f0..aa93724 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.Designer.cs
@@ -33,23 +33,31 @@
             generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
             txtDescription = new DevExpress.XtraEditors.MemoEdit();
             txtMinorLoss = new DevExpress.XtraEditors.TextEdit();
+            txtCaliber = new DevExpress.XtraEditors.TextEdit();
+            txtMaterial = new DevExpress.XtraEditors.TextEdit();
             txtName = new DevExpress.XtraEditors.TextEdit();
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((ISupportInitialize)txtDescription.Properties).BeginInit();
             ((ISupportInitialize)txtMinorLoss.Properties).BeginInit();
+            ((ISupportInitialize)txtCaliber.Properties).BeginInit();
+            ((ISupportInitialize)txtMaterial.Properties).BeginInit();
             ((ISupportInitialize)txtName.Properties).BeginInit();
             ((ISupportInitialize)Root).BeginInit();
             ((ISupportInitialize)layoutControlItem1).BeginInit();
-            ((ISupportInitialize)layoutControlItem4).BeginInit();
+            ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
             ((ISupportInitialize)layoutControlItem7).BeginInit();
+            ((ISupportInitialize)layoutControlItem3).BeginInit();
+            ((ISupportInitialize)layoutControlItem4).BeginInit();
             ((ISupportInitialize)dxErrorProvider1).BeginInit();
             SuspendLayout();
             // 
@@ -58,6 +66,8 @@
             layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
             layoutControl1.Controls.Add(txtDescription);
             layoutControl1.Controls.Add(txtMinorLoss);
+            layoutControl1.Controls.Add(txtCaliber);
+            layoutControl1.Controls.Add(txtMaterial);
             layoutControl1.Controls.Add(txtName);
             layoutControl1.Dock = DockStyle.Fill;
             layoutControl1.Location = new Point(0, 0);
@@ -65,7 +75,7 @@
             layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(826, 220, 650, 400);
             layoutControl1.Root = Root;
             layoutControl1.Size = new Size(380, 262);
-            layoutControl1.TabIndex = 0;
+            layoutControl1.TabIndex = 1;
             layoutControl1.Text = "layoutControl1";
             // 
             // generalOkAndCancelCtrl1
@@ -74,35 +84,57 @@
             generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(100, 26);
             generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(100, 26);
             generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(100, 26);
-            generalOkAndCancelCtrl1.Location = new Point(12, 217);
+            generalOkAndCancelCtrl1.Location = new Point(12, 224);
             generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
-            generalOkAndCancelCtrl1.Size = new Size(356, 33);
+            generalOkAndCancelCtrl1.Size = new Size(356, 26);
             generalOkAndCancelCtrl1.TabIndex = 8;
             // 
             // txtDescription
             // 
             txtDescription.Location = new Point(83, 60);
             txtDescription.Name = "txtDescription";
-            txtDescription.Size = new Size(285, 153);
+            txtDescription.Size = new Size(285, 160);
             txtDescription.StyleController = layoutControl1;
             txtDescription.TabIndex = 7;
             // 
             // txtMinorLoss
             // 
-            txtMinorLoss.Location = new Point(83, 36);
+            txtMinorLoss.Location = new Point(263, 36);
             txtMinorLoss.Name = "txtMinorLoss";
             txtMinorLoss.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtMinorLoss.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtMinorLoss.Size = new Size(285, 20);
+            txtMinorLoss.Size = new Size(105, 20);
             txtMinorLoss.StyleController = layoutControl1;
             txtMinorLoss.TabIndex = 5;
+            // 
+            // txtCaliber
+            // 
+            txtCaliber.Location = new Point(263, 12);
+            txtCaliber.Name = "txtCaliber";
+            txtCaliber.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
+            txtCaliber.Properties.DisplayFormat.FormatString = "{0}mm";
+            txtCaliber.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
+            txtCaliber.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtCaliber.Properties.NullValuePrompt = "mm";
+            txtCaliber.Size = new Size(105, 20);
+            txtCaliber.StyleController = layoutControl1;
+            txtCaliber.TabIndex = 4;
+            // 
+            // txtMaterial
+            // 
+            txtMaterial.Location = new Point(83, 36);
+            txtMaterial.Name = "txtMaterial";
+            txtMaterial.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
+            txtMaterial.Size = new Size(105, 20);
+            txtMaterial.StyleController = layoutControl1;
+            txtMaterial.TabIndex = 3;
             // 
             // txtName
             // 
             txtName.Location = new Point(83, 12);
             txtName.Name = "txtName";
             txtName.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
-            txtName.Size = new Size(285, 20);
+            txtName.Size = new Size(105, 20);
             txtName.StyleController = layoutControl1;
             txtName.TabIndex = 0;
             // 
@@ -112,7 +144,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem6, layoutControlItem7, layoutControlItem4 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2, layoutControlItem6, layoutControlItem7, layoutControlItem3, layoutControlItem4 });
             Root.Name = "Root";
             Root.Size = new Size(380, 262);
             Root.TextVisible = false;
@@ -123,37 +155,56 @@
             layoutControlItem1.Control = txtName;
             layoutControlItem1.Location = new Point(0, 0);
             layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(360, 24);
+            layoutControlItem1.Size = new Size(180, 24);
             layoutControlItem1.Text = "<color=red>*</color>鍚嶇О:";
             layoutControlItem1.TextSize = new Size(59, 14);
             // 
-            // layoutControlItem4
+            // layoutControlItem2
             // 
-            layoutControlItem4.AllowHtmlStringInCaption = true;
-            layoutControlItem4.Control = txtMinorLoss;
-            layoutControlItem4.Location = new Point(0, 24);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(360, 24);
-            layoutControlItem4.Text = "<color=red>*</color>灞�闃荤郴鏁�:";
-            layoutControlItem4.TextSize = new Size(59, 14);
+            layoutControlItem2.AllowHtmlStringInCaption = true;
+            layoutControlItem2.Control = txtMaterial;
+            layoutControlItem2.Location = new Point(0, 24);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(180, 24);
+            layoutControlItem2.Text = "鏉愯川:";
+            layoutControlItem2.TextSize = new Size(59, 14);
             // 
             // layoutControlItem6
             // 
             layoutControlItem6.Control = txtDescription;
             layoutControlItem6.Location = new Point(0, 48);
             layoutControlItem6.Name = "layoutControlItem6";
-            layoutControlItem6.Size = new Size(360, 157);
+            layoutControlItem6.Size = new Size(360, 164);
             layoutControlItem6.Text = "璇存槑:";
             layoutControlItem6.TextSize = new Size(59, 14);
             // 
             // layoutControlItem7
             // 
             layoutControlItem7.Control = generalOkAndCancelCtrl1;
-            layoutControlItem7.Location = new Point(0, 205);
+            layoutControlItem7.Location = new Point(0, 212);
             layoutControlItem7.Name = "layoutControlItem7";
-            layoutControlItem7.Size = new Size(360, 37);
+            layoutControlItem7.Size = new Size(360, 30);
             layoutControlItem7.TextSize = new Size(0, 0);
             layoutControlItem7.TextVisible = false;
+            // 
+            // layoutControlItem3
+            // 
+            layoutControlItem3.Control = txtCaliber;
+            layoutControlItem3.Location = new Point(180, 0);
+            layoutControlItem3.Name = "layoutControlItem3";
+            layoutControlItem3.Size = new Size(180, 24);
+            layoutControlItem3.Text = "鍙e緞:";
+            layoutControlItem3.TextSize = new Size(59, 14);
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.AllowHtmlStringInCaption = true;
+            layoutControlItem4.Control = txtMinorLoss;
+            layoutControlItem4.Location = new Point(180, 24);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(180, 24);
+            layoutControlItem4.Text = "<color=red>*</color>灞�闃荤郴鏁�:";
+            layoutControlItem4.TextSize = new Size(59, 14);
             // 
             // dxErrorProvider1
             // 
@@ -172,32 +223,37 @@
             layoutControl1.ResumeLayout(false);
             ((ISupportInitialize)txtDescription.Properties).EndInit();
             ((ISupportInitialize)txtMinorLoss.Properties).EndInit();
+            ((ISupportInitialize)txtCaliber.Properties).EndInit();
+            ((ISupportInitialize)txtMaterial.Properties).EndInit();
             ((ISupportInitialize)txtName.Properties).EndInit();
             ((ISupportInitialize)Root).EndInit();
             ((ISupportInitialize)layoutControlItem1).EndInit();
-            ((ISupportInitialize)layoutControlItem4).EndInit();
+            ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
             ((ISupportInitialize)layoutControlItem7).EndInit();
+            ((ISupportInitialize)layoutControlItem3).EndInit();
+            ((ISupportInitialize)layoutControlItem4).EndInit();
             ((ISupportInitialize)dxErrorProvider1).EndInit();
             ResumeLayout(false);
         }
 
         #endregion
-
-        private DevExpress.XtraLayout.LayoutControl layoutControl1;
-        private DevExpress.XtraLayout.LayoutControlGroup Root;
-        private DevExpress.XtraEditors.TextEdit txtName;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
-        private DevExpress.XtraEditors.TextEdit txtMinorLoss;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
         private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
         private DevExpress.XtraEditors.MemoEdit txtDescription;
+        private DevExpress.XtraEditors.TextEdit txtMinorLoss;
+        private DevExpress.XtraEditors.TextEdit txtCaliber;
+        private DevExpress.XtraEditors.TextEdit txtMaterial;
+        private DevExpress.XtraEditors.TextEdit txtName;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
         private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider dxErrorProvider1;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.cs
index af33445..5d6c8e8 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.cs
@@ -66,6 +66,8 @@
             }
             _vmo.Name = this.txtName.Text.Trim();
             _vmo.MinorLoss = double.Parse(this.txtMinorLoss.EditValue?.ToString());
+            _vmo.Caliber = double.Parse(this.txtCaliber.EditValue?.ToString());
+            _vmo.Material = this.txtMaterial.EditValue?.ToString();
             _vmo.Description = this.txtDescription.Text.Trim();
             var id = await BLLFactory<HStation.BLL.AssetsPipeFactor>.Instance.Insert(_vmo);
             if (id < 1)
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.resx
index d438392..43b467c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/AddAssetsPipeFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.Designer.cs
index bc9ab6e..11dd2d7 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.Designer.cs
@@ -29,35 +29,81 @@
         private void InitializeComponent()
         {
             components = new Container();
+            dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
+            Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            txtName = new DevExpress.XtraEditors.TextEdit();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
             txtDescription = new DevExpress.XtraEditors.MemoEdit();
             txtMinorLoss = new DevExpress.XtraEditors.TextEdit();
-            txtName = new DevExpress.XtraEditors.TextEdit();
-            Root = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            txtCaliber = new DevExpress.XtraEditors.TextEdit();
+            txtMaterial = new DevExpress.XtraEditors.TextEdit();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
-            dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
+            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            dxErrorProvider2 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
+            ((ISupportInitialize)dxErrorProvider1).BeginInit();
+            ((ISupportInitialize)Root).BeginInit();
+            ((ISupportInitialize)layoutControlItem1).BeginInit();
+            ((ISupportInitialize)txtName.Properties).BeginInit();
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((ISupportInitialize)txtDescription.Properties).BeginInit();
             ((ISupportInitialize)txtMinorLoss.Properties).BeginInit();
-            ((ISupportInitialize)txtName.Properties).BeginInit();
-            ((ISupportInitialize)Root).BeginInit();
-            ((ISupportInitialize)layoutControlItem1).BeginInit();
-            ((ISupportInitialize)layoutControlItem4).BeginInit();
+            ((ISupportInitialize)txtCaliber.Properties).BeginInit();
+            ((ISupportInitialize)txtMaterial.Properties).BeginInit();
+            ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
             ((ISupportInitialize)layoutControlItem7).BeginInit();
-            ((ISupportInitialize)dxErrorProvider1).BeginInit();
+            ((ISupportInitialize)layoutControlItem3).BeginInit();
+            ((ISupportInitialize)layoutControlItem4).BeginInit();
+            ((ISupportInitialize)dxErrorProvider2).BeginInit();
             SuspendLayout();
+            // 
+            // dxErrorProvider1
+            // 
+            dxErrorProvider1.ContainerControl = this;
+            // 
+            // Root
+            // 
+            Root.AppearanceItemCaption.Options.UseTextOptions = true;
+            Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2, layoutControlItem6, layoutControlItem7, layoutControlItem3, layoutControlItem4 });
+            Root.Name = "Root";
+            Root.Size = new Size(383, 277);
+            Root.TextVisible = false;
+            // 
+            // layoutControlItem1
+            // 
+            layoutControlItem1.AllowHtmlStringInCaption = true;
+            layoutControlItem1.Control = txtName;
+            layoutControlItem1.Location = new Point(0, 0);
+            layoutControlItem1.Name = "layoutControlItem1";
+            layoutControlItem1.Size = new Size(181, 24);
+            layoutControlItem1.Text = "<color=red>*</color>鍚嶇О:";
+            layoutControlItem1.TextSize = new Size(59, 14);
+            // 
+            // txtName
+            // 
+            txtName.Location = new Point(83, 12);
+            txtName.Name = "txtName";
+            txtName.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
+            txtName.Size = new Size(106, 20);
+            txtName.StyleController = layoutControl1;
+            txtName.TabIndex = 0;
             // 
             // layoutControl1
             // 
             layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
             layoutControl1.Controls.Add(txtDescription);
             layoutControl1.Controls.Add(txtMinorLoss);
+            layoutControl1.Controls.Add(txtCaliber);
+            layoutControl1.Controls.Add(txtMaterial);
             layoutControl1.Controls.Add(txtName);
             layoutControl1.Dock = DockStyle.Fill;
             layoutControl1.Location = new Point(0, 0);
@@ -65,7 +111,7 @@
             layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(826, 220, 650, 400);
             layoutControl1.Root = Root;
             layoutControl1.Size = new Size(383, 277);
-            layoutControl1.TabIndex = 0;
+            layoutControl1.TabIndex = 2;
             layoutControl1.Text = "layoutControl1";
             // 
             // generalOkAndCancelCtrl1
@@ -89,53 +135,45 @@
             // 
             // txtMinorLoss
             // 
-            txtMinorLoss.Location = new Point(83, 36);
+            txtMinorLoss.Location = new Point(264, 36);
             txtMinorLoss.Name = "txtMinorLoss";
             txtMinorLoss.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtMinorLoss.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtMinorLoss.Size = new Size(288, 20);
+            txtMinorLoss.Size = new Size(107, 20);
             txtMinorLoss.StyleController = layoutControl1;
             txtMinorLoss.TabIndex = 5;
             // 
-            // txtName
+            // txtCaliber
             // 
-            txtName.Location = new Point(83, 12);
-            txtName.Name = "txtName";
-            txtName.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
-            txtName.Size = new Size(288, 20);
-            txtName.StyleController = layoutControl1;
-            txtName.TabIndex = 0;
+            txtCaliber.Location = new Point(264, 12);
+            txtCaliber.Name = "txtCaliber";
+            txtCaliber.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
+            txtCaliber.Properties.DisplayFormat.FormatString = "{0}mm";
+            txtCaliber.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
+            txtCaliber.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtCaliber.Properties.NullValuePrompt = "mm";
+            txtCaliber.Size = new Size(107, 20);
+            txtCaliber.StyleController = layoutControl1;
+            txtCaliber.TabIndex = 4;
             // 
-            // Root
+            // txtMaterial
             // 
-            Root.AppearanceItemCaption.Options.UseTextOptions = true;
-            Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
-            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
-            Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem4, layoutControlItem6, layoutControlItem7 });
-            Root.Name = "Root";
-            Root.Size = new Size(383, 277);
-            Root.TextVisible = false;
+            txtMaterial.Location = new Point(83, 36);
+            txtMaterial.Name = "txtMaterial";
+            txtMaterial.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
+            txtMaterial.Size = new Size(106, 20);
+            txtMaterial.StyleController = layoutControl1;
+            txtMaterial.TabIndex = 3;
             // 
-            // layoutControlItem1
+            // layoutControlItem2
             // 
-            layoutControlItem1.AllowHtmlStringInCaption = true;
-            layoutControlItem1.Control = txtName;
-            layoutControlItem1.Location = new Point(0, 0);
-            layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(363, 24);
-            layoutControlItem1.Text = "<color=red>*</color>鍚嶇О:";
-            layoutControlItem1.TextSize = new Size(59, 14);
-            // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.AllowHtmlStringInCaption = true;
-            layoutControlItem4.Control = txtMinorLoss;
-            layoutControlItem4.Location = new Point(0, 24);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(363, 24);
-            layoutControlItem4.Text = "<color=red>*</color>灞�闃荤郴鏁�:";
-            layoutControlItem4.TextSize = new Size(59, 14);
+            layoutControlItem2.AllowHtmlStringInCaption = true;
+            layoutControlItem2.Control = txtMaterial;
+            layoutControlItem2.Location = new Point(0, 24);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(181, 24);
+            layoutControlItem2.Text = "鏉愯川:";
+            layoutControlItem2.TextSize = new Size(59, 14);
             // 
             // layoutControlItem6
             // 
@@ -155,9 +193,28 @@
             layoutControlItem7.TextSize = new Size(0, 0);
             layoutControlItem7.TextVisible = false;
             // 
-            // dxErrorProvider1
+            // layoutControlItem3
             // 
-            dxErrorProvider1.ContainerControl = this;
+            layoutControlItem3.Control = txtCaliber;
+            layoutControlItem3.Location = new Point(181, 0);
+            layoutControlItem3.Name = "layoutControlItem3";
+            layoutControlItem3.Size = new Size(182, 24);
+            layoutControlItem3.Text = "鍙e緞:";
+            layoutControlItem3.TextSize = new Size(59, 14);
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.AllowHtmlStringInCaption = true;
+            layoutControlItem4.Control = txtMinorLoss;
+            layoutControlItem4.Location = new Point(181, 24);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(182, 24);
+            layoutControlItem4.Text = "<color=red>*</color>灞�闃荤郴鏁�:";
+            layoutControlItem4.TextSize = new Size(59, 14);
+            // 
+            // dxErrorProvider2
+            // 
+            dxErrorProvider2.ContainerControl = this;
             // 
             // EditAssetsPipeFactorDlg
             // 
@@ -168,32 +225,41 @@
             Name = "EditAssetsPipeFactorDlg";
             StartPosition = FormStartPosition.CenterParent;
             Text = "缂栬緫";
+            ((ISupportInitialize)dxErrorProvider1).EndInit();
+            ((ISupportInitialize)Root).EndInit();
+            ((ISupportInitialize)layoutControlItem1).EndInit();
+            ((ISupportInitialize)txtName.Properties).EndInit();
             ((ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
             ((ISupportInitialize)txtDescription.Properties).EndInit();
             ((ISupportInitialize)txtMinorLoss.Properties).EndInit();
-            ((ISupportInitialize)txtName.Properties).EndInit();
-            ((ISupportInitialize)Root).EndInit();
-            ((ISupportInitialize)layoutControlItem1).EndInit();
-            ((ISupportInitialize)layoutControlItem4).EndInit();
+            ((ISupportInitialize)txtCaliber.Properties).EndInit();
+            ((ISupportInitialize)txtMaterial.Properties).EndInit();
+            ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
             ((ISupportInitialize)layoutControlItem7).EndInit();
-            ((ISupportInitialize)dxErrorProvider1).EndInit();
+            ((ISupportInitialize)layoutControlItem3).EndInit();
+            ((ISupportInitialize)layoutControlItem4).EndInit();
+            ((ISupportInitialize)dxErrorProvider2).EndInit();
             ResumeLayout(false);
         }
 
         #endregion
-
+        private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider dxErrorProvider1;
         private DevExpress.XtraLayout.LayoutControl layoutControl1;
-        private DevExpress.XtraLayout.LayoutControlGroup Root;
-        private DevExpress.XtraEditors.TextEdit txtName;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
-        private DevExpress.XtraEditors.TextEdit txtMinorLoss;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
         private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
         private DevExpress.XtraEditors.MemoEdit txtDescription;
+        private DevExpress.XtraEditors.TextEdit txtMinorLoss;
+        private DevExpress.XtraEditors.TextEdit txtCaliber;
+        private DevExpress.XtraEditors.TextEdit txtMaterial;
+        private DevExpress.XtraEditors.TextEdit txtName;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
-        private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider dxErrorProvider1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+        private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider dxErrorProvider2;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.cs
index cbb98ed..a46fed8 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.cs
@@ -64,8 +64,9 @@
             }
             _vmo.Name = this.txtName.Text.Trim();
             _vmo.MinorLoss = double.Parse(this.txtMinorLoss.EditValue?.ToString());
-            _vmo.Description = this.txtDescription.Text.Trim();
-            var bol = await BLLFactory<HStation.BLL.AssetsPipeFactor>.Instance.Update(_vmo);
+            _vmo.Caliber = double.Parse(this.txtCaliber.EditValue?.ToString());
+            _vmo.Material = this.txtMaterial.EditValue?.ToString();
+            _vmo.Description = this.txtDescription.Text.Trim(); var bol = await BLLFactory<HStation.BLL.AssetsPipeFactor>.Instance.Update(_vmo);
             if (!bol)
             {
                 TipFormHelper.ShowError("鏇存柊澶辫触锛�");
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.resx
index d438392..1b73a40 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/EditAssetsPipeFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -120,4 +120,7 @@
   <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
+  <metadata name="dxErrorProvider2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.Designer.cs
index e12dd8c..87c9bab 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.Designer.cs
@@ -36,6 +36,10 @@
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+            txtCaliber = new DevExpress.XtraEditors.TextEdit();
+            txtMaterial = new DevExpress.XtraEditors.TextEdit();
+            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((ISupportInitialize)txtDescription.Properties).BeginInit();
@@ -45,10 +49,16 @@
             ((ISupportInitialize)layoutControlItem1).BeginInit();
             ((ISupportInitialize)layoutControlItem4).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
+            ((ISupportInitialize)txtCaliber.Properties).BeginInit();
+            ((ISupportInitialize)txtMaterial.Properties).BeginInit();
+            ((ISupportInitialize)layoutControlItem7).BeginInit();
+            ((ISupportInitialize)layoutControlItem8).BeginInit();
             SuspendLayout();
             // 
             // layoutControl1
             // 
+            layoutControl1.Controls.Add(txtCaliber);
+            layoutControl1.Controls.Add(txtMaterial);
             layoutControl1.Controls.Add(txtDescription);
             layoutControl1.Controls.Add(txtMinorLoss);
             layoutControl1.Controls.Add(txtName);
@@ -73,13 +83,13 @@
             // 
             // txtMinorLoss
             // 
-            txtMinorLoss.Location = new Point(76, 36);
+            txtMinorLoss.Location = new Point(265, 36);
             txtMinorLoss.Name = "txtMinorLoss";
             txtMinorLoss.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtMinorLoss.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
             txtMinorLoss.Properties.ReadOnly = true;
             txtMinorLoss.Properties.UseReadOnlyAppearance = false;
-            txtMinorLoss.Size = new Size(311, 20);
+            txtMinorLoss.Size = new Size(122, 20);
             txtMinorLoss.StyleController = layoutControl1;
             txtMinorLoss.TabIndex = 5;
             // 
@@ -90,7 +100,7 @@
             txtName.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtName.Properties.ReadOnly = true;
             txtName.Properties.UseReadOnlyAppearance = false;
-            txtName.Size = new Size(311, 20);
+            txtName.Size = new Size(121, 20);
             txtName.StyleController = layoutControl1;
             txtName.TabIndex = 0;
             // 
@@ -100,7 +110,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem4, layoutControlItem6 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem4, layoutControlItem6, layoutControlItem7, layoutControlItem8 });
             Root.Name = "Root";
             Root.Size = new Size(399, 299);
             Root.TextVisible = false;
@@ -110,16 +120,16 @@
             layoutControlItem1.Control = txtName;
             layoutControlItem1.Location = new Point(0, 0);
             layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(379, 24);
+            layoutControlItem1.Size = new Size(189, 24);
             layoutControlItem1.Text = "鍚嶇О:";
             layoutControlItem1.TextSize = new Size(52, 14);
             // 
             // layoutControlItem4
             // 
             layoutControlItem4.Control = txtMinorLoss;
-            layoutControlItem4.Location = new Point(0, 24);
+            layoutControlItem4.Location = new Point(189, 24);
             layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(379, 24);
+            layoutControlItem4.Size = new Size(190, 24);
             layoutControlItem4.Text = "灞�闃荤郴鏁�:";
             layoutControlItem4.TextSize = new Size(52, 14);
             // 
@@ -131,6 +141,50 @@
             layoutControlItem6.Size = new Size(379, 231);
             layoutControlItem6.Text = "璇存槑:";
             layoutControlItem6.TextSize = new Size(52, 14);
+            // 
+            // txtCaliber
+            // 
+            txtCaliber.Location = new Point(76, 36);
+            txtCaliber.Name = "txtCaliber";
+            txtCaliber.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
+            txtCaliber.Properties.DisplayFormat.FormatString = "{0}mm";
+            txtCaliber.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
+            txtCaliber.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtCaliber.Properties.NullValuePrompt = "mm";
+            txtCaliber.Properties.ReadOnly = true;
+            txtCaliber.Properties.UseReadOnlyAppearance = false;
+            txtCaliber.Size = new Size(121, 20);
+            txtCaliber.StyleController = layoutControl1;
+            txtCaliber.TabIndex = 6;
+            // 
+            // txtMaterial
+            // 
+            txtMaterial.Location = new Point(265, 12);
+            txtMaterial.Name = "txtMaterial";
+            txtMaterial.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
+            txtMaterial.Properties.ReadOnly = true;
+            txtMaterial.Properties.UseReadOnlyAppearance = false;
+            txtMaterial.Size = new Size(122, 20);
+            txtMaterial.StyleController = layoutControl1;
+            txtMaterial.TabIndex = 5;
+            // 
+            // layoutControlItem7
+            // 
+            layoutControlItem7.Control = txtMaterial;
+            layoutControlItem7.Location = new Point(189, 0);
+            layoutControlItem7.Name = "layoutControlItem7";
+            layoutControlItem7.Size = new Size(190, 24);
+            layoutControlItem7.Text = "鏉愯川:";
+            layoutControlItem7.TextSize = new Size(52, 14);
+            // 
+            // layoutControlItem8
+            // 
+            layoutControlItem8.Control = txtCaliber;
+            layoutControlItem8.Location = new Point(0, 24);
+            layoutControlItem8.Name = "layoutControlItem8";
+            layoutControlItem8.Size = new Size(189, 24);
+            layoutControlItem8.Text = "鍙e緞:";
+            layoutControlItem8.TextSize = new Size(52, 14);
             // 
             // ViewAssetsPipeFactorDlg
             // 
@@ -150,6 +204,10 @@
             ((ISupportInitialize)layoutControlItem1).EndInit();
             ((ISupportInitialize)layoutControlItem4).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
+            ((ISupportInitialize)txtCaliber.Properties).EndInit();
+            ((ISupportInitialize)txtMaterial.Properties).EndInit();
+            ((ISupportInitialize)layoutControlItem7).EndInit();
+            ((ISupportInitialize)layoutControlItem8).EndInit();
             ResumeLayout(false);
         }
 
@@ -167,5 +225,9 @@
         private DevExpress.XtraEditors.MemoEdit txtDescription;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
         private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+        private DevExpress.XtraEditors.TextEdit txtCaliber;
+        private DevExpress.XtraEditors.TextEdit txtMaterial;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.cs
index 59ba645..e80f523 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.cs
@@ -23,6 +23,8 @@
             _vmo = vmo;
             this.txtName.EditValue = vmo.Name;
             this.txtMinorLoss.EditValue = vmo.MinorLoss;
+            this.txtCaliber.EditValue = vmo.Caliber;
+            this.txtMaterial.EditValue = vmo.Material;
             this.txtDescription.EditValue = vmo.Description;
         }
     }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.resx
index af32865..8b2ff64 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/04-pipe/03-factor/ViewAssetsPipeFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/01-series/AddAssetsBluntheadSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/01-series/AddAssetsBluntheadSeriesDlg.cs
index ef920a6..e6194e2 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/01-series/AddAssetsBluntheadSeriesDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/01-series/AddAssetsBluntheadSeriesDlg.cs
@@ -76,6 +76,7 @@
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
             _vmo.Description = this.txtDescription.Text.Trim();
+            _vmo.CatalogID = 1;
             var id = await BLLFactory<HStation.BLL.AssetsBluntheadSeries>.Instance.Insert(_vmo);
             if (id < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/02-main/AddAssetsBluntheadMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/02-main/AddAssetsBluntheadMainDlg.cs
index d6295a3..07bf3f4 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/02-main/AddAssetsBluntheadMainDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/13-blunthead/02-main/AddAssetsBluntheadMainDlg.cs
@@ -99,6 +99,7 @@
             _vmo.Description = this.txtDescription.Text.Trim();
             _vmo.Caliber = double.Parse(this.txtCaliber.EditValue?.ToString());
             _vmo.Material = this.txtMaterial.Text.Trim();
+
             var id = await BLLFactory<HStation.BLL.AssetsBluntheadMain>.Instance.Insert(_vmo);
             if (id < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/01-series/AddAssetsTankSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/01-series/AddAssetsTankSeriesDlg.cs
index a77a4e9..8eb7679 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/01-series/AddAssetsTankSeriesDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/01-series/AddAssetsTankSeriesDlg.cs
@@ -76,6 +76,7 @@
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
             _vmo.Description = this.txtDescription.Text.Trim();
+            _vmo.CatalogID = 1;
             var id = await BLLFactory<HStation.BLL.AssetsTankSeries>.Instance.Insert(_vmo);
             if (id < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByExcelDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByExcelDlg.cs
index 5443788..c1a8027 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByExcelDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByExcelDlg.cs
@@ -63,6 +63,7 @@
                 return;
             }
             var diagram = this.universalChartExcelImportCtrl1.Get();
+            diagram.Name = this.txtName.Text.Trim();
             var diagramId = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.Insert(diagram);
             if (diagramId < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByPictureDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByPictureDlg.cs
index 6af4750..006782c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByPictureDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/03-curveVol/ImportAssetsTankCurveVOLByPictureDlg.cs
@@ -63,6 +63,7 @@
                 return;
             }
             var diagram = this.universalChartImageImportCtrl1.Get();
+            diagram.Name = this.txtName.Text.Trim();
             var diagramId = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.Insert(diagram);
             if (diagramId < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/AddAssetsHydrantSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/AddAssetsHydrantSeriesDlg.cs
index e01913c..484ee0c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/AddAssetsHydrantSeriesDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/AddAssetsHydrantSeriesDlg.cs
@@ -76,6 +76,7 @@
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
             _vmo.Description = this.txtDescription.Text.Trim();
+            _vmo.CatalogID = 1;
             var id = await BLLFactory<HStation.BLL.AssetsHydrantSeries>.Instance.Insert(_vmo);
             if (id < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/EditAssetsHydrantSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/EditAssetsHydrantSeriesDlg.cs
index 1eb83d6..f743bc6 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/EditAssetsHydrantSeriesDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/17-hydrant/01-series/EditAssetsHydrantSeriesDlg.cs
@@ -73,6 +73,7 @@
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
             _vmo.Description = this.txtDescription.Text.Trim();
+            _vmo.CatalogID = 1;
             var bol = await BLLFactory<HStation.BLL.AssetsHydrantSeries>.Instance.Update(_vmo);
             if (!bol)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.Designer.cs
index bac123a..e19ebc8 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.Designer.cs
@@ -52,6 +52,7 @@
             ribPageGroupForMore = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
             panelControl1 = new DevExpress.XtraEditors.PanelControl();
             gridControl1 = new DevExpress.XtraGrid.GridControl();
+            assetsPressmeterMainMgrViewModelBindingSource = new BindingSource(components);
             gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
             colID = new DevExpress.XtraGrid.Columns.GridColumn();
             colName = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -65,15 +66,14 @@
             repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
             behaviorManager1 = new DevExpress.Utils.Behaviors.BehaviorManager(components);
             dragDropEvents1 = new DevExpress.Utils.DragDrop.DragDropEvents(components);
-            assetsPressmeterMainMgrViewModelBindingSource = new BindingSource(components);
             ((ISupportInitialize)ribbonControl1).BeginInit();
             ((ISupportInitialize)panelControl1).BeginInit();
             panelControl1.SuspendLayout();
             ((ISupportInitialize)gridControl1).BeginInit();
+            ((ISupportInitialize)assetsPressmeterMainMgrViewModelBindingSource).BeginInit();
             ((ISupportInitialize)gridView1).BeginInit();
             ((ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
             ((ISupportInitialize)behaviorManager1).BeginInit();
-            ((ISupportInitialize)assetsPressmeterMainMgrViewModelBindingSource).BeginInit();
             SuspendLayout();
             // 
             // ribbonControl1
@@ -89,7 +89,7 @@
             ribbonControl1.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.False;
             ribbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages;
             ribbonControl1.ShowToolbarCustomizeItem = false;
-            ribbonControl1.Size = new Size(1107, 128);
+            ribbonControl1.Size = new Size(1107, 101);
             ribbonControl1.Toolbar.ShowCustomizeItem = false;
             ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden;
             // 
@@ -173,6 +173,7 @@
             barBtnFactor.Id = 18;
             barBtnFactor.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnFactor.ImageOptions.SvgImage");
             barBtnFactor.Name = "barBtnFactor";
+            barBtnFactor.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
             barBtnFactor.ItemClick += barBtnFactor_ItemClick;
             // 
             // ribbonPage1
@@ -211,10 +212,10 @@
             panelControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
             panelControl1.Controls.Add(gridControl1);
             panelControl1.Dock = DockStyle.Fill;
-            panelControl1.Location = new Point(1, 129);
+            panelControl1.Location = new Point(1, 102);
             panelControl1.Name = "panelControl1";
             panelControl1.Padding = new Padding(0, 1, 0, 0);
-            panelControl1.Size = new Size(1107, 540);
+            panelControl1.Size = new Size(1107, 567);
             panelControl1.TabIndex = 3;
             // 
             // gridControl1
@@ -226,9 +227,13 @@
             gridControl1.MenuManager = ribbonControl1;
             gridControl1.Name = "gridControl1";
             gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1 });
-            gridControl1.Size = new Size(1107, 539);
+            gridControl1.Size = new Size(1107, 566);
             gridControl1.TabIndex = 0;
             gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // assetsPressmeterMainMgrViewModelBindingSource
+            // 
+            assetsPressmeterMainMgrViewModelBindingSource.DataSource = typeof(AssetsPressmeterMainMgrViewModel);
             // 
             // gridView1
             // 
@@ -333,10 +338,6 @@
             // 
             dragDropEvents1.DragDrop += dragDropEvents1_DragDrop;
             // 
-            // assetsPressmeterMainMgrViewModelBindingSource
-            // 
-            assetsPressmeterMainMgrViewModelBindingSource.DataSource = typeof(AssetsPressmeterMainMgrViewModel);
-            // 
             // AssetsPressmeterMainMgrPage
             // 
             Appearance.BackColor = SystemColors.Control;
@@ -352,10 +353,10 @@
             ((ISupportInitialize)panelControl1).EndInit();
             panelControl1.ResumeLayout(false);
             ((ISupportInitialize)gridControl1).EndInit();
+            ((ISupportInitialize)assetsPressmeterMainMgrViewModelBindingSource).EndInit();
             ((ISupportInitialize)gridView1).EndInit();
             ((ISupportInitialize)repositoryItemButtonEdit1).EndInit();
             ((ISupportInitialize)behaviorManager1).EndInit();
-            ((ISupportInitialize)assetsPressmeterMainMgrViewModelBindingSource).EndInit();
             ResumeLayout(false);
             PerformLayout();
         }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.resx
index beca434..ab47437 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/18-pressmeter/02-main/AssetsPressmeterMainMgrPage.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/AddAssetsTranslationSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/AddAssetsTranslationSeriesDlg.cs
index 4e0c63d..38b092c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/AddAssetsTranslationSeriesDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/AddAssetsTranslationSeriesDlg.cs
@@ -76,6 +76,7 @@
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
             _vmo.Description = this.txtDescription.Text.Trim();
+            _vmo.CatalogID = 1;
             var id = await BLLFactory<HStation.BLL.AssetsTranslationSeries>.Instance.Insert(_vmo);
             if (id < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/EditAssetsTranslationSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/EditAssetsTranslationSeriesDlg.cs
index 7da4735..ce707a9 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/EditAssetsTranslationSeriesDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/01-series/EditAssetsTranslationSeriesDlg.cs
@@ -73,6 +73,7 @@
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
             _vmo.Description = this.txtDescription.Text.Trim();
+            _vmo.CatalogID = 1;
             var bol = await BLLFactory<HStation.BLL.AssetsTranslationSeries>.Instance.Update(_vmo);
             if (!bol)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/AssetsTranslationFactorMgrPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/AssetsTranslationFactorMgrPage.Designer.cs
index f68fdc9..c514a2c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/AssetsTranslationFactorMgrPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/AssetsTranslationFactorMgrPage.Designer.cs
@@ -60,13 +60,12 @@
             colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
             colDetail = new DevExpress.XtraGrid.Columns.GridColumn();
             repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
-            colDiameter = new DevExpress.XtraGrid.Columns.GridColumn();
             colEndDiameter = new DevExpress.XtraGrid.Columns.GridColumn();
             colStartDiameter = new DevExpress.XtraGrid.Columns.GridColumn();
             colTranslationType = new DevExpress.XtraGrid.Columns.GridColumn();
+            colMaterial = new DevExpress.XtraGrid.Columns.GridColumn();
             behaviorManager1 = new DevExpress.Utils.Behaviors.BehaviorManager(components);
             dragDropEvents1 = new DevExpress.Utils.DragDrop.DragDropEvents(components);
-            colMaterial = new DevExpress.XtraGrid.Columns.GridColumn();
             ((ISupportInitialize)ribbonControl1).BeginInit();
             ((ISupportInitialize)panelControl1).BeginInit();
             panelControl1.SuspendLayout();
@@ -229,7 +228,7 @@
             // gridView1
             // 
             behaviorManager1.SetBehaviors(gridView1, new DevExpress.Utils.Behaviors.Behavior[] { DevExpress.Utils.DragDrop.DragDropBehavior.Create(typeof(DevExpress.XtraGrid.Extensions.ColumnViewDragDropSource), true, true, true, true, dragDropEvents1) });
-            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colID, colName, colMinorLoss, colSortCode, colDescription, colDetail, colDiameter, colEndDiameter, colStartDiameter, colTranslationType, colMaterial });
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colID, colName, colMinorLoss, colSortCode, colDescription, colDetail, colEndDiameter, colStartDiameter, colTranslationType, colMaterial });
             gridView1.GridControl = gridControl1;
             gridView1.Name = "gridView1";
             gridView1.RowCellClick += gridView1_RowCellClick;
@@ -259,7 +258,7 @@
             colMinorLoss.MinWidth = 100;
             colMinorLoss.Name = "colMinorLoss";
             colMinorLoss.Visible = true;
-            colMinorLoss.VisibleIndex = 6;
+            colMinorLoss.VisibleIndex = 5;
             colMinorLoss.Width = 100;
             // 
             // colSortCode
@@ -276,7 +275,7 @@
             colDescription.MinWidth = 100;
             colDescription.Name = "colDescription";
             colDescription.Visible = true;
-            colDescription.VisibleIndex = 7;
+            colDescription.VisibleIndex = 6;
             colDescription.Width = 100;
             // 
             // colDetail
@@ -287,7 +286,7 @@
             colDetail.MinWidth = 60;
             colDetail.Name = "colDetail";
             colDetail.Visible = true;
-            colDetail.VisibleIndex = 8;
+            colDetail.VisibleIndex = 7;
             colDetail.Width = 60;
             // 
             // repositoryItemButtonEdit1
@@ -299,44 +298,37 @@
             repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1";
             repositoryItemButtonEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
             // 
-            // colDiameter
-            // 
-            colDiameter.FieldName = "Diameter";
-            colDiameter.Name = "colDiameter";
-            colDiameter.Visible = true;
-            colDiameter.VisibleIndex = 1;
-            // 
             // colEndDiameter
             // 
             colEndDiameter.FieldName = "EndDiameter";
             colEndDiameter.Name = "colEndDiameter";
             colEndDiameter.Visible = true;
-            colEndDiameter.VisibleIndex = 4;
+            colEndDiameter.VisibleIndex = 3;
             // 
             // colStartDiameter
             // 
             colStartDiameter.FieldName = "StartDiameter";
             colStartDiameter.Name = "colStartDiameter";
             colStartDiameter.Visible = true;
-            colStartDiameter.VisibleIndex = 3;
+            colStartDiameter.VisibleIndex = 2;
             // 
             // colTranslationType
             // 
             colTranslationType.FieldName = "TranslationType";
             colTranslationType.Name = "colTranslationType";
             colTranslationType.Visible = true;
-            colTranslationType.VisibleIndex = 5;
-            // 
-            // dragDropEvents1
-            // 
-            dragDropEvents1.DragDrop += dragDropEvents1_DragDrop;
+            colTranslationType.VisibleIndex = 4;
             // 
             // colMaterial
             // 
             colMaterial.FieldName = "Material";
             colMaterial.Name = "colMaterial";
             colMaterial.Visible = true;
-            colMaterial.VisibleIndex = 2;
+            colMaterial.VisibleIndex = 1;
+            // 
+            // dragDropEvents1
+            // 
+            dragDropEvents1.DragDrop += dragDropEvents1_DragDrop;
             // 
             // AssetsTranslationFactorMgrPage
             // 
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/ViewAssetsTranslationFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/ViewAssetsTranslationFactorDlg.cs
index 3a94208..6ae81c4 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/ViewAssetsTranslationFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/19-translation/03-factor/ViewAssetsTranslationFactorDlg.cs
@@ -25,8 +25,9 @@
             this.TextEditMinorLoss.EditValue = vmo.MinorLoss;
             this.textEditStartDiameter.EditValue = vmo.StartDiameter;
             this.textEditEndDiameter.EditValue = vmo.EndDiameter;
+            this.textEditTranslationType.Properties.AddEnum(typeof(HStation.Assets.eTranslationType));
             this.textEditTranslationType.EditValue = vmo.TranslationType;
-            this.txtMaterial.EditValue = vmo.Material;
+             this.txtMaterial.EditValue = vmo.Material;
             this.txtDescription.EditValue = vmo.Description;
         }
     }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByExcelDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByExcelDlg.cs
index 4219e8e..9d98939 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByExcelDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByExcelDlg.cs
@@ -64,6 +64,7 @@
                 return;
             }
             var diagram = this.universalChartExcelImportCtrl1.Get();
+            diagram.Name = this.txtName.Text.Trim();
             var diagramId = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.Insert(diagram);
             if (diagramId < 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByPictureDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByPictureDlg.cs
index 5ac09cc..08de05a 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByPictureDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/20-exchanger/04-curveql/ImportAssetsExchangerCurveQLByPictureDlg.cs
@@ -14,7 +14,7 @@
         }
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
         public event Action<HStation.Vmo.PhartDiagramRelationVmo> ReloadDataEvent;
 
@@ -22,7 +22,7 @@
         private PhartDiagramRelationVmo _vmo = null;
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
         public void SetBindingData(AssetsExchangerMainVmo exchanger)
         {
@@ -53,7 +53,6 @@
                 return false;
             }
             return true;
-
         }
 
         //纭畾
@@ -64,6 +63,7 @@
                 return;
             }
             var diagram = this.universalChartImageImportCtrl1.Get();
+            diagram.Name = this.txtName.Text.Trim();
             var diagramId = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.Insert(diagram);
             if (diagramId < 1)
             {
@@ -84,7 +84,6 @@
             this.DialogResult = DialogResult.OK;
             this.Close();
         }
-
 
         //瀵煎叆鍥剧墖
         private void btnEditPicture_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/21-compressor/02-main/ViewAssetsCompressorMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/21-compressor/02-main/ViewAssetsCompressorMainDlg.cs
index a51fb5e..54470ba 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/21-compressor/02-main/ViewAssetsCompressorMainDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/21-compressor/02-main/ViewAssetsCompressorMainDlg.cs
@@ -9,7 +9,6 @@
             this.layoutControl1.SetupLayoutControl();
         }
 
-
         private HStation.Vmo.AssetsCompressorMainVmo _vmo = null;
 
         /// <summary>
@@ -25,13 +24,11 @@
             this.txtName.EditValue = vmo.Name;
             this.txtMaterial.EditValue = vmo.Material;
             this.txtDiameter.EditValue = vmo.Diameter;
-            this.txtCoefficient.EditValue = vmo.MinorLoss;
+            this.txtMinorLoss.EditValue = vmo.MinorLoss;
             this.txtKeyWord.EditValue = HStation.Service.Assets.KeyWordHelper.ToString(vmo.KeyWords);
             this.txtFlags.EditValue = Yw.Untity.FlagsHelper.ToString(vmo.Flags);
             this.txtTagName.EditValue = vmo.TagName;
             this.txtDescription.EditValue = vmo.Description;
         }
-
-
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.Designer.cs
index 9ccd88a..1d26e91 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.Designer.cs
@@ -44,7 +44,6 @@
             layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
-            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             ((ISupportInitialize)layoutControl1).BeginInit();
@@ -62,7 +61,6 @@
             ((ISupportInitialize)layoutControlItem5).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
-            ((ISupportInitialize)emptySpaceItem1).BeginInit();
             ((ISupportInitialize)layoutControlItem7).BeginInit();
             ((ISupportInitialize)dxErrorProvider1).BeginInit();
             SuspendLayout();
@@ -106,7 +104,7 @@
             // 
             // txtLowerLimit
             // 
-            txtLowerLimit.Location = new Point(335, 60);
+            txtLowerLimit.Location = new Point(335, 36);
             txtLowerLimit.Name = "txtLowerLimit";
             txtLowerLimit.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtLowerLimit.Properties.DisplayFormat.FormatString = "{0}m";
@@ -117,19 +115,19 @@
             txtLowerLimit.StyleController = layoutControl1;
             txtLowerLimit.TabIndex = 6;
             // 
-            // txtMinorLoss
+            // txtCoefficient
             // 
             txtCoefficient.Location = new Point(83, 60);
             txtCoefficient.Name = "txtCoefficient";
             txtCoefficient.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtCoefficient.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtCoefficient.Size = new Size(177, 20);
+            txtCoefficient.Size = new Size(430, 20);
             txtCoefficient.StyleController = layoutControl1;
             txtCoefficient.TabIndex = 5;
             // 
             // txtCaliber
             // 
-            txtCaliber.Location = new Point(335, 36);
+            txtCaliber.Location = new Point(335, 12);
             txtCaliber.Name = "txtCaliber";
             txtCaliber.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
             txtCaliber.Properties.DisplayFormat.FormatString = "{0}mm";
@@ -140,7 +138,7 @@
             txtCaliber.StyleController = layoutControl1;
             txtCaliber.TabIndex = 4;
             // 
-            // txtDN
+            // txtMaterial
             // 
             txtMaterial.Location = new Point(83, 36);
             txtMaterial.Name = "txtMaterial";
@@ -164,7 +162,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem2, layoutControlItem6, emptySpaceItem1, layoutControlItem7 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem2, layoutControlItem6, layoutControlItem7, layoutControlItem4, layoutControlItem5 });
             Root.Name = "Root";
             Root.Size = new Size(525, 316);
             Root.TextVisible = false;
@@ -182,7 +180,7 @@
             // layoutControlItem3
             // 
             layoutControlItem3.Control = txtCaliber;
-            layoutControlItem3.Location = new Point(252, 24);
+            layoutControlItem3.Location = new Point(252, 0);
             layoutControlItem3.Name = "layoutControlItem3";
             layoutControlItem3.Size = new Size(253, 24);
             layoutControlItem3.Text = "鍙e緞:";
@@ -194,7 +192,7 @@
             layoutControlItem4.Control = txtCoefficient;
             layoutControlItem4.Location = new Point(0, 48);
             layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(252, 24);
+            layoutControlItem4.Size = new Size(505, 24);
             layoutControlItem4.Text = "<color=red>*</color>娴侀噺绯绘暟:";
             layoutControlItem4.TextSize = new Size(59, 14);
             // 
@@ -202,7 +200,7 @@
             // 
             layoutControlItem5.AllowHtmlStringInCaption = true;
             layoutControlItem5.Control = txtLowerLimit;
-            layoutControlItem5.Location = new Point(252, 48);
+            layoutControlItem5.Location = new Point(252, 24);
             layoutControlItem5.Name = "layoutControlItem5";
             layoutControlItem5.Size = new Size(253, 24);
             layoutControlItem5.Text = "<color=red>*</color>鏈�灏忓帇鍔�:";
@@ -226,14 +224,6 @@
             layoutControlItem6.Size = new Size(505, 194);
             layoutControlItem6.Text = "璇存槑:";
             layoutControlItem6.TextSize = new Size(59, 14);
-            // 
-            // emptySpaceItem1
-            // 
-            emptySpaceItem1.AllowHotTrack = false;
-            emptySpaceItem1.Location = new Point(252, 0);
-            emptySpaceItem1.Name = "emptySpaceItem1";
-            emptySpaceItem1.Size = new Size(253, 24);
-            emptySpaceItem1.TextSize = new Size(0, 0);
             // 
             // layoutControlItem7
             // 
@@ -272,7 +262,6 @@
             ((ISupportInitialize)layoutControlItem5).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
-            ((ISupportInitialize)emptySpaceItem1).EndInit();
             ((ISupportInitialize)layoutControlItem7).EndInit();
             ((ISupportInitialize)dxErrorProvider1).EndInit();
             ResumeLayout(false);
@@ -295,7 +284,6 @@
         private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
         private DevExpress.XtraEditors.MemoEdit txtDescription;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
         private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider dxErrorProvider1;
     }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.resx
index d438392..43b467c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/AddAssetsCoolingFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.Designer.cs
index 11acd0a..16c26e0 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.Designer.cs
@@ -44,7 +44,6 @@
             layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
-            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             ((ISupportInitialize)layoutControl1).BeginInit();
@@ -62,7 +61,6 @@
             ((ISupportInitialize)layoutControlItem5).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
-            ((ISupportInitialize)emptySpaceItem1).BeginInit();
             ((ISupportInitialize)layoutControlItem7).BeginInit();
             ((ISupportInitialize)dxErrorProvider1).BeginInit();
             SuspendLayout();
@@ -106,7 +104,7 @@
             // 
             // txtLowerLimit
             // 
-            txtLowerLimit.Location = new Point(335, 60);
+            txtLowerLimit.Location = new Point(335, 36);
             txtLowerLimit.Name = "txtLowerLimit";
             txtLowerLimit.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtLowerLimit.Properties.DisplayFormat.FormatString = "{0}m";
@@ -117,19 +115,19 @@
             txtLowerLimit.StyleController = layoutControl1;
             txtLowerLimit.TabIndex = 6;
             // 
-            // txtMinorLoss
+            // txtCoefficient
             // 
             txtCoefficient.Location = new Point(83, 60);
             txtCoefficient.Name = "txtCoefficient";
             txtCoefficient.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtCoefficient.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtCoefficient.Size = new Size(177, 20);
+            txtCoefficient.Size = new Size(430, 20);
             txtCoefficient.StyleController = layoutControl1;
             txtCoefficient.TabIndex = 5;
             // 
             // txtCaliber
             // 
-            txtCaliber.Location = new Point(335, 36);
+            txtCaliber.Location = new Point(335, 12);
             txtCaliber.Name = "txtCaliber";
             txtCaliber.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
             txtCaliber.Properties.DisplayFormat.FormatString = "{0}mm";
@@ -140,7 +138,7 @@
             txtCaliber.StyleController = layoutControl1;
             txtCaliber.TabIndex = 4;
             // 
-            // txtDN
+            // txtMaterial
             // 
             txtMaterial.Location = new Point(83, 36);
             txtMaterial.Name = "txtMaterial";
@@ -164,7 +162,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem2, layoutControlItem6, emptySpaceItem1, layoutControlItem7 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem5, layoutControlItem2, layoutControlItem6, layoutControlItem7, layoutControlItem3, layoutControlItem4 });
             Root.Name = "Root";
             Root.Size = new Size(525, 316);
             Root.TextVisible = false;
@@ -182,7 +180,7 @@
             // layoutControlItem3
             // 
             layoutControlItem3.Control = txtCaliber;
-            layoutControlItem3.Location = new Point(252, 24);
+            layoutControlItem3.Location = new Point(252, 0);
             layoutControlItem3.Name = "layoutControlItem3";
             layoutControlItem3.Size = new Size(253, 24);
             layoutControlItem3.Text = "鍙e緞:";
@@ -194,7 +192,7 @@
             layoutControlItem4.Control = txtCoefficient;
             layoutControlItem4.Location = new Point(0, 48);
             layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(252, 24);
+            layoutControlItem4.Size = new Size(505, 24);
             layoutControlItem4.Text = "<color=red>*</color>娴侀噺绯绘暟:";
             layoutControlItem4.TextSize = new Size(59, 14);
             // 
@@ -202,7 +200,7 @@
             // 
             layoutControlItem5.AllowHtmlStringInCaption = true;
             layoutControlItem5.Control = txtLowerLimit;
-            layoutControlItem5.Location = new Point(252, 48);
+            layoutControlItem5.Location = new Point(252, 24);
             layoutControlItem5.Name = "layoutControlItem5";
             layoutControlItem5.Size = new Size(253, 24);
             layoutControlItem5.Text = "<color=red>*</color>鏈�灏忓帇鍔�:";
@@ -226,14 +224,6 @@
             layoutControlItem6.Size = new Size(505, 194);
             layoutControlItem6.Text = "璇存槑:";
             layoutControlItem6.TextSize = new Size(59, 14);
-            // 
-            // emptySpaceItem1
-            // 
-            emptySpaceItem1.AllowHotTrack = false;
-            emptySpaceItem1.Location = new Point(252, 0);
-            emptySpaceItem1.Name = "emptySpaceItem1";
-            emptySpaceItem1.Size = new Size(253, 24);
-            emptySpaceItem1.TextSize = new Size(0, 0);
             // 
             // layoutControlItem7
             // 
@@ -272,7 +262,6 @@
             ((ISupportInitialize)layoutControlItem5).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
-            ((ISupportInitialize)emptySpaceItem1).EndInit();
             ((ISupportInitialize)layoutControlItem7).EndInit();
             ((ISupportInitialize)dxErrorProvider1).EndInit();
             ResumeLayout(false);
@@ -295,7 +284,6 @@
         private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
         private DevExpress.XtraEditors.MemoEdit txtDescription;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
         private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider dxErrorProvider1;
     }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.resx
index d438392..43b467c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/EditAssetsCoolingFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.Designer.cs
index bfeb15e..5f9e8da 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.Designer.cs
@@ -42,7 +42,6 @@
             layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
-            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((ISupportInitialize)txtDescription.Properties).BeginInit();
@@ -58,7 +57,6 @@
             ((ISupportInitialize)layoutControlItem5).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
-            ((ISupportInitialize)emptySpaceItem1).BeginInit();
             SuspendLayout();
             // 
             // layoutControl1
@@ -90,7 +88,7 @@
             // 
             // txtLowerLimit
             // 
-            txtLowerLimit.Location = new Point(328, 60);
+            txtLowerLimit.Location = new Point(328, 36);
             txtLowerLimit.Name = "txtLowerLimit";
             txtLowerLimit.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
             txtLowerLimit.Properties.DisplayFormat.FormatString = "{0}m";
@@ -103,7 +101,7 @@
             txtLowerLimit.StyleController = layoutControl1;
             txtLowerLimit.TabIndex = 6;
             // 
-            // txtMinorLoss
+            // txtCoefficient
             // 
             txtCoefficient.Location = new Point(76, 60);
             txtCoefficient.Name = "txtCoefficient";
@@ -111,13 +109,13 @@
             txtCoefficient.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
             txtCoefficient.Properties.ReadOnly = true;
             txtCoefficient.Properties.UseReadOnlyAppearance = false;
-            txtCoefficient.Size = new Size(184, 20);
+            txtCoefficient.Size = new Size(437, 20);
             txtCoefficient.StyleController = layoutControl1;
             txtCoefficient.TabIndex = 5;
             // 
             // txtCaliber
             // 
-            txtCaliber.Location = new Point(328, 36);
+            txtCaliber.Location = new Point(328, 12);
             txtCaliber.Name = "txtCaliber";
             txtCaliber.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
             txtCaliber.Properties.DisplayFormat.FormatString = "{0}mm";
@@ -130,7 +128,7 @@
             txtCaliber.StyleController = layoutControl1;
             txtCaliber.TabIndex = 4;
             // 
-            // txtDN
+            // txtMaterial
             // 
             txtMaterial.Location = new Point(76, 36);
             txtMaterial.Name = "txtMaterial";
@@ -158,7 +156,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem2, layoutControlItem6, emptySpaceItem1 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem2, layoutControlItem6, layoutControlItem4, layoutControlItem5 });
             Root.Name = "Root";
             Root.Size = new Size(525, 316);
             Root.TextVisible = false;
@@ -175,7 +173,7 @@
             // layoutControlItem3
             // 
             layoutControlItem3.Control = txtCaliber;
-            layoutControlItem3.Location = new Point(252, 24);
+            layoutControlItem3.Location = new Point(252, 0);
             layoutControlItem3.Name = "layoutControlItem3";
             layoutControlItem3.Size = new Size(253, 24);
             layoutControlItem3.Text = "鍙e緞:";
@@ -186,14 +184,14 @@
             layoutControlItem4.Control = txtCoefficient;
             layoutControlItem4.Location = new Point(0, 48);
             layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(252, 24);
+            layoutControlItem4.Size = new Size(505, 24);
             layoutControlItem4.Text = "娴侀噺绯绘暟:";
             layoutControlItem4.TextSize = new Size(52, 14);
             // 
             // layoutControlItem5
             // 
             layoutControlItem5.Control = txtLowerLimit;
-            layoutControlItem5.Location = new Point(252, 48);
+            layoutControlItem5.Location = new Point(252, 24);
             layoutControlItem5.Name = "layoutControlItem5";
             layoutControlItem5.Size = new Size(253, 24);
             layoutControlItem5.Text = "鏈�灏忓帇鍔�:";
@@ -216,14 +214,6 @@
             layoutControlItem6.Size = new Size(505, 224);
             layoutControlItem6.Text = "璇存槑:";
             layoutControlItem6.TextSize = new Size(52, 14);
-            // 
-            // emptySpaceItem1
-            // 
-            emptySpaceItem1.AllowHotTrack = false;
-            emptySpaceItem1.Location = new Point(252, 0);
-            emptySpaceItem1.Name = "emptySpaceItem1";
-            emptySpaceItem1.Size = new Size(253, 24);
-            emptySpaceItem1.TextSize = new Size(0, 0);
             // 
             // ViewAssetsCoolingFactorDlg
             // 
@@ -249,7 +239,6 @@
             ((ISupportInitialize)layoutControlItem5).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
-            ((ISupportInitialize)emptySpaceItem1).EndInit();
             ResumeLayout(false);
         }
 
@@ -269,6 +258,5 @@
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
         private DevExpress.XtraEditors.MemoEdit txtDescription;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.resx
index af32865..8b2ff64 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/03-factor/ViewAssetsCoolingFactorDlg.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/05-user-log/UserLoginLogPage.cs b/WinFrmUI/HStation.WinFrmUI.Auth.Core/05-user-log/UserLoginLogPage.cs
index fd39f9a..d733afd 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/05-user-log/UserLoginLogPage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/05-user-log/UserLoginLogPage.cs
@@ -15,7 +15,7 @@
             this.gridView1.SetNormalView(30);
             this.PageTitle.Caption = "鐧诲綍鏃ュ織";
             this.PageTitle.SvgImageSize = new Size(24, 24);
-            this.dtStart.DateTime = DateTime.Now.Date.AddDays(-3);
+            this.dtStart.DateTime = DateTime.Now.Date.AddDays(-2);
             this.dtEnd.DateTime = DateTime.Now.Date;
         }
 
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/UserInfoPage.cs b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/UserInfoPage.cs
index 65af4d9..a275695 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/UserInfoPage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/UserInfoPage.cs
@@ -28,7 +28,7 @@
         }
 
         private const string _smsTemplate = "hzkw_sms_template";//鎵嬫満鍙风櫥褰曟ā鏉�
-        private const string _vxTemplate = "hzkw_vx_template";//寰俊鐧诲綍妯℃澘
+        private const string _vxTemplate = "hzkw_wx_template";//寰俊鐧诲綍妯℃澘
         private const string _software = "HStation_XHS_DESKTOP";//杞欢缂栫爜
 
         //淇敼瀵嗙爜
@@ -92,8 +92,6 @@
             dlg.SetBindingData();
             dlg.CodeReloadData += async (code) =>
             {
-                // Yw.Dto.InternalException 鎶ラ敊绫�
-
                 var loginType = await BLLFactory<Yw.BLL.UserLoginType>.Instance.GetByIdentifier(LoginType.Wechat);
                 if (loginType != null)
                 {
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.Designer.cs
index 922e91d..8896c69 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.Designer.cs
@@ -54,6 +54,7 @@
             sidePanel1 = new DevExpress.XtraEditors.SidePanel();
             behaviorManager1 = new DevExpress.Utils.Behaviors.BehaviorManager(components);
             dragDropEvents1 = new DevExpress.Utils.DragDrop.DragDropEvents(components);
+            btnRefresh = new DevExpress.XtraBars.BarButtonItem();
             ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
             dockPanel1.SuspendLayout();
@@ -71,9 +72,9 @@
             ribbonControl1.DrawGroupsBorderMode = DevExpress.Utils.DefaultBoolean.True;
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, barCheckSorter });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, barCheckSorter, btnRefresh });
             ribbonControl1.Location = new Point(0, 0);
-            ribbonControl1.MaxItemId = 19;
+            ribbonControl1.MaxItemId = 20;
             ribbonControl1.Name = "ribbonControl1";
             ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
             ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
@@ -132,6 +133,7 @@
             // ribbonPageGroup2
             // 
             ribbonPageGroup2.ItemLinks.Add(barCheckSorter);
+            ribbonPageGroup2.ItemLinks.Add(btnRefresh);
             ribbonPageGroup2.Name = "ribbonPageGroup2";
             ribbonPageGroup2.Text = "鏇村";
             // 
@@ -266,6 +268,14 @@
             // 
             dragDropEvents1.DragDrop += dragDropEvents1_DragDrop;
             // 
+            // btnRefresh
+            // 
+            btnRefresh.Caption = "鍒锋柊";
+            btnRefresh.Id = 19;
+            btnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barButtonItem2.ImageOptions.SvgImage");
+            btnRefresh.Name = "btnRefresh";
+            btnRefresh.HyperlinkClick += btnRefresh_HyperlinkClick;
+            // 
             // SysTypeManageMainPanel
             // 
             Appearance.BackColor = SystemColors.Control;
@@ -316,5 +326,6 @@
         private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup2;
         private DevExpress.Utils.Behaviors.BehaviorManager behaviorManager1;
         private DevExpress.Utils.DragDrop.DragDropEvents dragDropEvents1;
+        private DevExpress.XtraBars.BarButtonItem btnRefresh;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.cs
index 88bcff3..8eb9a20 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.cs
@@ -17,7 +17,7 @@
 
         private List<SysTypeViewModel> _allBindingList = new List<SysTypeViewModel>();
 
-        private int _LastRowIndex;
+        private long _mouduleId;
 
         private Yw.BLL.SysType _bll = null;
 
@@ -29,6 +29,7 @@
         //鑱氱劍鍒囨崲
         private async void ModuleTreeListCtrl1_FocusedChangedEvent(long moduleid)
         {
+            _mouduleId = moduleid;
             var alllist = await _bll.GetByModuleID(moduleid);
             _allBindingList.Clear();
             foreach (var item in alllist)
@@ -38,7 +39,7 @@
             this.typeViewModelBindingSource.ResetBindings(false);
         }
 
-        private async void SetBindingData()
+        private void SetBindingData()
         {
             this.moduleTreeListCtrl1.SetBindingData();
             _bll = new Yw.BLL.SysType();
@@ -226,5 +227,10 @@
                 }
             });
         }
+
+        private void btnRefresh_HyperlinkClick(object sender, DevExpress.Utils.HyperlinkClickEventArgs e)
+        {
+            ModuleTreeListCtrl1_FocusedChangedEvent(_mouduleId);
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.resx b/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.resx
index 9e92849..9dffc2c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/01-SysTypeManage/SysTypeManageMainPanel.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -210,6 +210,29 @@
         IDwvZz4NCjwvc3ZnPgs=
 </value>
   </data>
+  <data name="barButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
+        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
+        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
+        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQ2hhbmdlVmlldyI+DQogICAgPHBh
+        dGggZD0iTTI0LjUsNy41QzIyLjMsNS4zLDE5LjMsNCwxNiw0QzEwLjEsNCw1LjEsOC4zLDQuMiwxNGg0
+        LjFjMC45LTMuNCw0LTYsNy43LTZjMi4yLDAsNC4yLDAuOSw1LjYsMi40TDE4LDE0ICAgaDUuN2g0LjFI
+        MjhWNEwyNC41LDcuNXogTTE2LDI0Yy0yLjIsMC00LjItMC45LTUuNi0yLjRMMTQsMThIOC4yaC00SDR2
+        MTBsMy41LTMuNUM5LjcsMjYuNywxMi43LDI4LDE2LDI4YzUuOSwwLDEwLjgtNC4zLDExLjgtMTAgICBo
+        LTQuMUMyMi44LDIxLjQsMTkuNywyNCwxNiwyNHoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQo8L3N2
+        Zz4L
+</value>
+  </data>
   <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs
index c526929..acd1144 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs
@@ -52,6 +52,7 @@
             barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
             svgImage32 = new DevExpress.Utils.SvgImageCollection(components);
             sidePanel1 = new DevExpress.XtraEditors.SidePanel();
+            btnRefresh = new DevExpress.XtraBars.BarButtonItem();
             ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
             dockPanel1.SuspendLayout();
@@ -66,9 +67,9 @@
             // 
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, BtnPropEdit, barBtnUpdateParent, barCheckSorter });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, BtnPropEdit, barBtnUpdateParent, barCheckSorter, btnRefresh });
             ribbonControl1.Location = new Point(0, 0);
-            ribbonControl1.MaxItemId = 23;
+            ribbonControl1.MaxItemId = 24;
             ribbonControl1.Name = "ribbonControl1";
             ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
             ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
@@ -145,6 +146,7 @@
             ribbonPageGroup2.ItemLinks.Add(BtnPropEdit);
             ribbonPageGroup2.ItemLinks.Add(barBtnUpdateParent);
             ribbonPageGroup2.ItemLinks.Add(barCheckSorter);
+            ribbonPageGroup2.ItemLinks.Add(btnRefresh);
             ribbonPageGroup2.Name = "ribbonPageGroup2";
             ribbonPageGroup2.Text = "鏇村";
             // 
@@ -263,6 +265,14 @@
             sidePanel1.TabIndex = 9;
             sidePanel1.Text = "sidePanel1";
             // 
+            // btnRefresh
+            // 
+            btnRefresh.Caption = "鍒锋柊";
+            btnRefresh.Id = 23;
+            btnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barButtonItem2.ImageOptions.SvgImage");
+            btnRefresh.Name = "btnRefresh";
+            btnRefresh.ItemClick += btnRefresh_ItemClick;
+            // 
             // SysCatalogManageMainPanel
             // 
             Appearance.BackColor = SystemColors.Control;
@@ -309,5 +319,6 @@
         private DevExpress.XtraEditors.SidePanel sidePanel1;
         private DevExpress.XtraBars.BarButtonItem barBtnUpdateParent;
         private DevExpress.XtraBars.BarCheckItem barCheckSorter;
+        private DevExpress.XtraBars.BarButtonItem btnRefresh;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.cs
index ae9e8e8..eba30df 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.cs
@@ -22,6 +22,8 @@
 
         private Yw.BLL.SysCatalog _bll;
 
+        private long _typeId;
+
         private List<SysCatalogViewModel> _IndexList;
 
         public override void InitialDataSource()
@@ -33,6 +35,7 @@
         //鑱氱劍鍒囨崲
         private async void TypeTreeListCtrl2_FocusedChangedEvent(long typeID)
         {
+            _typeId = typeID;
             _allBindingList = new List<SysCatalogViewModel>();
             var alllist = await _bll.GetByTypeID(typeID);
             _allBindingList.Clear();
@@ -127,7 +130,7 @@
         }
 
         //鐩稿簲灞炴�х紪杈�
-        private async void BtnPropEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        private void BtnPropEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList);
             if (currentVm != null)
@@ -315,5 +318,10 @@
             }
             return i;
         }
+
+        private void btnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            TypeTreeListCtrl2_FocusedChangedEvent(_typeId);
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.resx b/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.resx
index 0a62f49..01695ed 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysCatalogManage/SysCatalogManageMainPanel.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -253,6 +253,29 @@
         Lz4NCiAgPC9nPg0KPC9zdmc+Cw==
 </value>
   </data>
+  <data name="barButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
+        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
+        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
+        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQ2hhbmdlVmlldyI+DQogICAgPHBh
+        dGggZD0iTTI0LjUsNy41QzIyLjMsNS4zLDE5LjMsNCwxNiw0QzEwLjEsNCw1LjEsOC4zLDQuMiwxNGg0
+        LjFjMC45LTMuNCw0LTYsNy43LTZjMi4yLDAsNC4yLDAuOSw1LjYsMi40TDE4LDE0ICAgaDUuN2g0LjFI
+        MjhWNEwyNC41LDcuNXogTTE2LDI0Yy0yLjIsMC00LjItMC45LTUuNi0yLjRMMTQsMThIOC4yaC00SDR2
+        MTBsMy41LTMuNUM5LjcsMjYuNywxMi43LDI4LDE2LDI4YzUuOSwwLDEwLjgtNC4zLDExLjgtMTAgICBo
+        LTQuMUMyMi44LDIxLjQsMTkuNywyNCwxNiwyNHoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQo8L3N2
+        Zz4L
+</value>
+  </data>
   <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.Designer.cs
index c6c410b..32d4779 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.Designer.cs
@@ -52,6 +52,7 @@
             sidePanel1 = new DevExpress.XtraEditors.SidePanel();
             behaviorManager1 = new DevExpress.Utils.Behaviors.BehaviorManager(components);
             dragDropEvents1 = new DevExpress.Utils.DragDrop.DragDropEvents(components);
+            btnRefresh = new DevExpress.XtraBars.BarButtonItem();
             ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
             dockPanel1.SuspendLayout();
@@ -69,9 +70,9 @@
             ribbonControl1.DrawGroupsBorderMode = DevExpress.Utils.DefaultBoolean.True;
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, barCheckSorter });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, barCheckSorter, btnRefresh });
             ribbonControl1.Location = new Point(0, 0);
-            ribbonControl1.MaxItemId = 19;
+            ribbonControl1.MaxItemId = 20;
             ribbonControl1.Name = "ribbonControl1";
             ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
             ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
@@ -130,6 +131,7 @@
             // ribbonPageGroup2
             // 
             ribbonPageGroup2.ItemLinks.Add(barCheckSorter);
+            ribbonPageGroup2.ItemLinks.Add(btnRefresh);
             ribbonPageGroup2.Name = "ribbonPageGroup2";
             ribbonPageGroup2.Text = "鏇村";
             // 
@@ -238,6 +240,14 @@
             // 
             dragDropEvents1.DragDrop += dragDropEvents1_DragDrop;
             // 
+            // btnRefresh
+            // 
+            btnRefresh.Caption = "鍒锋柊";
+            btnRefresh.Id = 19;
+            btnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barButtonItem2.ImageOptions.SvgImage");
+            btnRefresh.Name = "btnRefresh";
+            btnRefresh.ItemClick += btnRefresh_ItemClick;
+            // 
             // SysFlagManageMainPanel
             // 
             Appearance.BackColor = SystemColors.Control;
@@ -286,5 +296,6 @@
         private DevExpress.XtraGrid.Columns.GridColumn colName;
         private DevExpress.XtraGrid.Columns.GridColumn colDescription;
         private DevExpress.Utils.DragDrop.DragDropEvents dragDropEvents1;
+        private DevExpress.XtraBars.BarButtonItem btnRefresh;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.cs
index 7c86897..6248dd9 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.cs
@@ -17,7 +17,7 @@
 
         private List<SysFlagViewModel> _allBindingList = new List<SysFlagViewModel>();
 
-        private int _LastRowIndex;
+        private long _typeId;
 
         private Yw.BLL.SysFlag _bll = null;
 
@@ -29,6 +29,7 @@
         //鑱氱劍鍒囨崲
         private async void ModuleTreeListCtrl1_FocusedChangedEvent(long typeId)
         {
+            _typeId = typeId;
             var alllist = await _bll.GetByTypeID(typeId);
             _allBindingList.Clear();
             foreach (var item in alllist)
@@ -225,5 +226,10 @@
                 }
             });
         }
+
+        private void btnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            ModuleTreeListCtrl1_FocusedChangedEvent(_typeId);
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.resx b/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.resx
index 889d942..7a96c2c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/03-SysFlagManage/SysFlagManageMainPanel.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -210,6 +210,29 @@
         IDwvZz4NCjwvc3ZnPgs=
 </value>
   </data>
+  <data name="barButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
+        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
+        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
+        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQ2hhbmdlVmlldyI+DQogICAgPHBh
+        dGggZD0iTTI0LjUsNy41QzIyLjMsNS4zLDE5LjMsNCwxNiw0QzEwLjEsNCw1LjEsOC4zLDQuMiwxNGg0
+        LjFjMC45LTMuNCw0LTYsNy43LTZjMi4yLDAsNC4yLDAuOSw1LjYsMi40TDE4LDE0ICAgaDUuN2g0LjFI
+        MjhWNEwyNC41LDcuNXogTTE2LDI0Yy0yLjIsMC00LjItMC45LTUuNi0yLjRMMTQsMThIOC4yaC00SDR2
+        MTBsMy41LTMuNUM5LjcsMjYuNywxMi43LDI4LDE2LDI4YzUuOSwwLDEwLjgtNC4zLDExLjgtMTAgICBo
+        LTQuMUMyMi44LDIxLjQsMTkuNywyNCwxNiwyNHoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQo8L3N2
+        Zz4L
+</value>
+  </data>
   <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.Designer.cs
index 09dcff3..74bfe8f 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.Designer.cs
@@ -64,6 +64,7 @@
             sidePanel1 = new DevExpress.XtraEditors.SidePanel();
             behaviorManager1 = new DevExpress.Utils.Behaviors.BehaviorManager(components);
             dragDropEvents1 = new DevExpress.Utils.DragDrop.DragDropEvents(components);
+            btnRefresh = new DevExpress.XtraBars.BarButtonItem();
             ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
             dockPanel1.SuspendLayout();
@@ -81,9 +82,9 @@
             // 
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, barCheckSorter });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnEditPumpCurve, BtnAdd, BtnDelete, barCheckSorter, btnRefresh });
             ribbonControl1.Location = new Point(0, 0);
-            ribbonControl1.MaxItemId = 20;
+            ribbonControl1.MaxItemId = 21;
             ribbonControl1.Name = "ribbonControl1";
             ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
             ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
@@ -142,6 +143,7 @@
             // ribbonPageGroup2
             // 
             ribbonPageGroup2.ItemLinks.Add(barCheckSorter);
+            ribbonPageGroup2.ItemLinks.Add(btnRefresh);
             ribbonPageGroup2.Name = "ribbonPageGroup2";
             ribbonPageGroup2.Text = "鏇村";
             // 
@@ -326,6 +328,14 @@
             // 
             dragDropEvents1.DragDrop += dragDropEvents1_DragDrop;
             // 
+            // btnRefresh
+            // 
+            btnRefresh.Caption = "鍒锋柊";
+            btnRefresh.Id = 20;
+            btnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barButtonItem2.ImageOptions.SvgImage");
+            btnRefresh.Name = "btnRefresh";
+            btnRefresh.ItemClick += btnRefresh_ItemClick;
+            // 
             // SysPropManageMainPanel
             // 
             Appearance.BackColor = SystemColors.Control;
@@ -382,5 +392,6 @@
         private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup2;
         private DevExpress.Utils.Behaviors.BehaviorManager behaviorManager1;
         private DevExpress.Utils.DragDrop.DragDropEvents dragDropEvents1;
+        private DevExpress.XtraBars.BarButtonItem btnRefresh;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.cs
index a51aeb0..63d739c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.cs
@@ -1,4 +1,5 @@
 锘縰sing DevExpress.Utils.DragDrop;
+using DevExpress.XtraDiagram.Bars;
 
 namespace HStation.WinFrmUI.Basic
 {
@@ -19,6 +20,8 @@
 
         private Yw.BLL.SysProp _bll = null;
 
+        private long _groupID;
+
         public override void InitialDataSource()
         {
             SetBindingData();
@@ -28,6 +31,7 @@
         //鑱氱劍鍒囨崲
         private async void ModuleTreeListCtrl1_FocusedChangedEvent(long groupID)
         {
+            _groupID = groupID;
             var alllist = await _bll.GetByGroupID(groupID);
             _allBindingList.Clear();
             foreach (var item in alllist)
@@ -222,5 +226,10 @@
                 }
             });
         }
+
+        private void btnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            ModuleTreeListCtrl1_FocusedChangedEvent(_groupID);
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.resx b/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.resx
index 9525cad..5be6177 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/04-SysPropManage/SysPropManageMainPanel.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -210,6 +210,29 @@
         IDwvZz4NCjwvc3ZnPgs=
 </value>
   </data>
+  <data name="barButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
+        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
+        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
+        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQ2hhbmdlVmlldyI+DQogICAgPHBh
+        dGggZD0iTTI0LjUsNy41QzIyLjMsNS4zLDE5LjMsNCwxNiw0QzEwLjEsNCw1LjEsOC4zLDQuMiwxNGg0
+        LjFjMC45LTMuNCw0LTYsNy43LTZjMi4yLDAsNC4yLDAuOSw1LjYsMi40TDE4LDE0ICAgaDUuN2g0LjFI
+        MjhWNEwyNC41LDcuNXogTTE2LDI0Yy0yLjIsMC00LjItMC45LTUuNi0yLjRMMTQsMThIOC4yaC00SDR2
+        MTBsMy41LTMuNUM5LjcsMjYuNywxMi43LDI4LDE2LDI4YzUuOSwwLDEwLjgtNC4zLDExLjgtMTAgICBo
+        LTQuMUMyMi44LDIxLjQsMTkuNywyNCwxNiwyNHoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQo8L3N2
+        Zz4L
+</value>
+  </data>
   <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
diff --git a/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.Designer.cs
index f527405..d3b9124 100644
--- a/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.Designer.cs
@@ -58,6 +58,8 @@
             dockPanel1 = new DevExpress.XtraBars.Docking.DockPanel();
             dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
             dictGroupTreeListCtrl1 = new DictGroupTreeListCtrl();
+            ribbonPageGroup2 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
+            btnRefresh = new DevExpress.XtraBars.BarButtonItem();
             ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)svgImageCollection1).BeginInit();
             sidePanel1.SuspendLayout();
@@ -75,9 +77,9 @@
             ribbonControl1.DrawGroupsBorderMode = DevExpress.Utils.DefaultBoolean.True;
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, BtnAdd, BtnEdit, BtnDelete, BarBtnEidtPumpPart });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, BtnAdd, BtnEdit, BtnDelete, BarBtnEidtPumpPart, btnRefresh });
             ribbonControl1.Location = new Point(0, 0);
-            ribbonControl1.MaxItemId = 22;
+            ribbonControl1.MaxItemId = 23;
             ribbonControl1.Name = "ribbonControl1";
             ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
             ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
@@ -119,7 +121,7 @@
             // 
             // ribbonPage1
             // 
-            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 });
+            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1, ribbonPageGroup2 });
             ribbonPage1.Name = "ribbonPage1";
             ribbonPage1.Text = "ribbonPage1";
             // 
@@ -260,6 +262,20 @@
             dictGroupTreeListCtrl1.Size = new Size(193, 491);
             dictGroupTreeListCtrl1.TabIndex = 0;
             // 
+            // ribbonPageGroup2
+            // 
+            ribbonPageGroup2.ItemLinks.Add(btnRefresh);
+            ribbonPageGroup2.Name = "ribbonPageGroup2";
+            ribbonPageGroup2.Text = "鏇村";
+            // 
+            // btnRefresh
+            // 
+            btnRefresh.Caption = "鍒锋柊";
+            btnRefresh.Id = 22;
+            btnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barButtonItem1.ImageOptions.SvgImage");
+            btnRefresh.Name = "btnRefresh";
+            btnRefresh.ItemClick += btnRefresh_ItemClick;
+            // 
             // DictManageMainPanel
             // 
             Appearance.BackColor = SystemColors.Control;
@@ -308,5 +324,7 @@
         private DevExpress.XtraGrid.Columns.GridColumn colDescription;
         private DevExpress.XtraGrid.Columns.GridColumn colDictValue;
         private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
+        private DevExpress.XtraBars.BarButtonItem btnRefresh;
+        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup2;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.cs b/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.cs
index d2a3416..9625609 100644
--- a/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.cs
@@ -1,4 +1,5 @@
-锘縰sing HStation.WinFrmUI.Dict.Core;
+锘縰sing DevExpress.XtraDiagram.Bars;
+using HStation.WinFrmUI.Dict.Core;
 using Yw;
 
 namespace HStation.WinFrmUI.Dict
@@ -13,15 +14,17 @@
             this.gridView1.RegistCustomDrawRowIndicator();
             this.PageTitle.HeaderSvgImage = this.svgImageCollection1[0];
             this.PageTitle.SvgImageSize = new Size(24, 24);
-            this.dictGroupTreeListCtrl1.RloadEvent += ValveTypeTreeListCtrl1_RloadEvent;
+            this.dictGroupTreeListCtrl1.RloadEvent += DictTreeListCtrl1_RloadEvent;
         }
 
         private List<DictTypeViewModel> _allBindingList = null;
 
         private Yw.BLL.SysDictType _bll = null;
 
+        private long _groupId;
+
         //鍒濆鍖栨暟鎹�
-        public override async void InitialDataSource()
+        public override void InitialDataSource()
         {
             _bll = new Yw.BLL.SysDictType();
             _allBindingList = new List<DictTypeViewModel>();
@@ -30,8 +33,9 @@
             this.dictGroupTreeListCtrl1.SetBindingData();
         }
 
-        private async void ValveTypeTreeListCtrl1_RloadEvent(long groupId)
+        private async void DictTreeListCtrl1_RloadEvent(long groupId)
         {
+            _groupId = groupId;
             var alllist = await _bll.GetByGroupID(groupId);
             _allBindingList.Clear();
             if (alllist != null)
@@ -70,7 +74,7 @@
             dlg.ShowDialog();
         }
 
-        //缂栬緫闃�闂�
+        //缂栬緫
         private async void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
@@ -98,7 +102,7 @@
             dlg.ShowDialog();
         }
 
-        //鍒犻櫎闃�闂�
+        //鍒犻櫎
         private async void BtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList);
@@ -138,5 +142,10 @@
                 dlg.ShowDialog();
             }
         }
+
+        private void btnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            DictTreeListCtrl1_RloadEvent(_groupId);
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.resx b/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.resx
index caac213..6fe42ea 100644
--- a/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Dict.Core/DictManageMainPanel.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema 
+    Microsoft ResX Schema
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-    
+
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -189,6 +189,29 @@
         L2c+DQo8L3N2Zz4L
 </value>
   </data>
+  <data name="barButtonItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
+        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
+        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
+        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQ2hhbmdlVmlldyI+DQogICAgPHBh
+        dGggZD0iTTI0LjUsNy41QzIyLjMsNS4zLDE5LjMsNCwxNiw0QzEwLjEsNCw1LjEsOC4zLDQuMiwxNGg0
+        LjFjMC45LTMuNCw0LTYsNy43LTZjMi4yLDAsNC4yLDAuOSw1LjYsMi40TDE4LDE0ICAgaDUuN2g0LjFI
+        MjhWNEwyNC41LDcuNXogTTE2LDI0Yy0yLjIsMC00LjItMC45LTUuNi0yLjRMMTQsMThIOC4yaC00SDR2
+        MTBsMy41LTMuNUM5LjcsMjYuNywxMi43LDI4LDE2LDI4YzUuOSwwLDEwLjgtNC4zLDExLjgtMTAgICBo
+        LTQuMUMyMi44LDIxLjQsMTkuNywyNCwxNiwyNHoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQo8L3N2
+        Zz4L
+</value>
+  </data>
   <metadata name="svgImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>

--
Gitblit v1.9.3